Как я написал книгу по Java
Прошло уже больше полугода, а точнее уже скоро почти год, с того момента, как я опубликовал статью о сдаче черновика рукописи. В прошлой статье уже описана моя часть работы над книгой. Всё, что происходило после, ложилось на плечи издательства. Со мной лишь иногда контактировали, чтобы вместе выбрать, например, дизайн обложки или проверить результат корректуры.
Буквально недавно книга окончательно вышла, и её можно купить на сайте издательства, а авторские экземпляры получены и хранятся у меня.
Сразу должен сказать, что книга точно не для начинающих. В некоторых главах рассматриваются довольно углублённые технические вопросы, которые новичка скорее запутают, чем облегчат ему освоение программирования. Особое внимание уделено изменениям, которые происходили от версии к версии, а также некоторым внутренним особенностям языка. Из-за длительного периода развития в Java накопилось порядочно «костылей», благодаря которым старый код остаётся работоспособным, но которые могут запутать программиста. В книге описываются основные моменты, которые нужно помнить при разработке, для того чтобы ваш код работал именно так, как вы бы хотели.
Я не особо популярная личность, поэтому не ожидаю какого-либо ажиотажа, но буду стараться, чтобы книгу купило как можно большее количество людей.
Про что же в целом книга? Лучше пройдёмся по списку глав и кратко опишем их.
Глава 1. Введение
Общая глава, рассказывающая о Java и о том, как написать на ней первую программу.
Глава 2. Переменные
Описание восьми примитивных типов данных, способов объявление переменных, типов переменных, граничных значений, соглашения об именовании и т. д.
Глава 3. Операции
Приводится описание всех операций в Java. Приводится таблица приоритетов операций, позволяющая однозначно определить порядок их выполнения.
Глава 4. Выражения, инструкции и блоки
Описываются операторы ветвления, циклы, метки и т. д.
Глава 5. Классы и объекты
Рассказывается о создании классов, описании их состояний и методов.
Глава 6. Аннотации
Описывается добавление метаинформации к коду, а также стандартные аннотации, используемые компилятором.
Глава 7. Вложенные классы и лямбда-выражения
В Java внутри одного класса можно располагать другие классы и даже выстраивать иерархии их этих вложенных классов. В главе достаточно подробно описывается, какие бывают вложенные классы, когда их стоит использовать, а когда нет, а также их ограничения.
Глава 8. Интерфейсы
Рассказывается о возможностях интерфейсов в Java и их использовании.
Глава 9. Наследование
Наследование в Java, общий предок Object и его методы, использование методов родительского класса и их переопределение.
Глава 10. Пакеты
Группировка классов и интерфейсов в отдельные пакеты, а также их использование их других пакетов.
Глава 11. Перечисления
Описываются перечисления, их общий предок Enum, ограничения перечислений и их особенности в Java.
Глава 12. Записи
Описывается использование записей (records), появившихся в Java 16.
Глава 13. Числа
Специальные классы для работы с числами. Почему нужно использовать BigDecimal для денежных значений.
Глава 14. Строки
Особенности внутреннего представления и работы со строками в Java.
Глава 15. Автоупаковка и распаковка
Для чего появилась автоупаковка и распаковка, как она работает и когда применяется.
Глава 16. Optional
Упрощение обработки отсутствующего значения. Когда можно использовать Optional.
Глава 17. Модули
Использование модулей, появившихся в Java 9.
Глава 18. Обобщения
Как появились обобщения в Java. Какие у них ограничения и почему. Бриллиантовая операция. Стирание типа.
Глава 19. Исключения
Обработка исключительных ситуаций и создание своих типов ошибок. Иерархия исключений.
Глава 20. Потоки ввода/вывода
Иерархия потоков ввода/вывода InputStream, OutputStream, особенности конкретных реализаций.
Глава 21. Сериализация
Сериализация в Java.
Глава 22. Файлы (NIO.2)
Работа с файлами через java.nio.
Глава 23. Многопоточность
Описываются способы создания многопоточных приложений на Java и способы разрешения возможных проблем.
Глава 24. Настройки и окружение
Работа с переменными окружения, класс System, чтение настроек и аргументов командной строки.
Глава 25. Регулярные выражения
Регулярные выражения — это довольно обширная и сложная тема. В этой главе они рассматриваются на уровне, достаточном для работы.
Глава 26. Коллекции
Описывается работа с Java Collections Framework как со старыми классами, так и с новыми. Рассказывается об основных интерфейсах и их реализациях. Уделяется внимание стандартным реализациями алгоритмов, а также Stream API.
Глава 27. Дата и время
Описываются три основных способа работы с датой и временем, появившиеся в Java в результате многолетнего развития.
Глава 28. Форматирование и парсинг
Рассказывается о способах форматирования в соответствии с шаблонами и региональными настройками чисел, денежных сумм и дат, а также их чтение из строк.
Глава 29. Работа с консолью
Описываются два способа работы с консолью: через экземпляр Console и через System.
Глава 30. Локализация
Создание многоязыкового приложения и адаптация под разные региональные стандарты.
Глава 31. Пример сервиса со Spring
Пример создания простого REST-сервиса на Spring Boot, его запуск в Docker и Kubernetes.
Глава 32. Заключение
Просто философская глава, подводящая общий итог всей книги.
Буду ли я писать ещё книги? Разумеется, да. По плану уже выпущенную книгу по Java предполагается постоянно актуализировать и выпускать более актуальные издания в соответствии с изменениями в мире ИТ. А также по плану в 2023 я собираюсь начать писать ещё одну книгу, но конкретную тематику пока не определили. Возможно, стоит написать продолжение в котором более подробно описать написание серверной части современных приложений на Spring? Или что-нибудь похожее на это. А может, стоит немного отвлечься, и вторую книгу написать, например, про TypeScript? Или про особенности переделки старого кода на J2EE в современное приложение на Spring Boot? Пока ещё не очень понятно, что будет лучше.
Сколько я получил с книги? Пока ничего, но какая-то сумма определённо будет. Как у начинающего писателя она, разумеется, будет не особо большой, но определённо что-то будет. Я, если честно, больше рассматриваю эту книгу как хобби или способ самореализации, чем как реальный способ заработка. Хотя довольно ресурсоемкий процесс по времени, конечно, для хобби.
Вышла книга в самом конце декабря, поэтому, видимо, год выхода сделали 2023.
|
---|
Купить бумажный и электронный варианты можно на сайте издательства.