Книги — отличный источник знаний, это верно. Но как определить, где хорошая книга, а где не очень? Лучше всего воспользоваться рекомендательными сервисами либо же посмотреть обзоры на разные книги в сети. Именно поэтому сегодня публикуем подборку хороших изданий, которые в основном пригодятся начинающим разработчикам. Но, вероятно, они будут полезны и более опытным коллегам. Под катом — самое интересное!
Чистый код. Создание, анализ и рефакторинг
Автор: Роберт Мартин
Полезная для многих разработчиков книга, к которой относятся очень по-разному. Кто-то считает её идеальной, а кто-то утверждает, что её не стоит рекомендовать никому. Собственное мнение можно, вероятно, сформировать уже после её прочтения.
Как бы там ни было, основная её идея в том, что код должен быть чистым, а это значит, простым для понимания разработчиком и коллегами, понятным и поддающимся изменениям. Что касается других тем, которые затрагиваются в книге, то это ещё и:
организация кода
обработка ошибок
паттерны проектирования и тестирование
Достоинство книги в том, что она написана хорошим языком, в ней затрагиваются действительно важные темы. Если вы её ещё не читали, рекомендуем ознакомиться, лишней в библиотеке она точно не будет.
Мастер-класс. Совершенный код
Автор: Стив Макконнелл
Первое издание книги многие рекомендуют в качестве достойной альтернативы предыдущему изданию. Те, кто прочитал и первую, и вторую книги из подборки, считают, что вторая всё же полезнее. Но и здесь мнения разделяются.
Первое издание «Мастер-класса» вышло в 2008 году. Но не все знают, что есть и второе, которое в РФ появилось в 2017. Книга обновлена с учётом современных тенденций и технологий и дополнена сотнями новых примеров, иллюстрирующих искусство и науку программирования.
Изложенные в книге методики и стратегии помогут разработчику:
проектировать с минимальной сложностью и максимальной продуктивностью
извлекать выгоду из групповой разработки
применять методики защитного программирования, позволяющие избежать ошибок
совершенствовать свой код
применять методики конструирования, наиболее подходящие для вашего проекта
быстро и эффективно производить отладку
своевременно и быстро обнаруживать критические проблемы проекта, обеспечивать качество на всех его стадиях
Программист-прагматик. Путь от подмастерья к мастеру
Авторы: Эндрю Хант, Дэвид Томас
Книга, которая ценится многими разработчиками. Её достоинство в том, что она целиком и полностью посвящена лучшим практикам по разработке ПО. Главная идея авторов — помочь читателю стать программистом-прагматиком, который реально оценивает ситуацию. Также такой профессионал решает проблемы клиентов с максимальной для них пользой.
В книге — большое количество советов для разработчиков с различным опытом, включая как создание чистого эффективного кода, так и по жизненному циклу продукта. Также в книге рассказывается о важности налаживания взаимоотношений с коллегами и клиентами.
Это далеко не новая книга, некоторые технические моменты, упоминаемые в ней, устарели. Но вот базовые подходы к разработке, тестированию, взаимодействию внутри команды и с аудиторией продолжают оставаться актуальными и сейчас.
Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих
Автор: Адитья Бхаргава
Хорошая книга, которая помогает читателю войти в мир алгоритмов и структур данных. Она предназначена как раз для тех начинающих разработчиков, кто либо вообще не знаком с алгоритмами, либо знаком, но слабо.
В книге объясняются нюансы алгоритмов и структур данных, включая алгоритмы сортировок, поиска, алгоритмы работы с графами и т. п. Есть также немало иллюстраций и практических примеров, благодаря чему материал усваивается быстро. Для того чтобы получить и практический опыт, нужно выполнять упражнения, большинство которых хорошо продуманы.
Несмотря на то, что тема книги достаточно сложная, она написана понятным и простым языком. Так что у читателя не должно возникнуть сложностей при прочтении этого издания. К слову, в этой книге могут найти что-то полезное для себя и опытные разработчики. Судя по отзывам, она помогла многим специалистам.
Чистая архитектура. Искусство разработки программного обеспечения
Автор: Роберт Мартин
Ещё одна книга Р. Мартина, которую можно назвать продолжением «Чистого кода». Автор в этом издании рассказывает о роли архитектуры и проектирования в процессе разработки ПО. Кроме того, он также раскрывает нюансы паттернов проектирования архитектуры для решения общих проблем, которые возникают при разработке ПО.
Также есть ответы на часто возникающие у новичков вопросы об архитектуре и дизайне ПО, подробно рассказывается о принципах SOLID. Есть как теория, так и примеры, которые показываются по ходу изложения, помогая лучше понимать прочитанное.
Книга рекомендуется начинающим разработчикам, хотя она может пригодиться и их более опытным коллегам. Крайне полезной она будет для системных аналитиков, архитекторов и вообще разработчиков, которые хотят повысить свой профессиональный уровень.
Достоинство книги в том, что изложение простое, оно не перегружено специнформацией, нет и сложных примеров, доступных лишь избранным. К слову, книгу советуют не только разработчики для разработчиков, она может быть полезна всем, кто взаимодействует с группами разработки, для понимания происходящих процессов.
Эффективная работа с унаследованным кодом
Автор: Майкл Физерс
Эта книга посвящена принципам работы с legacy-кодом, которого особенно много в крупных компаниях. С ним чаще всего возникают проблемы, и чем больше времени проходит, тем серьёзнее эти проблемы становятся. В книге рассказывается о том, как относительно быстро и эффективно разобраться с legacy и поменять его.
В частности, автор рассказывает о важности автотестов, которые в этом случае применяются для того, чтобы убедиться в работоспособности уже изменённого кода. Солидная часть книги посвящена как раз советам по написанию тестов для legacy-кода.
В книге, кроме прочих, рассматриваются такие вопросы:
представление о механизмах внесения изменений в программное обеспечение, включая ввод новых свойств, устранение программных ошибок, улучшение структуры кода, оптимизацию производительности
перенос унаследованного кода в средства тестирования
написание тестов, препятствующих внесению новых ошибок в код
применение методов, подходящих для любого языка или платформы, с примерами кода на Java, C++, C и C#
точное выявление мест в коде, где требуется внести изменения
работа с унаследованным кодом, который не является объектно ориентированным
обращение с приложениями, у которых, на первый взгляд, нет вообще никакой структуры
Head first. Паттерны проектирования
Авторы: Эрик Фримен, Элизабет Робсон, Кэти Сьерра, Берт Бейтс
В книге сложные вещи рассказываются относительно простым языком. В частности, в ней говорится о наиболее важных паттернах проектирования. О том, когда и при каких условиях ими лучше воспользоваться, а также на каких принципах ООП они построены, где и как их нужно применять.
Материал подаётся в виде игровых задач. Выполняя их, читатель постепенно приходит к пониманию, как применять основные паттерны проектирования и достраивать архитектуру грамотно.
На этом пока всё. Но если у вас есть книга, которую вы можете порекомендовать разработчикам, расскажите о ней в комментариях, пожалуйста. Всем нам будет крайне интересно узнать что-то новое.