Книги для начинающих разработчиков: от «Чистой архитектуры» до «Паттернов проектирования»

Книги — отличный источник знаний, это верно. Но как определить, где хорошая книга, а где не очень? Лучше всего воспользоваться рекомендательными сервисами либо же посмотреть обзоры на разные книги в сети. Именно поэтому сегодня публикуем подборку хороших изданий, которые в основном пригодятся начинающим разработчикам. Но, вероятно, они будут полезны и более опытным коллегам. Под катом — самое интересное!

71aafe3b7b7094d7814d6f401af153ff.png

Чистый код. Создание, анализ и рефакторинг

Автор: Роберт Мартин

ee4b71b5a353368c52a8f904408edaaa.png

Полезная для многих разработчиков книга, к которой относятся очень по-разному. Кто-то считает её идеальной, а кто-то утверждает, что её не стоит рекомендовать никому. Собственное мнение можно, вероятно, сформировать уже после её прочтения.

Как бы там ни было, основная её идея в том, что код должен быть чистым, а это значит, простым для понимания разработчиком и коллегами, понятным и поддающимся изменениям. Что касается других тем, которые затрагиваются в книге, то это ещё и:

  • организация кода

  • обработка ошибок

  • паттерны проектирования и тестирование

Достоинство книги в том, что она написана хорошим языком, в ней затрагиваются действительно важные темы. Если вы её ещё не читали, рекомендуем ознакомиться, лишней в библиотеке она точно не будет.

Мастер-класс. Совершенный код

Автор: Стив Макконнелл

4631b725c99159d7aa100f8a1497bc31.png

Первое издание книги многие рекомендуют в качестве достойной альтернативы предыдущему изданию. Те, кто прочитал и первую, и вторую книги из подборки, считают, что вторая всё же полезнее. Но и здесь мнения разделяются.

Первое издание «Мастер-класса» вышло в 2008 году. Но не все знают, что есть и второе, которое в РФ появилось в 2017. Книга обновлена с учётом современных тенденций и технологий и дополнена сотнями новых примеров, иллюстрирующих искусство и науку программирования.

Изложенные в книге методики и стратегии помогут разработчику:

  • проектировать с минимальной сложностью и максимальной продуктивностью

  • извлекать выгоду из групповой разработки

  • применять методики защитного программирования, позволяющие избежать ошибок

  • совершенствовать свой код

  • применять методики конструирования, наиболее подходящие для вашего проекта

  • быстро и эффективно производить отладку

  • своевременно и быстро обнаруживать критические проблемы проекта, обеспечивать качество на всех его стадиях

Программист-прагматик. Путь от подмастерья к мастеру

Авторы: Эндрю Хант, Дэвид Томас

29335e36d1ebcc98d0712ae352b7a74c.jpg

Книга, которая ценится многими разработчиками. Её достоинство в том, что она целиком и полностью посвящена лучшим практикам по разработке ПО. Главная идея авторов — помочь читателю стать программистом-прагматиком, который реально оценивает ситуацию. Также такой профессионал решает проблемы клиентов с максимальной для них пользой.

В книге — большое количество советов для разработчиков с различным опытом, включая как создание чистого эффективного кода, так и по жизненному циклу продукта. Также в книге рассказывается о важности налаживания взаимоотношений с коллегами и клиентами.

Это далеко не новая книга, некоторые технические моменты, упоминаемые в ней, устарели. Но вот базовые подходы к разработке, тестированию, взаимодействию внутри команды и с аудиторией продолжают оставаться актуальными и сейчас.

Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих

Автор: Адитья Бхаргава

5e7852709f329f2459f0a08286187fe9.jpg

Хорошая книга, которая помогает читателю войти в мир алгоритмов и структур данных. Она предназначена как раз для тех начинающих разработчиков, кто либо вообще не знаком с алгоритмами, либо знаком, но слабо.

В книге объясняются нюансы алгоритмов и структур данных, включая алгоритмы сортировок, поиска, алгоритмы работы с графами и т. п. Есть также немало иллюстраций и практических примеров, благодаря чему материал усваивается быстро. Для того чтобы получить и практический опыт, нужно выполнять упражнения, большинство которых хорошо продуманы.

Несмотря на то, что тема книги достаточно сложная, она написана понятным и простым языком. Так что у читателя не должно возникнуть сложностей при прочтении этого издания. К слову, в этой книге могут найти что-то полезное для себя и опытные разработчики. Судя по отзывам, она помогла многим специалистам. 

Чистая архитектура. Искусство разработки программного обеспечения

Автор: Роберт Мартин

d1f8252dfa58efd815de2cfed4c1cfc0.jpg

Ещё одна книга Р. Мартина, которую можно назвать продолжением «Чистого кода». Автор в этом издании рассказывает о роли архитектуры и проектирования в процессе разработки ПО. Кроме того, он также раскрывает нюансы паттернов проектирования архитектуры для решения общих проблем, которые возникают при разработке ПО.

Также есть ответы на часто возникающие у новичков вопросы об архитектуре и дизайне ПО, подробно рассказывается о принципах SOLID. Есть как теория, так и примеры, которые показываются по ходу изложения, помогая лучше понимать прочитанное.

Книга рекомендуется начинающим разработчикам, хотя она может пригодиться и их более опытным коллегам. Крайне полезной она будет для системных аналитиков, архитекторов и вообще разработчиков, которые хотят повысить свой профессиональный уровень.

Достоинство книги в том, что изложение простое, оно не перегружено специнформацией, нет и сложных примеров, доступных лишь избранным. К слову, книгу советуют не только разработчики для разработчиков, она может быть полезна всем, кто взаимодействует с группами разработки, для понимания происходящих процессов.

Эффективная работа с унаследованным кодом

Автор: Майкл Физерс

50e05aee1b78fefbcb9f112070a988cf.jpg

Эта книга посвящена принципам работы с legacy-кодом, которого особенно много в крупных компаниях. С ним чаще всего возникают проблемы, и чем больше времени проходит, тем серьёзнее эти проблемы становятся. В книге рассказывается о том, как относительно быстро и эффективно разобраться с legacy и поменять его.

В частности, автор рассказывает о важности автотестов, которые в этом случае применяются для того, чтобы убедиться в работоспособности уже изменённого кода. Солидная часть книги посвящена как раз советам по написанию тестов для legacy-кода.

В книге, кроме прочих, рассматриваются такие вопросы:

  • представление о механизмах внесения изменений в программное обеспечение, включая ввод новых свойств, устранение программных ошибок, улучшение структуры кода, оптимизацию производительности

  • перенос унаследованного кода в средства тестирования

  • написание тестов, препятствующих внесению новых ошибок в код

  • применение методов, подходящих для любого языка или платформы, с примерами кода на Java, C++, C и C#

  • точное выявление мест в коде, где требуется внести изменения

  • работа с унаследованным кодом, который не является объектно ориентированным

  • обращение с приложениями, у которых, на первый взгляд, нет вообще никакой структуры

Head first. Паттерны проектирования

Авторы: Эрик Фримен, Элизабет Робсон, Кэти Сьерра, Берт Бейтс

a5c7a63783833a081927aa568edefbc1.jpg

В книге сложные вещи рассказываются относительно простым языком. В частности, в ней говорится о наиболее важных паттернах проектирования. О том, когда и при каких условиях ими лучше воспользоваться, а также на каких принципах ООП они построены, где и как их нужно применять.

Материал подаётся в виде игровых задач. Выполняя их, читатель постепенно приходит к пониманию, как применять основные паттерны проектирования и достраивать архитектуру грамотно.

На этом пока всё. Но если у вас есть книга, которую вы можете порекомендовать разработчикам, расскажите о ней в комментариях, пожалуйста. Всем нам будет крайне интересно узнать что-то новое.

© Habrahabr.ru