Книга Марка Хеклера «Spring Boot по-быстрому»

«Любой автор сам выбирает, что включать в издание, что не включать…
То, что одному автору кажется необязательным материалом,
другой считает совершенно необходимым»

Цитата из предисловия.

Привет всем! Как-то так сложилось, что в последнее время посты в этом блоге посвящены всего двум темам: книгам и OutWiker-у. В этот раз речь пойдет опять о программерской книге. Недавно в посте о книге Крейга Уоллса «Spring в действии» я писал, что на русском языке вышла еще одна книга про Spring — «Spring Boot по-быстрому» Марка Хеклера. Вот про нее сейчас и поговорим.

Честно говоря, книга оставила какое-то неоднозначное ощущение. Некоторые темы здесь описаны чуть более подробно, чем это сделано в книге «Spring в действии», но больше данная книга напоминает серию постов в блоге, когда автор рассказывает о возможностях фреймворка на конкретном примере с длинными листингами программ (зачастую слишком длинными), но при этом книгу нужно читать последовательно, потому что автор описывает рефакторинг одного и того же кода из главы в главу.

Подзаголовок книги «Создаем облачные приложения на Java и Kotlin» может в вести в заблуждение тем, что Kotlin, конечно, упоминается, говорится, что есть такой язык, есть даже один пример микросервиса, который написан на этом языке, но в целом концентрация Kotlin в общем содержании настолько мала, что ей можно пренебречь. В данном случае я бы сказал, что это скорее хорошо, что содержание не распыляется на два языка, и даже там, где Kotlin используется, это выглядит немного странно. Наверное, единственная цель этого примера — показать, что со Spring можно работать и на Kotlin, но уж точно это не стоило выносить на обложку книги.

Объем книги не такой большой, около 350 страниц, далее я коротко пробегусь по ее содержанию.

Читать далее ‘Книга Марка Хеклера «Spring Boot по-быстрому»’ »

Книга Крейга Уоллса «Spring в действии»

Всем привет! Пару лет назад я присоединился к проекту, бэкенд для которого мы пишем на связке Java + Spring. Для меня переход на этот стек тогда стал неожиданностью, поскольку если о Java я еще имел представление, то вот фреймворк Spring для меня был абсолютно неизвестной вещью. Тогда я его начал осваивать по разным англоязычным книгам. И одна из книг, с которой я начал свое знакомство со Spring была книга «Spring in Action» Крейга Уоллса. Правда, тогда я из нее прочитал только несколько глав, а потом, когда уже стал что-то писать самостоятельно для проекта, переключился на разные статьи, которые бы освещали те элементы фреймворка, которые мне нужны были в конкретный момент.

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

И вот на днях я эту книгу дочитал. Не могу сказать, что теперь уже на меня эта книга произвела большое впечатление, но понимаю, что тогда, два года назад, когда только начинал разбираться со Spring, ее стоило дочитать. Дело в том, что это достаточно объемная книга, более 500 страниц, но при этом все равно после нее остается впечатление как после длинной, но обзорной экскурсии, когда вас возят по огромному городу на автобусе, говорят «посмотрите налево, здесь у нас то-то, а теперь посмотрите направо, там у нас это», но при этом очень не хватает углубленного погружения.

Читать далее ‘Книга Крейга Уоллса «Spring в действии»’ »

Книга Скотта Оукса «Эффективный Java»

Всем привет! Я продолжаю прокачивать свои знания про Java, и чем больше я читаю про внутреннее устройство его виртуальной машины (JVM), тем больше проникаюсь уважением к этой технологии. Сегодня хочу рассказать про книжку Скотта Оукса «Эффективный Java. Тюнинг кода на Java 8, 11 и дальше», которую дочитал на днях. Это уже второе издание книги, которая на русском языке вышла в 2021 году, а английская версия была написана в 2020 году, поэтому несмотря на то, что на обложке упоминается лишь Java 11 (с не очень убедительной припиской «и дальше»), книга достаточно актуальна. Просто на момент ее издания, долгоподдерживаемой версией (LTS) была Java 11, вышедшая в 2018 году.

Это очень подробная книга о том, что происходит «под капотом» среды выполнения Java, и как это можно использовать для написания более продуктивного кода. Или даже скорее о том, каких ситуаций лучше избегать. Это не учебник про язык Java, и кода там не так уж и много. В основном код здесь — это небольшие тестовые примеры, по которым измеряется производительность виртуальной машины в различных ситуациях и с различными настройками. Поскольку сейчас Java во многих случаях используется для написания серверных приложений, то и примеры часто делают упор на такое применение. Ничего про Java на Android в этой книге не сказано — там своя виртуальная машина Java, для которой надо писать свою отдельную книгу. В этой книге речь идет про виртуальную машину от Oracle и OpenJDK. Также надо сказать, что эта книга не про байт-код, который создается компилятором Java (хотя про него изредка речь заходила), а про то, как виртуальная машина и сборщики мусора работают в процессе выполнения приложения.

Коротко пробегусь по основным темам, которые затрагиваются в этой книге.

Читать далее ‘Книга Скотта Оукса «Эффективный Java»’ »

Книга Криса Ричардсона «Микросервисы»

Недавно прочитал книгу Криса Ричардсона «Микросервисы», о которой и хотел рассказать в этом посте. Это довольно объемная книга, в ней больше 500 страниц, и в оригинале она называется «Microservices Patterns with examples in Java», что более точно описывает содержание книги. В этой книге действительно упор сделан на типичные шаблоны проектирования при использовании микросервисной архитектуры. Основное содержание книги крутится вокруг выдуманной компании, которая разрабатывает сервис по доставки еды из ресторанов. У них уже есть написанное на Java монолитное приложение, и разработчики решили его разбить на микросервисы. В книге описываются, какие сложности при это могут возникнуть, как спроектировать взаимодействующую систему монолитов, и какие приемы для решения различных типичных проблем можно использовать.

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

Читать далее ‘Книга Криса Ричардсона «Микросервисы»’ »

Про книгу «Современный язык Java»

Обложка "Современный язык Java"В последнее время помимо языка Python (которому, кстати, на днях исполнилось 30 лет) я активно стал использовать Java, поэтому решил углубить свои знания в этом языке и почитать более специализированные книги, которые поподробнее рассказывают об отдельных элементах языка или библиотек. Этот пост будет посвящен одной из таких книг, которую в целом можно охарактеризовать словами «как нам из Java сделать функциональный язык программирования». Речь пойдет о книге трех авторов Рауля-Габриэля Урма, Марио Фуско и Алана Майкрофта «Современный язык Java», в оригинале она называется «Modern Java in Action». Англоязычная версия книги была издана в 2018 году, и на тот момент были актуальные версии Java 8 и 9, а Java 10, который только-только вышел.

Большая часть книги основана на использовании лямбда-выражений (они же анонимные функции), о которых очень подробно рассказывается в первых главах книги. На мой взгляд даже чересчур подробно, так что возникает ощущение, что авторы повторяют одно и то же чуть под разными углами зрения. В Java 8 помимо анонимных функций появилась возможность создавать ссылки на методы классов, о том, как это работает, и как ссылки на методы связаны с лямбда-выражениями и функциональными интерфейсами (интерфейсами, у которых есть только один абстрактный метод) и рассказывается в первых главах на множестве небольших примеров. А для самых любопытных и продвинутых в приложении даже приводится анализ байт-кода, который создается компилятором для создания анонимных функций.

Читать далее ‘Про книгу «Современный язык Java»’ »