Зачастую тимлиды вырастают из разработчиков какого-то определенного стека, ранее занимавшиеся одним приложением, реже всей системой. Однако, переходя на уровень выше, тимлиды вынуждены работать сразу со всей системой, т.е. с набором приложений, уделять больше внимания системному дизайну, техническому качеству и оперированию продуктом/проектом.
Продолжая серию подборок книг для тимлидов, я не могу не поделиться “технической” подборкой полезной литературы.
#1. ШАБЛОНЫ КОРПОРАТИВНЫХ ПРИЛОЖЕНИЙ Автор: М. Фаулер Ссылка: https://www.litres.ru/book/martin-fauler/shablony-korporativnyh-prilozheniy-48637483/ Коротко: Фаулер - в своем репертуаре. Его описание паттернов, таких как «Repository» и «Unit of Work», до сих пор актуально. Особенно полезна глава про lazy loading и его влияние на производительность.
#2. НЕПРЕРЫВНОЕ РАЗВЕРТЫВАНИЕ ПО: АВТОМАТИЗАЦИЯ ПРОЦЕССОВ СБОРКИ, ТЕСТИРОВАНИЯ И ВНЕДРЕНИЯ НОВЫХ ВЕРСИЙ ПРОГРАММ Автор: Д. Фарли, Дж. Хамбл Ссылка: https://www.litres.ru/book/dzhez-hambl/nepreryvnoe-razvertyvanie-po-avtomatizaciya-processov-sborki-t-48613766/ Коротко: хоть книга больше про процессы, чем про архитектуру, идея автоматизации доставки приложений сильно влияет на архитектурные решения. Особенно запомнилась глава про blue-green деплойменты.
#3. SITE RELIABILITY ENGINEERING. НАДЕЖНОСТЬ И БЕЗОТКАЗНОСТЬ КАК В GOOGLE Автор: Б. Бейер, Кр. Джоунс Ссылка: https://www.litres.ru/book/betsi-beyer-17338311/site-reliability-engineering-nadezhnost-i-bezotkaznos-39123367/ Коротко: глубокий взгляд на то, как Google управляет масштабными системами с высокой надежностью. Книга предлагает практические подходы к балансировке между разработкой новых функций и поддержанием стабильности, включая принцип "ошибки как возможности для обучения" и автоматизацию процессов. Авторы делятся опытом использования SRE для улучшения операционной эффективности, что делает книгу ценным ресурсом и для разработчиков, и для тимлидов.
#4. РЕФАКТОРИНГ. УЛУЧШЕНИЕ СУЩЕСТВУЮЩЕГО КОДА Автор: М. Фаулер Ссылка: https://www.ozon.ru/product/refaktoring-uluchshenie-proekta-sushchestvuyushchego-koda-628030432/ Коротко: ключевая идея книги — постоянное улучшение кода. Особенно понравился раздел про рефакторинг с сохранением функциональности. В своей работе я активно применял эти практики, чтобы избавляться от технического долга.
#5. ПРЕДМЕТНО-ОРИЕНТИРОВАННОЕ ПРОЕКТИРОВАНИЕ (DDD). СТРУКТУРИЗАЦИЯ СЛОЖНЫХ ПРОГРАММНЫХ СИСТЕМ Автор: Э. Эванс Ссылка: https://www.labirint.ru/books/512940/ Коротко: основная книга, которая вам нужна, чтобы понять, где и как размещать новые приложения, и как по приложениям распределять функции для новых бизнес-процессов. Очень полезно, чтобы система оставалась управляемой и динамичной, что не даем вам страдать из-за тысячи страшных связей в будущем.
#8. СОВЕРШЕННЫЙ КОД Автор: Ст. Макконел Ссылка: https://www.ozon.ru/product/sovershennyy-kod-makkonnell-stiv-221777342/ Коротко: казалось, бы книга про код, а надо что-то уровнем выше… Но фокус в том, что код в книге рассматривается с разных сторон, в том числе качества кода, качества продукта, затрагиваются вопросы тестирования и даже характеры программистов. В общем, обязательно к прочтению.
БОНУС: RELEASE IT! ПРОЕКТИРОВАНИЕ И ДИЗАЙН ПО ДЛЯ ТЕХ, КОМУ НЕ ВСЁ РАВНО Автор: М. Нейгард Ссылка: https://www.litres.ru/book/maykl-neygard/release-it-proektirovanie-i-dizayn-po-dlya-teh-komu-ne-vse-r-16901930/ Коротко: автор книги очень хорошо освещает часто забываемую сторону - оперирование. Т.е то, что мы делаем после того, как софт уже вышел в прод: важные для оперирования вопросы, например, вычисление необходимых мощностей для инфраструктуры и так далее. Книга, в некоем роде, уникальна: всем рекомендую к прочтению.