Собрали список и про Kotlin, и про Java, и про алгоритмы, и про новые инструменты, и популярное чтиво есть. Почитать на новогодние выходные.
«Site Reliability Engineering: How Google Runs Production Systems», Бетси Бейер
Это книга от Google, а значит она доступна бесплатно в онлайн-версии на английском. Почти 600 страниц (в печатной версии), 34 подробных главы…
…и 6 приложений с полезными материалами, вроде приложения с таблицами доступности…
…или с примерами постмортемов.
В целом, книга не о том, как надо делать, а о том, как это сделано в Google. Повторять их путь не обязательно, но что-то почерпнуть, например, в организационной части — можно.
И пусть вас не смущает SRE в названии — книга будет полезна не только DevOps-инженерам, как это казалось бы на первый взгляд.
Абакар Магомедов
Android Tech Lead в приложении Альфа-Мобайл
«Книга не сильно связана с Андроид-разработкой, но в ней можно почерпнуть очень много важных моментов, когда вы хотите делать действительно крупный проект или систему. В книге описаны все виды граблей на которые можно понаступать пока вы создаете и поддерживаете крупную систему»
«Kotlin in Action», Дмитрий Жемеров, Светлана Исакова
Алексей Батурский
Android-разработчик в приложении Альфа-Мобайл
«Kotlin сейчас — стандарт де-факто в разработке мобильных приложений под Андроид, в книге довольно ёмко и лаконично описаны основные фичи языка»
Описано практически всё: от инструментария до документирования, от системы типов до конструирования DSL. Написано коротко, ясно, по существу…
…и с примерами.
«Совершенный код», Стив Макконел
Понять, что «Совершенный код» уже «взрослая» книга можно по обложке — сейчас таких не делают: ведь первое издание русскоязычной версии датируется 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 в приложении Альфа-Мобайл
«Compose сейчас все больше набирает популярность, как инструмент построения UI на Android. В этой книге описано, как он устроен под капотом. Всегда полезно знать, как работает тот инструмент, которым пользуешься в повседневной разработке»
Книга стоит 50 с лишним долларов и есть только на английском. Если это станет препятствием — можно почитать блог Хосе, там тоже достаточно статей о Jetpack Compose. Но глобального понимания, как книга, статьи не дадут.
«Идеальный программист», Роберт Мартин
Абакар Магомедов
Android Tech Lead в приложении Альфа-Мобайл
«Эта книга позволяет понять, что я не первый кто сталкивается с определенным типом проблем в карьере программиста и успокаивает даже снимает синдром самозванца. Если уж такой человек как Роберт Мартин ошибался и спокойно может написать книгу о своих ошибок, то и в моем случае в этом нет ничего критичного. Главное учиться на каждой своей ошибке»
В целом, книга скорее мотивирующая, чем техническая — в формате жизненный историй и уроков.
Прочитав её, сразу становится понятно, какую мораль (в хорошем смысле) от Роберта мы прочтём. Книгу можно читать даже если вы далеки от разработки — советы универсальные (почти все).
«Extreme Programming», Kent Bek
Никита Горбунов
Ведущий Android-разработчик в приложении Альфа-Мобайл
Книгу можно назвать гайдом по созданию ПО. Писал её человек с большим опытом, который успел поучаствовать в большом количестве проектов. Так лучше чем наступать на свои грабли прочитать о чужих»
«С большим опытом» это даже скромно:) Кент Бек — это легенда: один из авторов шаблонов/паттернов проектирования (да, у идеи паттернов есть авторы), автор JUnit, автор книг и подхода экстремального программирования. Это не все достижения, для этого есть отдельная статья у JUG Ru. Но даже этого короткого списка хватит, чтобы записать книгу в список обязательных для чтения.
На этом всё — оставайтесь на связи.
Рекомендуем почитать [подборка редактора блога]:
«А поговорить?»: как сделать голосового помощника в браузере
Подкасты, книги, курс: подборка интересного по Deep Learning
Семантическое версионирование и проблемы с зависимостями — коротко о lockfile
Как мы искали взаимосвязь между оценкой SUS и эмоциональным откликом
Подписывайтесь на Телеграм-канал Alfa Digital — там мы постим новости, опросы, видео с митапов, краткие выжимки из статей, и другие подборки, иногда шутим.
ivanovdev
Не понял, что в названии делает слово "мобильной"
AlfaTeam Автор
Действительно, это же подборка для Android-разработчиков