Ниже – книги, которые вам порекомендует каждый опытный программист (бессмертная универсальная классика).

Автор(ы)

Название

О чем книга

Ссылка

Обложка

Где / кем упомянута

Роберт Мартин

Гибкая разработка программ

Книга о принципах SOLID.

Книга для разработчиков, содержащая актуальные методы разработки ПО. Рассматривается объектно-ориентированное проектирование, UML, паттерны и гибкое программирование. Приводится детальное описание процесса проектирования для программ на C++ и Java.

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

Подходит для разработчиков, программистов и аналитиков.

Labirint

2.4 Принцип персональной ответственности | Курс «Паттерны и практики написания кода» https://www.youtube.com/watch?v=Ni5TPdNMwX8

С. Макконелл

Совершенный код

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

Yandex market

Chitai Gorod

2.3 Закон Деметры, магические числа и другие принципы. | Курс «Паттерны и практики написания кода» https://www.youtube.com/watch?v=RFmCFRyfcnE

Роберт Мартин

Чистый код

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

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

Книга состоит из трех частей. Сначала вы познакомитесь с принципами, паттернами и приемами написания чистого кода. Затем приступите к практическим сценариям с нарастающей сложностью — упражнениям по чистке кода или преобразованию проблемного кода в менее проблемный. И только после этого перейдете к самому важному — концентрированному выражению сути этой книги — набору эвристических правил и «запахов кода». Именно эта база знаний описывает путь мышления в процессе чтения, написания и чистки кода.

Chitai Gorod

1.4 Работа с исключениями в коде

https://youtu.be/zn42cRfWVgU

Мартин Фаулер

Рефакторинг

При надлежащей подготовке квалифицированный проектировщик систем может взять плохо спроектированную программу и превратить ее в хорошо продуманный, надежный код. В книге Мартин Фаулер показывает читателям, где обычно можно найти возможности для оптимизации и как превратить плохой проект в хороший. Каждый шаг рефакторинга прост – даже, казалось бы, слишком прост, чтобы его стоило выполнять. Оптимизация может включать перемещение поля из одного класса в другой или извлечение некоторого кода из метода с тем, чтобы превратить его в отдельный метод, или даже перенос некоторого кода вверх или вниз по иерархии классов. Хотя эти отдельные шаги могут показаться элементарными, кумулятивный эффект таких небольших изменений может радикально улучшить проект программы. Рефакторинг кода — проверенный способ предотвращения распада программного обеспечения. Помимо описания различных методов рефакторинга, автор приводит подробный каталог более чем с семьюдесятью рефакторингами и полезными указаниями, которые научат вас, когда их следует применять. Книга содержит подробное описание свыше 70 методов рефакторинга, причем не только теоретическое их описание, но и практические примеры на языке программирования Java. Следует учесть, что изложенные в книге идеи применимы к любому объектно-ориентированному языку программирования.

Yandex Market

Ozon

2.1 Принцип DRY | Курс «Паттерны и практики написания кода» https://www.youtube.com/watch?v=149Hdpqx3Gc

Вернон Вон

Предметно-ориентированное проектирование. Самое основное

Книга представляет собой краткий справочник по основам DDD. В ней вы найдете ответы на вопросы: “Что собой представляет DDD, какие проблемы он решает, как работает и как быстро приносит результаты?” Этот точный, понятный и практичный справочник не перегружает читателя деталями – он фокусирует внимание только на самой необходимой информации.

Ozon

https://habr.com/ru/companies/dododev/articles/489352/

К. Калман

Применение UML 2.0 и шаблонов проектирования

В книге рассматриваются основные принципы и приемы объектно-ориентированного анализа и проектирования (ООА/П). В ней вы найдете сведения об итеративном и гибком моделировании, шаблонах проектирования, архитектурном анализе и многих других вопросах. Весь материал рассматривается в контексте гибкого подхода к разработке с совместным применением процесса UP и других итеративных методов. В книге рассматривается два реальных примера, позволяющих на практике освоить принципы ООА/П, а также изучить новейшую систему обозначений языка UML 2.

Книга будет хорошим руководством для всех, кто интересуется вопросами ООА/П, языком моделирования UML 2 и современными эволюционными подходами к разработке программного обеспечения.

Labirint

1.9 Введение в GRASP-шаблоны

https://youtu.be/USWry_o3xAA

Эванс Эрик

Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем

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

Yandex Market

Ozon

https://habr.com/ru/companies/dododev/articles/489352/

Фаулер

Аналитические паттерны

От автора:

Моя первая книга, и да, я признаю, что она устарела. Но она все еще является одной из немногих книг, которые пытаются рассмотреть этот вид материала. Она посвящена поиску шаблонов в предметных моделях бизнеса и основана на моей работе по моделированию предметной области, которую я делал (и до сих пор люблю делать) в конце 80-х – начале 90-х годов.

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

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

Сайт автора

1.11 High Cohesion (сильное сцепление)

Видео: https://youtu.be/EvJKNRO9qbw

Б. Макфлин

Объектно-ориентированный анализ и проектирование

Надоело читать книги по объектно-ориентированному анализу и проектированию, которые понятны только специалистам? Возможно, вы слышали, что ООАП помогает писать хорошие программы – программы, которыми будет довольно ваше начальство и заказчики. Но как это сделать?

Книга покажет вам, как организованы анализ, проектирование и написание серьезных объектно-ориентированных программ; программ, которые просты в повторном использовании, сопровождении и расширении; программ, от которых не болит голова; программ, в которые можно добавлять новые возможности, не нарушая работу старых.

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

Labirint

1.11 High Cohesion (сильное сцепление)

https://youtu.be/EvJKNRO9qbw

(!) Если вы хотите качественно подготовиться к собеседованиям на должность веб-разработчика php, рекомендую скачать мою авторскую книгу на эту тему. Здесь разобраны все популярные вопросы и задачи, которые встречаются на собеседованиях. Вопросы/задачи собраны с реальных интервью, пройденных мной на протяжении последних 5+ лет. Все вопросы и задачи подробно разобраны.