Шаблон проектирования адаптер

При написании материалов я так или иначе касаюсь темы шаблонов проектирования, однако я обратил своё внимание на то, что нередко путаюсь в их названиях. Поэтому я решил перечитать книгу «банды четырёх», а заодно написать цикл материалов по шаблонам проектирования с примерами кода на языке программирования Java.

Открывает цикл материалов статья о шаблоне проектирования «адаптер». Адаптер, так же известный как «обёртка» (wrapper), применяется в тех случаях, когда некоторый существующий класс необходимо адаптировать под использование с другим целевым интерфейсом без внесения изменений в адаптируемый класс, дабы не нарушать принцип открытости/закрытости.

Читать далее Шаблон проектирования адаптер

SOLID в деталях: Принцип открытости/закрытости (Видео)

В серии роликов «SOLID в деталях» я постараюсь подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.

Второй ролик посвящён принципу открытости/закрытости.

SOLID в деталях: Принцип подстановки Лисков

Третьим принципом в списке SOLID является Принцип подстановки Лисков (Liskov Substitution Principle; LSP), который из всех принципов имеет самую сложную формулировку, звучащую следующим образом:

Пусть q(x) является свойством, верным относительно объектов x некоторого типа T. Тогда q(y) также должно быть верным для объектов y типа S, где S является подтипом типа T.

Барбара Лисков
Читать далее SOLID в деталях: Принцип подстановки Лисков

SOLID в деталях: Принцип единственной ответственности (Видео)

В серии роликов «SOLID в деталях» я постараюсь подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.

В первом ролике речь пойдёт о принципе единственной ответственности (Single Responsibility Principle; SRP), его трактовках и их практическом применении.

Видео можно посмотреть на следующих платформах:

Текстовая версия видео

Spring по верхам: тестирование REST сервиса

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

Читать далее Spring по верхам: тестирование REST сервиса

Десериализация JSON в GraalVM Native Image

Одной из главных профессиональных целей, которые я ставил перед собой на этот уже уходящий 2022 год, было изучение перспективной GraalVM, в особенности сборки нативных образов (Native Image), а так же внедрение этого всего в свои проекты. В общих чертах я уже был знаком с GraalVM, и даже экспериментировал со сборкой нативных образов из проектов, основанных на Spring Boot, но ждал релиза Spring Boot 3. И, дождавшись его, начал переводить существующие проекты на новую версию стека Spring и заодно пробовать собирать нативные образы.

Читать далее Десериализация JSON в GraalVM Native Image

Spring по верхам: разработка REST-сервиса

У меня в планах уже давно есть написание нескольких циклов материалов, и я даже начинал писать некоторые из них, но всякий раз по тем или иным причинам дело не доходило до публикации. И вот я наконец созрел явить общественности свой первый цикл материалов «Spring по верхам», в котором буду поверхностно рассказывать о том, как можно использовать экосистему Spring при разработке проектов.

Читать далее Spring по верхам: разработка REST-сервиса

Java: управление потоком выполнения без исключений

Видео о конкретизации результатов выполнения операций вместо использования исключений.

Ветвление кода без исключений

Использование исключений для управления потоком выполнения является достаточно распространённой практикой. Однако во многих статьях и книгах, посвящённым лучшим практикам, например в замечательной книге Джошуа Блоха “Java — Эффективное программирование“ (Effective Java, Joshua Bloch), даётся рекомендация не использовать исключения как способ ветвления кода.

Читать далее Ветвление кода без исключений

Начало разработки веб-приложений с Java и Spring

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

Читать далее Начало разработки веб-приложений с Java и Spring