Эта статья является частью книги про Spring Framework, которая по планам должна выйти где-нибудь в 2024 году, ну в крайнем случае в 2025, если не все будет получаться.
Третье число января Месяц Утренней звезды 2024. Продолжаю писать свою книгу про Spring. На текущий момент работаю над главой с описанием примера приложения, а конкретно в данный момент доделываю раздел про пример приложения на Spring Framework без Spring Boot.
В приложении-примере отрефакторил слой сервисов бизнес-логики и оптимизировал количество классов-сервисов, убрав ненужные. Теперь структура стала выглядеть гораздо локаничнее.
Выложил текущий вариант серверной части на GitHub. Планируется, что будет несколько веток:
- springframework — ветка для варианта на Spring Framework и XML-конфигурации.
- springboot — ветка для варианта на Spring Boot и с остальными изменениями под современные веяния разработки на Spring.
- Возможно, ещё будут дополнительные ветки, где будут показываться
другие возможности / компонеты Springвозможности других проектов Spring.
Добавил использование testcontainers1 и liquibase2. Со всякими Docker Desktop и testcontainers тоже пришлось повозиться порядочное количество времени. Далеко не всё сразу работало.
Интересный факт
У ноутбука, на котором я пишу книгу в Microsoft Word, на клавиатуре нет русских букв, так как я уже два раза менял его клавиатуру, но в последний раз локализованного варианта не нашёл.
Арендовал виртуальный сервер и добавил домен третьего уровня virtualpets.urvanov.ru к своему основному сайту. Теперь расходы на хостинг у меня суммарно будут почти в два раза больше, поскольку надо оплачивать и виртуальный хостинг LAMP, и виртуальный сервер. На виртуальном сервере развернул Debian и настроил Apache 2, Apache Tomcat и PostgreSQL. Развернул серверную и клиентскую часть тестового приложения.
Серверная часть приложения имеет небольшое количество страничек, на которых выводится информация о сервере, статистика и немного страничек с описанием. Посмотреть как всё это выглядит можно здесь.
Сайт сервера виртуальных питомцев пока ещё выглядит старым. Ссылки на скачивание в окончательном варианте, разумеется, не будет. Играть можно будет прямо в браузере, либо можно будет установить клиентскую часть как Installable Progressive Web Application.
Клиентская часть в текущем её варианте собрана и развёрнута по ссылке. Зайти и попытаться покликать мышкой можно использую логин / пароль admin / 123 (то есть пароля фактически ещё нет). Нужно понимать, что сама игра здесь не столь важна, поскольку мы в данном случае пишем не игру, а пишем именно саму книгу.
Всё это, разумеется, ещё не окончательный рабочий вариант. В конечном счёте в книгу войдёт немного иначе другое. Сейчас же это можно смотреть как общую тенденцию разработки и общую картину того, что в конечном итоге должно получиться.
Книга по Java была, на мой взгляд неплоха. Хотя и довольно сложна и уж точно не для начинающих.
Вторая моя книга будет про Spring Framework Boot Framework и Spring Boot. Эта тема сама по себе уже гораздо сложнее для понимания, она требует довольно обширных знаний из мира разработки программного обеспечения. Я думаю, что в ней книге3 я буду пытаться писать так, будто её будет читать тот, кто умеет разрабатывать на Java, но пока ещё не знает про Spring Framework, то есть в совсем уж сильные дебри и тонкости не буду влезать, как это делал в книге по Java. Даже в том варианте, в каком я её планирую, она итак уже будет сложной содержать довольно большое количество материала.