Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

TDD приложений на Spring Boot: работа с базой данных

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

Вторая статья из цикла "Test-Driven Development приложений на Spring Boot" и в этот раз я буду говорить про тестирование доступа к базе данных, важного аспекта интеграционного тестирования. Я расскажу как через тесты определять интерфейс будущего сервиса для доступа к данным, как использовать встраиваемые in-memory базы для тестирования, работать с транзакциями и загружать тестовые данные в базу.

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

Как построить пирамиду в багажнике или Test-Driven Development приложений на Spring Boot

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

Spring Framework часто приводят как пример Cloud Native фреймворка, созданного для работы в облаке, разработки Twelve-Factor приложений, микросервисов, и одного из самых стабильных, но в то же время инновационных продуктов. Но в этой статье я бы хотел остановиться на еще одной сильной стороне Spring: это его поддержка разработки через тестирование (TDD-руемость?). Не смотря на TDD-руемость, я часто замечал, что в проектах на Spring либо игнорируются некоторые best practices для тестирования, либо изобретаются свои велосипеды, либо вообще не пишутся тесты потому что они "медленные" или "ненадежные". И вот именно о том, как писать быстрые и надежные тесты для приложений на Spring Framework и вести разработку через тестирование я и расскажу. Так что если вы используете Spring (или хотите начать), понимаете что такое вообще тесты (или хотите понять), или думаете что contextLoads это и есть необходимый и достаточный уровень интеграционного тестирования — то будет интересно!

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

Spring AOP: как работает проксирование

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

Четкое разделение бизнес логики с другими сквозными задачами является обязательным условием для создания чистого и читабельного кода. И говоря о сквозных задачах я имею ввиду управление транзакциями, безопасность и прочие важные задачи, которые хоть и не относятся к бизнес логике напрямую - но оказывают существенное влияние на работу приложения в целом. В случае "жесткого связывания" основной логики и подобных задач - мы можем получить кучу проблем в случае ошибки последних. АОП, собственно, и нацелено на решение подобных задач.

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

Spring имеет свою собственную структуру АОП, которая концептуально проста для понимания и является отличным решением большинства проблем в корпоративных Java-приложениях. В этой статье мы собираемся рассмотреть магию Spring АОП - со всеми его достоинствами и недостатками. Если у вас вообще нет никакого понимания за данную тему - рекомендую почитать данный материал.

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

Apache Kafka и RabbitMQ: семантика и гарантия доставки сообщений

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


Подготовили перевод следующей части многосерийной статьи, где сравнивается функциональность Apache Kafka и RabbitMQ. В этой публикации речь идёт о семантике и гарантии доставки сообщений. Обращаем ваше внимание, что автор учитывал Кафку до версии 0.10 включительно, а в версии 0.11 появился exactly-once. Тем не менее, статья остаётся актуальной и полна полезных с практической точки зрения моментов.
Предыдущие части: первая, вторая.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии2

Семантика exactly-once в Apache Kafka

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


Всем привет! Меня зовут Юрий Лилеков, я работаю в Server Team Badoo. На днях мне попалась довольно интересная статья о новой семантике exactly-once в Apache Kafka, которую я с радостью для вас перевёл.

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

Security микросервисов с помощью Spring Cloud Gateway и TokenReley

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

Данная статья результат поиска некоего каноничного решения организации безопасности доступа к ресурсам в микросервисной архитектуре, построенной в экосистеме Spring. После прочтения десятка статей по данной тематике, к сожалению, не нашел то, что искал. Spring Security оказался одной из самых недопонятых технологий. Основная проблема у всех - изобретение своего велосипеда поверх стандартного функционала Spring Security. Зачастую, данные статьи сопровождаются комментариями никогда так не делать. И у многих, наверно, возникает вопрос, а как собственно можно делать. Ситуацию несколько прояснила официальная документация. Взяв её за основу, я хочу показать, как можно организовать безопасность микросервисов максимально простым и быстрым способом.

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

Асинхронное взаимодействие Spring-микросервисов с помощью Kafka

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

В этой статье разберемся, как реализовать обмен сообщениями между Java-микросервисами на Spring с помощью Kafka.

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

Использование Spring Cloud Gateway в качестве OAuth2 клиента  и KeyCloak для защиты служб

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

Привет, Хабр!

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

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

Scrum — рак, убивающий индустрию

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

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

Какой?
Всего голосов 191: ↑165 и ↓26+166
Комментарии289

Монолитная и микросервисная архитектура. Сравнение

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

Во время технических презентаций нашей технологии – платформы быстрой разработки Jmix – мы, как правило, доходим до вопроса архитектуры создаваемых приложений и часто встречаем грусть в глазах разработчиков, когда сообщаем, что создаваемое приложение имеет монолитную архитектуру. Удивительно, но случается, что команды разработки приложений на Delphi или Oraсle EBS непременно заинтересованы в реализации микросервисной архитектуры, отождествляя ее с чем-то очень современным и самым продвинутым. К счастью, хайп вокруг микросервисов постепенно начал замещаться новой информационной повесткой о необходимости рационального использования ресурсов и выбора типа архитектуры приложений на основе компетенций команд разработчиков и масштабов создаваемого решения. В Jmix есть все необходимое, чтобы создавать современные корпоративные информационные системы в рекордные сроки и с минимальными затратами. Мы понимаем, что монолитная архитектура приложений Jmix не может закрыть все кейсы, но мы верим, что для каждой задачи есть подходящий инструмент. Прочитайте перевод статьи из блога Camunda, возможно, она поможет понять какой тип архитектуры подходит для вашего проекта, чтобы сэкономить время, деньги и нервы.

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

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

Реактивное программирование со Spring, часть 3 WebFlux

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

Это третья часть серии заметок о реактивном программировании, в которой будет представлено введение в WebFlux - реактивной веб-фреймворк Spring.

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

Реактивное программирование со Spring, часть 2 Project Reactor

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

Это вторая часть серии заметок о реактивном программировании, в которой представлен обзор Project Reactor, реактивной библиотеки, основанной на спецификации Reactive Streams.

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

Микросервисная архитектура, Spring Cloud и Docker

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

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



Код доступен для ознакомления на гитхабе. Образы опубликованы на докерхабе, весь зоопарк стартует одной командой.

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

ModelMapper: путешествие туда и обратно

Время на прочтение10 мин
Количество просмотров73K
image

По известным причинам, бэкенд не может отдавать данные из репозитория как есть. Самая известная — сущностные зависимости берутся из базы не в таком виде, в котором их может понять фронт. Сюда же можно добавить и сложности с парсингом enum (если поля enum содержат дополнительные параметры), и многие другие сложности, возникающие при автоматическом приведении типов (или невозможности автоматического их приведения). Отсюда вытекает необходимость в использовании Data Transfer Object — DTO, понятном и для бэка, и для фронта.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии10

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

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

Backend Developer, Web Developer
Junior
От 100 000 ₽
Java
Java Spring Framework
Spring Boot
Hibernate
Junit
JDBC
Intellij IDEA
Java Core
OOP
Git