Книга «Разработка Java приложений». Часть третья

Всем добрый день

Сразу хочу сказать, что это топик для тех, кто читал или слышал про мою книгу «Разработка Java приложений». Книга есть в открытом доступе, там можно скачать и архив проекта.
Первая часть: it-simulator.com/#/article/1/3
Вторая часть: it-simulator.com/#/article/312/313

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

Поэтому в связи с тем, что технологий большое множество, а я всегда прислушиваюсь к фидбеку моих читателей, вы можете в этом топике либо мне на email info@it-simulator.com написать, какие технологие вам интересны, и я постараюсь их разобрать.

Первые 4 главы уже есть на нашем сайте: . it-simulator.com/#/article/459/460

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

👍НравитсяПонравилось0
В избранноеВ избранном1
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Первая часть навела на интересную мысль. Тесты и код взаимосвязаны. Но чем? Если код это некое предложение языка, то тест, проверяющий этот код будет для него контекстом.
Всем известно, что предложение вне контекста, вырванное из контекста это не есть гуд.
Таким образом и код без теста это тоже не есть гуд.
Здесь даже больше. Если взять и представить код графически как круг, а тест как круг побольше и совместить их то получится, что тест как бы покрывает код. В реальности это похоже на отношение предмета (объекта) и его окружения. Например, стол стоит в комнате. Стол — код, комната — тест. Комната снабжает разработчика всеми необходимыми test cases для стола.
Поэтому и вывод такой: код без теста на него наполовину программистом написан.
На 50% работа сделана если у вашего кода нет тестирующего его кода.
Меня это открытие поразило в общем-то. Так что сильная книга получается, раз наталкивает на такого рода мысли.

Спасибо за фидбек. А по поводу тестов — все зависит от требований по проекту. Если нет требований писать тесты, то написав код, вы сделали 100% работы. Другое дело — уверены ли вы в своем коде и как этот код будет работать в production, но уже заботы заказчика.

Чем интересна эта книга (в любой части) и чем отличается от многих других — практически 100% покрытие кода (юнит, интеграционными или системными тестами). При том, что там немаленький проект и более 100 используемых технологий.

Уважаемые читатели!

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

1) Преобразовали монолитный проект в полноценное микросервисное приложение с необходимым набором тестов
2) Предоставили возможность пользователю поиска маршрутов и оформления заказов (то, что мы планировали еще в первой части)

Кроме того, у нас во время написания появилась новая задача — сделать наши микросервисы гетерогенными за счет того, что мы использовали новую для нас технологию — Spring Boot как платформу (контейнер) для разработки новых микросервисов. Таким образом, у нас часть микросервисов используют Java EE, часть — Spring Boot.

Какие еще достижения можно записать себе в карму?
• Добавили основные Spring технологии по работе с REST API/данными — Spring MVC, Spring Data
• Использовали Spring Boot Actuator для мониторинга/проверки жизнеспособности
• Реализовали некоторые enterprise паттерны — Gateway API, клиентская библиотека
• Сделали аутентификацию в клиентской части на основе JWT токенов
• Использовали библиотеку Angular Material и ее визуальные компоненты для клиент-ской части
• Написали документацию для наших Spring REST-серисов на основе Spring REST Docs и Open API 3
• Познакомились и использовали Liquibase для инициализации и миграции нашей базы данных
• Использовали WireMock для симуляции (мокирования) внешних зависимостей (REST API)
• Создали свой компонент для отправки запросов/сериализации на основе Java HTTP клиента и Gson
• Сделали сборку микросервисов полностью независимой, что значительно сократило время сборки
• Перешли на современные версии ключевых технологий — Java 13, Angular 9, MySQL 8

Спасибо всем, кто читал третью часть и до встречи в четвертой части.

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

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

Гарна новина! Дякую! Читаю.

Буду краток: чукча не писатель.
Тест: проверьте на том, что уже хорошо знаете, и помните путь обучения. Оцените, насколько понятно [нет] это написано.

Как по мне, материал чётко ложится в канву «смотрите, я умный, а вы дураки».

Оскорблять других очень просто (чем вы и постоянно занимаетесь на ДОУ). Я так понимаю, вам можно было бы показать любую книгу, и вы бы про нее написали примерно то же самое. И мой вам совет — не нужно проецировать неудачи в себе на окружающих.

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

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

PS. Львиная доля книг действительно является информационным мусором, и ценность их не выше макулатуры.

Подписаться на комментарии