«Site Reliability Engineering: How Google Runs Production Systems», Бетси Бейер
Это книга от Google, а значит она доступна бесплатно в онлайн-версии на английском. Почти 600 страниц (в печатной версии), 34 подробных главы…
…и 6 приложений с полезными материалами, вроде приложения с таблицами доступности…
…или с примерами постмортемов.
В целом, книга не о том, как надо делать, а о том, как это сделано в Google. Повторять их путь не обязательно, но что-то почерпнуть, например, в организационной части — можно.
И пусть вас не смущает SRE в названии — книга будет полезна не только DevOps-инженерам, как это казалось бы на первый взгляд.
Абакар Магомедов
Android Tech Lead в приложении Альфа-Мобайл«Книга не сильно связана с Андроид-разработкой, но в ней можно почерпнуть очень много важных моментов, когда вы хотите делать действительно крупный проект или систему. В книге описаны все виды граблей на которые можно понаступать пока вы создаете и поддерживаете крупную систему»
«Kotlin in Action», Дмитрий Жемеров, Светлана Исакова
Алексей Батурский
Android-разработчик в приложении Альфа-МобайлОписано практически всё: от инструментария до документирования, от системы типов до конструирования DSL. Написано коротко, ясно, по существу…«Kotlin сейчас — стандарт де-факто в разработке мобильных приложений под Андроид, в книге довольно ёмко и лаконично описаны основные фичи языка»
…и с примерами.
«Совершенный код», Стив Макконел
Понять, что «Совершенный код» уже «взрослая» книга можно по обложке — сейчас таких не делают: ведь первое издание русскоязычной версии датируется 2005 годом, а англоязычную выпустили ещё в прошлом веке.
Но возраст здесь не помеха — принципы актуальны до сих пор, с учётом того, что есть довольно свежие версии с обновлениями.
Абакар Магомедов
Android Tech Lead в приложении Альфа-МобайлНо есть одно «Но». Автор очень любит писать — почти 900 страниц, как никак. Вот типичный абзац.«Отличная книга о том, почему чистота кода это важно и как её поддерживать. В книге большое количество примеров, что делает её чтение ещё интереснее»
И, кажется, Стив понимает, что пишет очень много«На уровне архитектуры ПО сложность проблемы можно снизить, разделив систему на подсистемы. Несколько несложных фрагментов информации понять проще, чем один сложный. В разбиении сложной проблемы на простые фрагменты и заключается цель всех методик проектирования ПО. Чем более независимы подсистемы, тем безопаснее сосредоточиться на одном аспекте сложности в конкретный момент времени. Грамотно определенные объекты разделяют аспекты проблемы так, чтобы вы могли решать их по очереди. Пакеты обеспечивают такое же преимущество на более высоком уровне агрегации. Стремление к краткости методов программы помогает снизить нагрузку на интеллект. Этому же способствует написание программы в терминах проблемной области, а не низкоуровневых деталей реализации, а также работа на самом высоком уровне абстракции»
«Совершенный код», Стив Макконел
Лаконичности предыдущей книги «Совершенному коду» не хватает
«Совершенный алгоритм. Основы», Тим Рафгарден
Абакар Магомедов
Android Tech Lead в приложении Альфа-Мобайл«Интересность» книги возникла не просто так. Ведь она основана на курсах по алгоритмам на Coursera, которые Рафгарден, в свою очередь, основал на лекциях, которые он же читал в Стэнфордском университете. Книга — это двойная производная от лекций, так сказать.«Очень интересная книга по алгоритмам. Автор описывает базовые термины как на научном, так и на простом языке. Причём даёт сразу две формулировки, чтобы сложилось более глубокое понимание предмета»
Шесть глав, 258 страниц, алгоритмы, и ничего лишнего.
«Effective Java, 3rd Edition», Joshua Bloch
— Так, а зачем здесь Java? Все новые приложения уже пишут на Kotlin!
Алексей Батурский
Android-разработчик в приложении Альфа-МобайлКак пишут в отзывах, вы «точно поймёте, как используется та или иная функция»«Всё верно, но проекты с легаси, написанным на Java никто не отменял. А ещё сами исходники Android SDK на Java, а залезать в них во время работы придётся»
Раз уж речь зашла о Java, то следующая рекомендация…
«Java Concurrency in Practice», Brian Goetz
Алексей Батурский
Android-разработчик в приложении Альфа-МобайлМногопоточность сложная вещь. Не то, чтобы правильно реализовать — трудно объяснить. Но здесь автор применяет хитрую уловку — показывает как не надо делать, прежде чем рассказать как надо.«В современных мобильных приложениях довольно много асинхронной работы. Конечно, она уже закрыта за большим количеством абстракций (kotlin coroutines, rxjava2, HandlerThread) — но не лишним будет узнать, как всё это работает на более низком уровне. В книге приводится довольно много фундаментальных проблем связанных с многопоточностью и работой с памятью. Сложное, но интересное чтиво»
«Jetpack Compose Internals», Jorge Castillo
Абакар Магомедов
Android Tech Lead в приложении Альфа-МобайлКнига стоит 50 с лишним долларов и есть только на английском. Если это станет препятствием — можно почитать блог Хосе, там тоже достаточно статей о Jetpack Compose. Но глобального понимания, как книга, статьи не дадут.«Compose сейчас все больше набирает популярность, как инструмент построения UI на Android. В этой книге описано, как он устроен под капотом. Всегда полезно знать, как работает тот инструмент, которым пользуешься в повседневной разработке»
«Идеальный программист», Роберт Мартин
Абакар Магомедов
Android Tech Lead в приложении Альфа-МобайлВ целом, книга скорее мотивирующая, чем техническая — в формате жизненный историй и уроков.«Эта книга позволяет понять, что я не первый кто сталкивается с определенным типом проблем в карьере программиста и успокаивает даже снимает синдром самозванца. Если уж такой человек как Роберт Мартин ошибался и спокойно может написать книгу о своих ошибок, то и в моем случае в этом нет ничего критичного. Главное учиться на каждой своей ошибке»
Прочитав её, сразу становится понятно, какую мораль (в хорошем смысле) от Роберта мы прочтём. Книгу можно читать даже если вы далеки от разработки — советы универсальные (почти все).
«Extreme Programming», Kent Bek
Никита Горбунов
Ведущий Android-разработчик в приложении Альфа-Мобайл«С большим опытом» это даже скромно Кент Бек — это легенда: один из авторов шаблонов/паттернов проектирования (да, у идеи паттернов есть авторы), автор JUnit, автор книг и подхода экстремального программирования. Это не все достижения, для этого есть отдельная статья у JUG Ru. Но даже этого короткого списка хватит, чтобы записать книгу в список обязательных для чтения.Книгу можно назвать гайдом по созданию ПО. Писал её человек с большим опытом, который успел поучаствовать в большом количестве проектов. Так лучше чем наступать на свои грабли прочитать о чужих»
Подборка материалов для Android-разработчиков
Собрали список и про Kotlin, и про Java, и про алгоритмы, и про новые инструменты, и популярное чтиво есть. Почитать на новогодние выходные. «Site Reliability Engineering: How Google Runs Production...
habr.com