Прекрасная цитата: "Сложность убивает. Она вытягивает жизненные силы из разработчиков, затрудняя планирование, построение и тестирование продуктов."
Заметки:
- Инициализация всегда должна быть отделена от основного кода.
- Не используйте отложенную инициализацию. Это затрудняет в тестировании. И потом, внезапно, в середине кода появляется что-то в стиле if (name == null) name = "Anna".
- Делайте всю инициализацию в main. Тогда в основном приложении вы уже не будете задумываться, что что-то там надо проинициализироваться. Вот этот совет немного не подходит мобильным разработчикам.
- Если надо сделать инициализацию позже, то используйте абстрактную фабрику. Но процесс создания все равно будет лежать в main. Приложение просто управляет моментом, когда надо создать.
- Используйте DI для создания объектов. Тем самым мы способствуем соблюдению принципа единственной ответственности.
- Возможность построить правильную систему с первого раза — миф. Мы всегда сначала реализуем текущие потребности, а потом перерабатываем и расширяем систему.
- Используем самое простое решение из всех возможных.
- Оптимальная архитектура состоит из модульных областей ответственности, каждая из которых реализуется на базе POJO-объектов.
Вообще, почти вся глава была посвящена Java и Spring, поэтому читать её было довольно сложно и не всегда понятно. Выделила только те пункты, которые как-то можно отнести к андроиду.