1. Роберт Мартин. Чистый код. Создание, анализ и рефакторинг
Общепризнанная книга, главная идея которой — код должен быть «чистым», т. е. простым для чтения, понятным и легко поддающимся изменениям. Вот некоторые из тем, которые затрагивает автор в книге: организация кода, обработка ошибок, паттерны проектирования и тестирование. Автор использует примеры реального кода для иллюстрации своей точки зрения и дает конкретные советы по улучшению качества кода.
Книга отлично написана, доступна и советуется к прочтению разработчикам независимо от их профессионального уровня.
2. Эндрю Хант, Дэвид Томас. Программист-прагматик. Путь от подмастерья к мастеру
Очень уважаемая книга, посвященная лучшим практикам по разработке ПО. Основная идея книги — сделать из читателя программиста-прагматика, который решает проблемы клиентов с максимальной пользой для них. Книга содержит множество советов для программистов с различным опытом не только по написанию чистого эффективного кода, но и по всему жизненному циклу продукта, а также по взаимоотношениям с коллегами и клиентами.
Книга хорошо организована и не лишена тонкого профессионального юмора.
3. Адитья Бхаргава. Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих
Популярное введение в алгоритмы и структуры данных. Книга предназначена для тех, кто не знаком с алгоритмами или имеет минимальный опыт. В ней объясняются ключевые алгоритмы и структуры данных, например: алгоритмы сортировок, поиска, алгоритмы работы с графами и т. д. Для наглядности автор использует понятные иллюстрации и примеры. Благодаря этой книге, можно в нескучной манере разобраться с основными алгоритмами и структурами данных и попрактиковаться в оценке сложности алгоритмов.
Книга написана простым, понятным языком и может увлечь даже самого искушенного читателя.
4. Роберт Мартин. Чистая архитектура. Искусство разработки программного обеспечения
Можно сказать, что книга является логичным продолжением книг «Чистый код» и «Идеальный программист». В ней рассказывается о роли архитектуры и проектирования в процессе разработки ПО, а также про паттерны проектирования архитектуры для решения общих проблем, возникающих при разработке ПО. Автор дает множество четких и понятных ответов на ключевые вопросы архитектуры и дизайна. Много внимания уделяется раскрытию и объяснению принципов SOLID.
5. Мартин Фаулер. Рефакторинг. Улучшение проекта существующего кода
Книга о том, как применять рефакторинг, когда и каким образом это делать так, чтобы не навредить проекту. В ней описывается, как определить части кода, требующие рефакторинга, как безопасно и эффективно рефакторить существующий код и как писать тесты, чтобы убедиться, что код работает корректно и после рефакторинга. Эта книга помогает понять, зачем и как стоит бороться с техническим долгом.
6. Майкл Физерс. Эффективная работа с унаследованным кодом
Каждый программист хоть раз сталкивался с legacy-кодом. Особенно это актуально в крупных компаниях, где можно встретить legacy-код, которому много лет и никто не проводил его рефакторинг. Такой код тяжело понять и еще тяжелее — вносить в него изменения спустя большой промежуток времени. Эта книга о том, как наиболее эффективно разбираться с legacy-кодом и менять его. Отдельно в книге подчеркивается важность автотестов, которые необходимы, чтобы при внесении изменений в старый код можно было убедиться в его работоспособности: в книге есть конкретные советы по написанию тестов для legacy-кода. Таким образом, главная цель этой книги — показать, как работать с legacy-кодом и итеративно улучшать его, не ломая существующую логику работы.
7. Эрик Фримен, Элизабет Робсон, Кэти Сьерра, Берт Бейтс. Head first. Паттерны проектирования
В этой книге отличный баланс между сложностью объясняемых концепций и простотой подачи материала. В ней описываются наиболее важные паттерны проектирования, когда и при каких условиях ими лучше воспользоваться, на каких принципах ООП они построены и каким образом их следует применять в проектах. Авторы книги подают материал через игровые задачи, при выполнении которых вы поймете, как применять основные паттерны проектирования и достраивать архитектуру грамотно.
Материалы по теме
- ➕➖ Нужна ли математика программисту?
- 🐍📚 ТОП-15 книг по Python для начинающих и опытных разработчиков в 2023 году
- 📖 ТОП-10 книг об ИТ не только для айтишников
Какую книгу посоветуете начинающему разработчику?