Книгописание (03.01.2024)

Эта статья является частью книги про 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. Развернул серверную и клиентскую часть тестового приложения.

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

Virtual pets server
Сайт серверной части игры про виртуальных питомцев

Сайт сервера виртуальных питомцев пока ещё выглядит старым. Ссылки на скачивание в окончательном варианте, разумеется, не будет. Играть можно будет прямо в браузере, либо можно будет установить клиентскую часть как Installable Progressive Web Application.

Клиентская часть в текущем её варианте собрана и развёрнута по ссылке. Зайти и попытаться покликать мышкой можно использую логин / пароль admin / 123 (то есть пароля фактически ещё нет). Нужно понимать, что сама игра здесь не столь важна, поскольку мы в данном случае пишем не игру, а пишем именно саму книгу.

virtualpets client JS
Клиентская часть игры про виртуальных питомцев

немного истории

А ведь первоначальная версия этой игры про виртуальных питомцев была написана на Delphi 7 ещё когда я учился в университете.

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

Книга по Java была, на мой взгляд неплоха. Хотя и довольно сложна и уж точно не для начинающих.

Вторая моя книга будет про Spring Framework Boot Framework и Spring Boot. Эта тема сама по себе уже гораздо сложнее для понимания, она требует довольно обширных знаний из мира разработки программного обеспечения. Я думаю, что в ней книге3 я буду пытаться писать так, будто её будет читать тот, кто умеет разрабатывать на Java, но пока ещё не знает про Spring Framework, то есть в совсем уж сильные дебри и тонкости не буду влезать, как это делал в книге по Java. Даже в том варианте, в каком я её планирую, она итак уже будет сложной содержать довольно большое количество материала.

  1. Фреймворк для создания одноразовых контейнеров с базами данных, брокеров сообщений и всем остальным, что может запускаться в docker. ↩︎
  2. Библиотека для отслеживания и применения изменений в базе данных. ↩︎
  3. Имеется в виду, конечно, книга про Spring, которая сейчас в активной работе. ↩︎

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *