Как стать автором
Обновить
3
0.1
Отправить сообщение

Всё ещё используете If/else валидацию в Spring 6.0+ / SpringBoot 3.0+?

Время на прочтение12 мин
Количество просмотров13K

Чтобы избежать влияния несанкционированных параметров на ваш бизнес, в ваших веб-сервисах должна быть реализована проверка параметров на уровне контроллера! В большинстве случаев параметры запроса можно разделить на два следующих вида:

— POST и PUT-запросы, использующие requestBody для передачи параметров.
— GET-запросы, использующие requestParam/PathVariable для передачи параметров.

Читать далее
Всего голосов 18: ↑13 и ↓5+9
Комментарии11

6 способов выполнения метода при старте Spring Boot приложения

Время на прочтение8 мин
Количество просмотров44K

При разработке на Spring Boot иногда нам нужно выполнить метод или фрагмент кода при запуске приложения. Этот код может быть любым, от записи определенной информации до настройки базы данных, заданий cron и т. д. Мы не можем просто поместить этот код в конструктор, потому что требуемые переменные или службы могут быть еще не инициализированы. Это может привести к исключению с нулевым указателем или некоторым другим.

Рассмотрим различные способы выполнения метода после запускаSpring Boot.

Читать далее
Всего голосов 12: ↑11 и ↓1+13
Комментарии7

CANVAS шаг за шагом: Основы

Время на прочтение6 мин
Количество просмотров526K
CANVAS шаг за шагом:
  1. Основы
  2. Изображения
  3. Понг
  4. Пятнашки

Если верить англо-русскому словарю, то можно узнать что canvas переводится как холст, а если верить википедии, то можно узнать что тег canvas, это элемент HTML 5, который предназначен для создания растрового изображения при помощи JavaScript. Тому как создать это растровое изображение и будет посвящен мой небольшой текст. Прежде чем начинать пробовать свои силы в этом не легком деле рекомендуется уже иметь базовые знания о том что такое HTML и с чем едят JavaScript.
Читать дальше →
Всего голосов 84: ↑82 и ↓2+80
Комментарии48

Регистрация и авторизация с помощью Spring Security на примере простого приложения

Время на прочтение21 мин
Количество просмотров297K
Добрый день!

В этой статье будет рассмотрено создание простого веб приложения с использованием Spring Boot и Spring Security. В приложении будет реализована регистрация новых пользователей и авторизация, ограничение доступа к страницам сайта в зависимости от роли пользователя.
Главная цель статьи показать как можно ограничить доступ к различным страницам сайта для пользователей с разными ролями.

Что будет представлять из себя приложение


Сайт со следующими страницам:

  • страницы доступные всем пользователям: главная, регистрации и логина;
  • страница доступная для зарегистрированных пользователей: новости;
  • страница доступная для администратора.

Что будем использовать


  • JDK 8+;
  • Intellij Idea;
  • Spring (Spring Boot, Spring MVC, Spring Security);
  • Hibernate;
  • JSP;
  • PostgreSQL.
Читать дальше →
Всего голосов 13: ↑8 и ↓5+8
Комментарии10

Как сделать убийственную презентацию на хакатоне

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров3.4K

Помните своего старого университетского лектора, читающего вполголоса из своих заметок, с которым вообще ничему не получалось (да и не хотелось) учиться? Или, может быть, школьного учителя, который рассказывал матеирал настолько скучно, что вы буквально считали секунды до звонка? Или воон того парня на хакатоне, который всю презентацию стоял на одном месте и монотонно втирал что-то про какую-то непонятную технологию? Кажется, этому парню аплодировали просто потому, что радовались, что он наконец-то уходит со сцены.

Я хочу поделиться своим опытом о том, как не быть теми парнями. Неловкости и страха на сцене вполне можно избежать, если вооружиться некоторыми принципами и хорошо подготовиться. Наверняка, многие сталкивались с трудностями публичных выступлений и презентаций, будь то на конкурсах, конференциях, питчах, в офисах или где-либо еще. 

Я расскажу о том, что нужно, чтобы делать эффективные презентации, о специфике конкурсного формата и об основах публичных выступлений, о которых многие не знают. Также я предложу конкретный алгоритм подготовки к презентации. После прочтения вы будете вооружены и подготовлены для того, чтобы не быть теми парнями. Вы сможете избежать провалов классных проектов из-за слабых коммуникативных навыков, и вместо этого сделать презентации на конкурсах вашей сильной стороной.

Читать далее
Всего голосов 6: ↑3 и ↓3+2
Комментарии5

Сам написал, сам поиграл: как я написал 2D-игру для Android полностью с нуля, весом менее 1мб?

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров18K
image

Многие программисты так или иначе имеют тягу и интерес к разработке игр. Немалое количество спецов было замечено за написанием маленьких и миленьких игрушек, которые были разработаны за короткое время «just for fun». Большинству разработчиков за счастье взять готовый игровой движок по типу Unity/UE и попытаться создать что-то своё с их помощью, особенно упорные изучают и пытаются что-то сделать в экзотических движках типа Godot/Urho, а совсем прожжённые ребята любят писать игрушки… с нуля. Таковым любителем писать все сам оказался и я. И в один день мне просто захотелось написать что-нибудь прикольное, мобильное и обязательно — двадэшное! В этой статье вы узнаете про: написание производительного 2D-рендерера с нуля на базе OpenGL ES, обработку «сырого» ввода в мобильных играх, организацию архитектуры и игровой логики и адаптация игры под любые устройства. Интересно? Тогда жду вас в статье!
Читать дальше →
Всего голосов 56: ↑55 и ↓1+71
Комментарии54

Windows — причина медленного интернета

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров104K

Если вы столкнулись с «особой» проблемой медленного интернета и никакие танцы с бубном вам не помогают, то это статья для вас.

Провайдер, роутер, интернет-кабели, rg-45, обжимка, cat5e, порты, драйвера, программы уменьшающие скорость, утилиты, вирусы, настройки сетевого адаптера — это не какие-то страшные слова, на самом деле это всё не причина замедления интернета. В случае, если вы прошли всю эту цепочку и ничего не изменилось, тогда читайте дальше.

В этой статье я поделюсь своим «интересным» опытом, как я искал решение проблемы и о том, что Windows можно починить и не переустанавливать.

Читать далее
Всего голосов 138: ↑132 и ↓6+155
Комментарии316

Интеграция с Apache Cassandra. Создаем микросервис с Cassandra и Kafka

Уровень сложностиСредний
Время на прочтение66 мин
Количество просмотров2.8K

Сегодня мы узнаем, как написать микросервис, который сохраняет данные в Apache Cassandra с помощью Java-драйвера DataStax и генерирует события для изменений данных в Apache Kafka.

Этот пост основан на дизайне простого микросервиса для управления данными бронирования отелей, который называется Reservation Service. Вы можете выполнить серию упражнений по записи и чтению данных в Cassandra с помощью службы резервирования в наборе «Cassandra: разработка приложений с помощью Java-драйвера DataStax». Исходный код службы бронирования доступен на GitHub.

Читать далее
Всего голосов 6: ↑5 и ↓1+5
Комментарии0

Рисуем диаграммы Mermaid.js в README-файлах GitHub

Время на прочтение14 мин
Количество просмотров33K

14 февраля 2022 года GitHub объявила о старте нативной поддержки диаграмм Mermaid.js в README-файлах GitHub. Нововведение помогло быстрее и эффективнее оформлять блок-схемы и графики для документации. До этого диаграммы вставлялись в виде изображений и если содержимое менялось, то надо было сначала нарисовать новое изображение, а потом вставлять его. Сейчас же можно просто исправить несколько строк в коде и система сгенерирует новый график.

Читать далее
Всего голосов 43: ↑43 и ↓0+43
Комментарии9

Классификация текста с помощью нейронной сети на Java

Время на прочтение12 мин
Количество просмотров78K
– Наша Лена уходит в декрет, – сообщил начальник, – поэтому нам надо искать замену на время ее отсутствия. Часть задач мы распределим, а вот как быть с задачей перенаправления обращений пользователей?

Лена – это наш сотрудник технической поддержки. Одна из ее обязанностей – распределение поступающих на электронную почту обращений между специалистами. Она анализирует обращение и определяет ряд характеристик. Например, «Тип обращения»: ошибка системы, пользователю просто нужна консультация, пользователь хочет какую-то новую функциональность. Определяет «Функциональный модуль системы»: модуль бухгалтерии, модуль паспортизации оборудования и т.д. Проставив все эти характеристики, она перенаправляет обращение соответствующему специалисту.

– Давай я напишу программу, которая это будет делать автоматически! – ответил я.

На этом увлекательный роман заканчиваем и переходим к технической части.

Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии28

Профессиональная контейнеризация Node.js-приложений с помощью Docker

Время на прочтение10 мин
Количество просмотров66K
Автор материала, перевод которого мы публикуем сегодня, работает DevOps-инженером. Он говорит, что ему приходится пользоваться Docker. В частности, эта платформа для управления контейнерами применяется на разных этапах жизненного цикла Node.js-приложений. Использование Docker, технологии, которая, в последнее время, является чрезвычайно популярной, позволяет оптимизировать процесс разработки и вывода в продакшн Node.js-проектов.

image

Сейчас мы публикуем цикл статей о Docker, предназначенных для тех, кто хочет освоить эту платформу для её использования в самых разных ситуациях. Этот же материал сосредоточен, в основном, на профессиональном применении Docker в Node.js-разработке.
Читать дальше →
Всего голосов 42: ↑34 и ↓8+26
Комментарии25

Пишем автотест с использованием Selenium Webdriver, Java 8 и паттерна Page Object

Время на прочтение12 мин
Количество просмотров184K

В этой статье рассматривается создание достаточного простого автотеста. Статья будет полезна начинающим автоматизаторам.


Материал изложен максимально доступно, однако, будет значительно проще понять о чем здесь идет речь, если Вы будете иметь хотя бы минимальные представления о языке Java: классы, методы, etc.


Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии14

Пишем бота-кликера на Kotlin для Lineage 2

Время на прочтение8 мин
Количество просмотров17K

Еще не все новогодние салаты были съедены, “Ирония судьбы” уже просмотрена, а до начала рабочей недели еще целая вечность и нужно было придумать себе развлечение на оставшиеся праздники. Предвкушая ностальгию я открыл Lineage 2, одну из самых популярных MMORPG “нулевых” на СНГ пространстве. Однако, самому играть уже не хотелось и пришла идея автоматизировать это дело. За подробностями под кат!

Читать далее
Всего голосов 31: ↑29 и ↓2+36
Комментарии24

MVCC-7. Автоочистка

Время на прочтение11 мин
Количество просмотров41K
Напомню, что мы начали с вопросов, связанных с изоляцией, сделали отступление про организацию данных на низком уровне, подробно поговорили о версиях строк и о том, как из версий получаются снимки данных.

Затем мы рассмотрели внутристраничную очистку (и HOT-обновления), обычную очистку, ну а сегодня посмотрим на автоматическую очистку.

Автоочистка (autovacuum)


Мы уже говорили о том, что обычная очистка в нормальных условиях (когда никто не удерживает надолго горизонт транзакций) должна справляться со своей работой. Вопрос в том, как часто ее вызывать.

Если очищать изменяющуюся таблицу слишком редко, она вырастет в размерах больше, чем хотелось бы. Кроме того, для очередной очистки может потребоваться несколько проходов по индексам, если изменений накопилось слишком много.

Если очищать таблицу слишком часто, то вместо полезной работы сервер будет постоянно заниматься обслуживанием — тоже нехорошо.

Заметим, что запуск обычной очистки по расписанию никак не решает проблему, потому что нагрузка может изменяться со временем. Если таблица стала обновляться активней, то и очищать ее надо чаще.

Автоматическая очистка — как раз тот самый механизм, который позволяет запускать очистку в зависимости от активности изменений в таблицах.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии10

Редко используемые свойства CSS

Время на прочтение7 мин
Количество просмотров11K

Всем привет, меня зовут Кирилл, я frontend разработчик компании Usetech. CSS постоянно развивается, и некоторые полезные свойства остаются незамеченными. Возможно о них говорят не так много, как о других, но в этой статье на примерах я разберу новые и полезные свойства CSS. Ещё вы увидите раздел ресурсы, где можно почитать подробнее и глубже.

CSS свойства, которые мы рассмотрим в данной статье:

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии11

Spring Cache: от подключения кэширования за 1 минуту до гибкой настройки кэш-менеджера

Время на прочтение12 мин
Количество просмотров100K
Раньше я боялся кэширования. Очень не хотелось лезть и выяснять, что это такое, сразу представлялись какие-то подкапотные люто-энтерпрайзные штуки, в которых может разобраться только победитель олимпиады по математике. Оказалось, что это не так. Кэширование оказалось очень простым, понятным и невероятно лёгким во внедрении в любой проект.



В данном посте я постараюсь объяснить о кэшировании так же просто, как это сейчас понимаю я. Вы узнаете о том, как внедрить кэширование за 1 минуту, как кэшировать по ключу, устанавливать время жизни кэша, и многие прочие штуки, которые необходимо знать, если Вам поручили закэшировать что-то в вашем рабочем проекте, и Вы не хотите ударить в грязь лицом.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии9

Удивительное рядом, но оно запрещено: что такое «номерные радиостанции»

Время на прочтение8 мин
Количество просмотров62K

Мы все привыкли только читать или слышать о чём-то тайном и непонятном. Чтобы столкнуться с чем-то таким лично, надо, как правило, или предпринять далёкое путешествие, или подгадать какое-то удачное время. Вдобавок, если речь об официальных учреждениях, то они ещё и охраняются — так просто к ним не подберёшься. Помните, пару лет назад был флэшмоб про «штурм» Зоны-51? Несколько миллионов человек со всех концов света собирались прорваться на секретную американскую авиабазу и посмотреть там на пришельцев. И чем всё закончилось? Правильно, ничем. Никто не пришёл, потому что, во-первых, добираться долго и дорого даже самим американцам, а во-вторых, охрана в таких местах шуток не любит и стреляет на поражение. Это неудивительно — никакая серьёзная организация не любит, чтобы в её деликатные дела мог сунуть нос любой желающий.

Есть, однако, заметное исключение из этого правила. Загадка, прикоснуться к которой может любой, буквально не выходя из дома. Для этого достаточно лишь купить радиоприёмник, способный ловить коротковолновый диапазон — стоят они совсем недорого, а при некотором везении можно бесплатно найти такой где-нибудь среди старого хлама на даче или в шкафу. Если неторопливо крутить ручку настройки, сканируя КВ-диапазон, несложно наткнуться на какой-либо звук — жужжание, гул, прерывистый писк. Это так называемый «маркер» — сигнал, который передаёт радиостанция. По громкости и чистоте его звучания легко определить, насколько точно вы настроились на нужную волну. Подождав достаточное время, можно услышать, как маркер затихнет и вместо него начнёт звучать голос, передающий бессмысленное сообщение. Это могут быть слова, короткие фразы или набор разрозненных букв, отрывки песен, но чаще всего — просто цифры. Сообщение повторяется несколько раз, после чего снова начинает звучать маркер.
Читать дальше →
Всего голосов 93: ↑91 и ↓2+118
Комментарии94

Генерация лабиринтов алгоритмом Эйлера в 30 строк

Время на прочтение5 мин
Количество просмотров25K
image
Ну сразу стоит извиниться за запоздалую реакцию, ведь «неделя 30 строк» прошла, а я выкладываю этот пост только сейчас. Все из-за тяжелой рабочей недели и только на выходных удалось выделить немного времени.
Сразу поблагодарю пользователя deadkrolik за статью Алгоритм Эллера для генерации лабиринтов и оговорюсь о том что я плут и мошенник и 30 строками кода тут и не пахнет))) Кто не любит ждать объяснений, прошу сразу на Fiddle.
Читать дальше →
Всего голосов 45: ↑18 и ↓27-9
Комментарии5

Собственное контекстное меню с использованием JavaScript

Время на прочтение16 мин
Количество просмотров79K
Веб-приложения на сегодняшний день становятся новым шагом на пути развития веба. Это уже далеко не обычные информационные сайты. В качестве примера передовых веб-приложений можно привести Gmail и Dropbox. С ростом функциональности, доступности и полезности веб-приложений растет и потребность в увеличении эффективности их использования. В данном руководстве будет рассмотрено создание такой полезной штуки, как собственное контекстное меню, и в частности:
  1. Разберемся, что такое контекстное меню и зачем оно нужно.
  2. Реализуем свое контекстное меню, используя JS и CSS.
  3. Затронем недостатки и ограничения используемого подхода, чтобы знать, какие проблемы могут нас предостерегать при выкатывании всего этого в продакшн.

Читать дальше →
Всего голосов 19: ↑13 и ↓6+7
Комментарии12

Информация

В рейтинге
3 432-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
Средний
Java
Java EE
Java Spring Framework
Spring Boot