Как стать автором
Обновить
0
@Alex_4_alex read⁠-⁠only

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

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

Микросервисы: от CRUD до Native Image. Часть вторая

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

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

Эта половина статьи сосредоточится на опыте нашей команды BellSoft. Поговорим о том, каким образом мы взаимодействуем с миром микросервисов: здесь будет и про универсальный Java-рантайм, и про крошечные контейнеры, и про Spring. Я разложу микросервис на слои, соберу в образ, запущу и покажу, что влияет на его скорость.

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

Запись событий Spring при тестировании приложений Spring Boot

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

Одна из основных функций Spring - функция публикации событий. Мы можем использовать события для разделения частей нашего приложения и реализации шаблона публикации-подписки. Одна часть нашего приложения может публиковать событие, на которое реагируют несколько слушателей (даже асинхронно). В рамках Spring Framework 5.3.3 (Spring Boot 2.4.2) теперь мы можем записывать и проверять все опубликованные события ( ApplicationEvent) при тестировании приложений Spring Boot с использованием @RecrodApplicationEvents.

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

Pattern matching в Java 8

Время на прочтение 9 мин
Количество просмотров 11K
Многие современные языки поддерживают сопоставление с образцом (pattern matching) на уровне языка.

Язык Java не является исключениям. И в Java 16 будет добавлено поддержка сопоставление с образцом для оператора instanceof, как финальной фичи.

В будущем надеемся, что сопоставление с образцом будем расширено и для других языковых конструкций.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 11

Книга «Современный язык Java. Лямбда-выражения, потоки и функциональное программирование»

Время на прочтение 10 мин
Количество просмотров 15K
imageПривет, Хаброжители! Преимущество современных приложений — в передовых решениях, включающих микросервисы, реактивные архитектуры и потоковую обработку данных. Лямбда-выражения, потоки данных и долгожданная система модулей платформы Java значительно упрощают их реализацию.

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

В этой книге: • Новые возможности Java • Потоковые данные и реактивное программирование • Система модулей платформы Java.
Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Комментарии 19

План подготовки к собеседованию на позицию Java разработчика

Время на прочтение 5 мин
Количество просмотров 62K
Каждый раз, готовясь к собеседованиям на позицию «Java разработчик», я понимаю, что мне бы очень помог конкретный план подготовки. Поэтому все свои записи, накопившиеся в ходе прохождения собеседований, было решено структурировать и опубликовать. Надеюсь, кому-то этот план будет полезен.

И я намеренно не пишу, для кого предназначен этот план подготовки: для senior, middle или junior разработчика — все зависит от конкретной вакансии и от требований работодателя. Поэтому опирайтесь на этот план, но фильтруйте и в то же время не воспринимайте его как исчерпывающее руководство.

  1. Java core. Здесь можно ориентироваться например на книгу «OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide: Exam 1Z0-809» для подготовки к Java сертификации уровня Professional. Есть подобная книга «OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808» для уровня Associate — на нее тоже можно взглянуть. Пройдитесь по оглавлению и выделите для себя, что можно повторить. Конечно же, не стоит пускаться во все тяжкие и читать книгу от корки до корки — многие темы из этой книги можно обойти стороной, например форматирование дат. Выделите самое основное. Например для меня это были следующие темы: коллекции (стандартные вопросы «Как устроена HashMap?» или «Чем отличается LinkedList от ArrayList?» все также часто задают на собеседованиях), дженерики, функциональные интерфейсы, многопоточность (тут тоже фильтруйте — не нужны вам cyclic barrier и fork join framework).
    Также не забывайте проецировать знания на свой опыт. Например, когда вам приходилось использовать многопоточное программирование? Какие проблемы вы решали? Какие блокировки использовали?
  2. Многопоточность.
Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Комментарии 16

Пишем простое веб-приложение используя Spring MVC, Spring Data JPA и Hibernate

Время на прочтение 16 мин
Количество просмотров 77K
Привет, Хабр! Представляю Вашему вниманию перевод руководства «Spring MVC + Spring Data JPA + Hibernate — CRUD Example» автора Nam Ha Minh.

В этом руководстве по Java Spring вы узнаете, как настроить Spring MVC приложение для работы с Spring Data JPA, разработав простое веб-приложение, которое позволяет управлять информацией о клиентах.
Читать дальше →
Всего голосов 18: ↑11 и ↓7 +4
Комментарии 6

Учебник по Spring Boot Admin

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


Контролируйте и управляйте своими приложениями Spring Boot с помощью приятного пользовательского интерфейса поверх конечных точек Spring Boot Actuator.

Spring Boot Actuator


Actuator — это модуль Spring Boot, который добавляет конечные точки (endpoint) REST / JMX в ваше приложение, чтобы вы могли легко отслеживать и управлять им в производственной среде. Конечные точки предлагают проверку работоспособности, мониторинг метрик, доступ к журналам, дампам потоков, дампам кучи, информации об окружающей среде и многое другое. Автор подробно рассказал об Actuator в следующей статье:
Actuator: Spring Boot Production Monitoring and Management
Мониторинг и управление вашим работающим приложением с помощью Spring Boot Actuator 2.x. Соберите метрики или проверьте здоровье приложения.
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 1

Java: свертывание многострочных логов в однострочный лог с помощью Spring и логгера Logback или Log4j2

Время на прочтение 7 мин
Количество просмотров 7K
Logback и Log4j2 – одни из самых известных фреймворков логирования в JAVA. Фреймворк Logback используется только совместно с библиотекой SLF4J, которая представляет собой интерфейс для систем протоколирования событий. Log4j2 представляет собой вторую, улучшенную версию логгера Log4, библиотеку логирования, в которой интерфейс API и реализация выделены отдельно, что позволяет использовать API Log4j 2 совместно с реализацией другого логгера.

Spring Music является приложением для использования сервиса базы данных среды Cloud Foundry совместно со Spring Framework и Spring Boot. Оно создано для сохранения одних и тех же доменных объектов в одном из множества различных хранилищ – объектно-реляционном, документно-ориентированном или распределенном (key-value store).
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 9

Микросервисы со Spring Boot. Часть 1. Начало работы

Время на прочтение 7 мин
Количество просмотров 63K
Это первая часть серии статей по основам микросервисных архитектур.

В ней вы познакомитеь с концепцией микросервисов и узнаете, как создавать микросервисы с помощью Spring Boot и Spring Cloud.

Это руководство поможет вам изучить основы микросервисных архитектур. Мы также начнем рассматривать базовую реализацию микросервиса со Spring Boot.

Мы создадим пару микросервисов и заставим их общаться друг с другом с помощью сервера имен Eureka (Eureka Naming Server) и Ribbon для балансировки нагрузки на стороне клиента.

Это статья входит в серию статей «Микросервисы со Spring Boot»:


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

«Чистый код» Роберт Мартин. Конспект. Как писать понятный и красивый код?

Время на прочтение 9 мин
Количество просмотров 59K
Я решил написать конспект книги, которая всем известна, а сам автор называет ее «Школой учителей Чистого кода». Пристальный взгляд Мартина как бы говорит:

«Я тебя насквозь вижу. Ты опять не следуешь принципам чистого кода?»

image
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 15

Валидация параметров конфигурации Spring Boot при запуске

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

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


Для некоторых параметров конфигурации имеет смысл не запускать приложение, если они недействительны.


Spring Boot предлагает нам удобный способ валидации параметров конфигурации. Мы собираемся связать входные значения со @ConfigurationProperties и использовать Bean Validation для их валидации.

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

Понятнее о S.O.L.I.D

Время на прочтение 8 мин
Количество просмотров 60K
Большинство разработчиков с разговорами о принципах архитектурного дизайна, да и принципах чистой архитектуры вообще, обычно сталкивается разве что на очередном собеседовании. А зря. Мне приходилось работать с командами, которые ничего не слышали о S.O.L.I.D, и команды эти пролетали по срокам разработки на многие месяцы. Другие же команды, которые следовали принципам дизайна и тратили очень много времени на буквоедство, соблюдение принципов чистой архитектуры, код-ревью и написание тестов, в результате значительно экономили время Заказчика, писали лёгкий, чистый, удобочитаемый код, и, самое главное, получали от этого кайф.

Сегодня мы поговорим о том, как следовать принципам S.O.L.I.D и получать от этого удовольствие.



Что такое S.O.L.I.D? Погуглите — и получите 5 принципов, которые в 90% случаев описываются очень скупо. Скупость эта потом выливается в непонимание и долгие споры. Я же предлагаю вернуться к одному из признанных источников и хотя бы на время закрыть этот вопрос.

Источником принципов S.O.L.I.D принято считать книгу Роберта Мартина «Чистая архитектура». Если у Вас есть время прочесть книгу, лучше отложите эту статью и почитайте книгу. Если времени у Вас нет, а завтра собес — велком.
Читать дальше →
Всего голосов 26: ↑18 и ↓8 +10
Комментарии 37

Ведение журнала в Spring Boot

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

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

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

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

Валидация и обработка исключений с помощью Spring

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

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

В этой статье я обобщаю свой опыт и даю несколько советов по валидации интерфейсов.

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

Unit-тестирование, детальное рассмотрение параметризованных тестов. Часть I

Время на прочтение 8 мин
Количество просмотров 9.7K
Доброго времени суток, коллеги.

Я решил поделиться своим видением на параметризованные юнит-тесты, как делаем это мы, и как возможно не делаете (но захотите делать) вы.

Хочется написать красивую фразу, о том что тестировать надо правильно, и тесты это важно, но до меня сказано и написано уже много материала, я лишь попробую резюмировать и осветить то, что по моему мнению людьми редко используется(понимается), на что в основном задвигается.
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 0

Улучшение Spring Mock-MVC тестов

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

Spring Mock-MVC может быть отличным способом протестировать Spring Boot REST API. Mock-MVC позволяет нам тестировать обработку запросов Spring-MVC без запуска реального сервера.

Я использовал тесты Mock-MVC в различных проектах, и по моему опыту они часто бывают довольно многословными. Это не должно быть плохо. Однако это часто приводит к копированию / вставке фрагментов кода в тестовые классы. В этом посте мы рассмотрим несколько способов очистки тестов Spring Mock-MVC.

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

Обработка исключений в контроллерах Spring

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

image


Часто на практике возникает необходимость централизованной обработки исключений в рамках контроллера или даже всего приложения. В данной статье разберём основные возможности, которые предоставляет Spring Framework для решения этой задачи и на простых примерах посмотрим как всё работает. Кому интересна данная тема — добро пожаловать под кат!

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

Как Spring Data Jdbc соединяет таблицы

Время на прочтение 6 мин
Количество просмотров 14K
В этом посте мы рассмотрим, как Spring Data Jdbc строит sql-запросы для извлечения связных сущностей.



Пост рассчитан на начинающих программистов и не содержит каких-то супер хитрых вещей.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 0

Введение в Spring Data JDBC

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

Spring Data JDBC был анонсирован в 2018 году. Целью было предоставить разработчикам более простую альтернативу JPA, продолжая при этом следовать принципам Spring Data. Подробнее узнать о мотивах, лежащих в основе проекта, вы можете в документации

В этой статье я покажу несколько примеров использования Spring Data JDBC. Здесь не будет подробного руководства, но, надеюсь, приведенной информации хватит, чтобы попробовать его самостоятельно. Очень хорошо, если вы уже знакомы со Spring Data JPA. Исходный код вы можете найти в github.

Для быстрого старта я использовал этот шаблон.

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

Swagger (OpenAPI 3.0)

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

Swagger - это фреймворк для спецификации RESTful API. Его прелесть заключается в том, что он дает возможность не только интерактивно просматривать спецификацию, но и отправлять запросы – так называемый Swagger UI. Также возможно сгенерировать непосредственно клиента или сервер по спецификации API Swagger, для этого понадобиться Swagger Codegen.

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

Информация

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