Гид Java-разработчика

Гид Java-разработчика

Гид Java-разработчика
Автор: Ричард Уорбертон, Урма Рауль-Габриэль
Дата выхода: 2022
Издательство: БОМБОРА
Количество страниц: 226
Размер файла: 4.1 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

ОГЛАВЛЕНИЕ  
Предисловие  
Почему мы написали эту книгу  
Подход, ориентированный на разработчика  
Что в этой книге?  
Для кого эта книга?  
Условные обозначения, используемые в книге  
Использование примеров кода  

Глава 1. Начало путешествия  
Темы  
Особенности Java  
Разработка программного обеспечения и архитектура  
SOLID  
Тестирование  
Структура глав  
Самостоятельная работа  

Глава 2. Анализатор банковских операций  
Задача  
Цель  
Требования к анализатору банковских операций  
Принцип KISS  
Переменные final  
Обслуживаемость кода и антишаблоны  
Класс-бог  
Дублирование кода  
Принцип единственной ответственности  
Связность  
Внутриклассовая связность  
Функциональная  
Информационная  
Служебная  
Логическая  
Последовательная  
Временная  
Связность методов  
Связанность  
Тестирование  
Автоматизированное тестирование  
Доверие  
Устойчивость к изменениям  
Понимание программы  
Использование JUnit  
Объявление метода теста  
Операторы контроля  
Покрытие кода  
Выводы  
Самостоятельная работа  
В завершение  

Глава 3. Расширяем анализатор банковских операций  
Задача  
Цель  
Требования к расширенному анализатору банковских операций  
Принцип открытости/закрытости  
Создание экземпляра функционального интерфейса  
Лямбда-выражения  
Подводные камни интерфейсов  
Интерфейс-бог  
Слишком мизерный  
Явный API против неявного  
Доменный класс или примитив?  
Множественный экспорт  
Знакомство с доменным объектом  
Объявление и реализация соответствующего интерфейса  
Обработка исключений  
Для чего нужны исключения?  
Шаблоны и антишаблоны для исключений  
Выбор между проверяемыми и непроверяемыми исключениями  
Слишком специфические  
Слишком однообразные  
Шаблон уведомления  
Методика применения исключений  
Не игнорируйте исключение  
Не перехватывайте «общие» исключения  
Документируйте исключения  
Будьте осторожны с исключениями, связанными с конкретной реализацией  
Исключения против управляющего потока  
Альтернативы исключениям  
Использование сборщиков  
Зачем нужны сборщики  
Работа с Maven  
Структура проекта  
Пример сборочного файла  
Команды Maven  
Использование Gradle  
Пример сборочного файла  
Команды Gradle  
Выводы  
Самостоятельная работа  
В завершение  

Глава 4. Система управления документами  
Задача  
Цель  
Требования к системе управления документами  
Воплощение идеи  
Импортеры  
Класс Document  
Атрибуты и иерархия Documents  
Реализация и регистрация импортеров  
Принцип подстановки Дисков  
Альтернативные подходы  
Поместить импортер в класс  
Область действия и инкапсуляция  
Расширение и повторное использование кода  
Гигиена тестов  
Именование тестов  
Поведение, а не реализация  
Не повторяйтесь  
Хорошая диагностика  
Тестирование ошибочных ситуаций  
Константы  
Выводы  
Самостоятельная работа  
В завершение  

Глава 5. Движок бизнес-правил  
Задача  
Цель  
Требования к движку бизнес-правил  
Разработка через тестирование  
Зачем нужен TDD?  
Цикл TDD  
Мокинг  
Добавление условий  
Моделирование состояния  
Вывод типа локальной переменной  
Switch-выражения  
Принцип разделения интерфейса  
Разработка текучего интерфейса (Fluent API)  
Что такое Fluent API?  
Моделирование домена  
Шаблон Builder  
Выводы  
Самостоятельная работа  
В завершение  

Глава 6. Twootr  
Задача  
Цель  
Требования к Twootr  
Обзор разработки  
Технология Pull  
Технология Push  
От событий к разработке  
Связь  
GUI — графический интерфейс пользователя  
Продолжаем  
Гексагональная архитектура  
С чего начать  
Пароли и безопасность  
Подписчики и твуты  
Моделирование ошибок  
Твутинг  
Создание моков  
Верификация при помощи моков  
Библиотеки для мокинга  
SenderEndPoint  
Позиции  
Методы equals и hashcode  
Взаимосвязь между equals и hashCode  
Выводы  
Самостоятельная работа  
В завершение  

Глава 7. Расширение Twootr  
Задача  
Цель  
Резюме  
Живучесть и шаблон «Репозиторий»  
Проектирование репозиториев  
Объекты-запросы  
Функциональное программирование  
Лямбда-выражения  
Ссылки на методы  
Execute Around  
Потоки  
map()  
forEach()  
filter()  
reduce()  
Optional  
Пользовательский интерфейс  
Инверсия зависимости и внедрение зависимости  
Пакеты и сборочные системы  
Ограничения и упрощения  
Выводы  
Самостоятельная работа  
В завершение  

Глава 8. Заключение  
Проектно-ориентированная структура  
Самостоятельная работа  
Сознательная практика  
Следующие шаги и дополнительные ресурсы  
Об авторах  
В завершение  

Предметный указатель

Этот гид позволит вам прокачать свои навыки объектно-ориентированного программирования и ознакомиться с его приемами на примере реальных проектов. Авторы представляют проектно-ориентированный подход к созданию программного обеспечения на Java, используя который можно стать эффективным разработчиком.

Каждая глава книги сконцентрирована на определенном проекте, начинающемся как простое консольное приложение и вырастающем в полноценное приложение.

Если вы знаете основы программирования на Java, то здесь вы изучите современные методы разработки программного обеспечения, которые позволят создавать актуальные, стабильные и поддерживаемые Java-приложения. Если вы недавно закончили университет или курсы программирования и ищете первую работу в сфере Java, то вам обязательно нужно купить эту книгу - она связывает между собой упражнения в программировании и реальную ежедневную работу профессионального инженера-разработчика.


Похожее:

Список отзывов:

  • Предупреждаю сразу: это не книга, которую можно «просто прочитать». Это книга, которую хочется подпортить маркерами, заляпать кофе и оставить на полке с надписью «был тут, прошёл бой».

    Если ты ждал сухого учебника с бесконечными примерами FooBar, то выйди из комнаты и закрой дверь. А если ты — тот самый человек, который учится на ошибках, проектах и "ой, а почему это не компилится?" — тебе сюда.

    Что внутри?

    Вместо того чтобы вдалбливать «SOLID» как мантру, авторы просто садят тебя за стол и говорят: "Давай сделаем анализатор банковских транзакций. С нуля. И не наделаем говнокода."

    И ты вместе с ними рефакторишь свой же код, разбиваешь его на классы, внедряешь интерфейсы, пишешь тесты и в какой-то момент понимаешь:

    "Блин, я же не просто код пишу — я домен моделирую."

    Что не так?

    • Местами — слишком мило. Да, они объясняют, почему null — это зло, но иногда кажется, что ты сидишь на собесе у HR, а не читаешь техдок.
    • Градл и Мавен — это боль. Если ты новичок, то после главы про сборку у тебя будет тоска в глазах и 200 открытых вкладок Stack Overflow.
    • Нет раздела "Как не сдохнуть от burnout". Хотя, может, это и не вина авторов.

    Что по-настоящему круто?

    • Ты не учишься на примерах — ты учишься в примерах.
    • Это как если бы тебя взяли в команду, дали задачку, а потом показывали, как ты сам себе усложнил жизнь — и как это исправить.
    • Ты начинаешь говорить на языке Java.
    • Не "я написал класс", а "я выделил доменный объект, инкапсулировал поведение, вынул стратегию".
    • Это как перейти с уровня "я говорю по-английски, чтобы заказать кофе" на "я могу поспорить с бариста о разнице между flat white и cappuccino".

    Итог?

    Это не книга — это ментор в PDF.

    Она не даст тебе знания "как стать сеньором за 21 день".

    Но покажет, как думать, как разрабатывать, как тестировать — и как не стать тем самым разработчиком, которого боятся код-ревью.

    Если ты готов не читать, а проходить — бери.

    Если хочешь "просто Java подучить" — лучше возьми котика и YouTube.

    P.S.

    После главы про исключения я переписал свой старый проект и убрал 12 try-catch (Exception e).

    Я не стану лучше человеком, но стану чуть меньше ненавидеть себя за legacy.

    ☕️ Оценка: 9 из 10 кружек кофе, пролитых на ноут, пока ты разбираешься, почему тест не проходит.