Разработка программного обеспечения

Э. Гамма Приемы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма Приемы объектно-ориентированного проектирования. Паттерны проектирования / Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес. – СПб.: Питер, 2009. – 366 с.

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

Джейсон Мак-Колм Смит Элементарные шаблоны проектирования Джейсон Мак-Колм Смит Элементарные шаблоны проектирования : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2013. — 304 с.

Книга Мак-Колма более похожа на научный труд, чем на учебник, однако, является достаточно интересной и полезной. В первую очередь рассматриваются элементарные шаблоны – такие, как делегирование, наследование, рекурсия. Затем, показывает как из элементарных шаблонов построить более сложные – при этом шаблоны рассматриваются крайне подробно. Достаточно полезной показалась система обозначений PIN (Pattern Instance Notation), разработанная автором в качестве расширения UML. PIN используется на протяжении всей книги, т.к. позволяет элегантно отображать зависимости между паттернами, не вникая в детали их реализации. В конце приводится описание \(\rho\)-исчисления, являющегося формальной теорией, лежащей в основе шаблонов проектирования. Я рекомендую посмотреть книгу всем программистам, которые этого еще не сделали – будет интересно.

martin-fine-code Мартин Р. Чистый код. Создание, анализ и рефакторинг. Библиотека программиста. – СПб.: Питер, 2014. – 464 с.

Книга посвящена вопросам написания программного кода, который легко поддерживать – обсуждаются не только стили кодирования, форматирования, но и, например, структура хорошего кода, юнит-тестирование, использование исключений. В контексте чистого кода описываются некоторые шаблоны проектирования. Альтернативой можно считать книгу Фаулера (она также посвящена чистому коду), но Роберт Мартин пишет гораздо интереснее. Рекомендую прочитать книгу всем студентам, прошедшим курс объектно-ориентированного программирования.

Тепляков С. В. Паттерны проектирования на платформе .NET Тепляков С. В. Паттерны проектирования на платформе .NET – СПб.: Питер, 2015. – 320 с.

Замечательная книга от разработчика компании Microsoft и известного в узких кругах блогера (до выпуска книги Сергей много писал на тему паттернов проектирования на своем сайте). Не смотря на то, что в названии фигурирует .NET, книга будет полезна всем без исключения разработчикам (в книге Гаммы тоже приводятся примеры на Smalltalk, но это не мешает ей быть классикой). Главы книги можно читать в любом порядке, т.к. они не связаны друг с другом – как и в книге Гаммы разделение по главам осуществляется на основе типов паттернов (паттерны поведения, порождающие паттерны, структурные паттерны), кроме того, есть глава посвященная принципам SOLID. Рассматриваются вопросы unit-тестирования в контексте применения шаблонов проектирования.

Pro_git Чакон Скотт, Страуб Бен Git для профессионального программиста. — СПб.: Питер, 2016. — 496 с.: ил.

В книге автор рассказывает про систему контроля версий “git”, при этом делает это не поверхностно (как многочисленные статьи в интернете), а очень подробно. Главы выстроены таким образом, чтобы читатель сразу мог начать пробовать некоторые команды git, а затем узнавать про различные варианты их использования. Очень помогает читать обилие иллюстраций к примерам. Книга настолько полно описывает git, что после нее по этой теме можно читать только stack overflow (какие-то конкретные вопросы все равно будут возникать), но вы будете уметь работать в команде, использующей git, выбирать оптимальный вариант использования git для своей команды, настраивать git на сервере и т.д.

ooad Буч Градди Объектно-ориентированный анализ и проектирование с примерами приложений, 3-е изд. / Буч Градди, Максимчук Роберт А., Энгл Майкл У., Янг Бобби Дж., Коналлен Джим, Хьюстон Келли А.: Пер с англ. – М.: ООО “И.Д. Вильямс”, 2010. – 720 с.

Классическая книга по программированию от очень авторитетного автора. В книге есть множество интересных и важных для программиста вещей, но они обильно разбавлены рассуждениями на отвлеченные темы и, на мой взгляд, очень неудачными примерами про теплицы. Во второй вам расскажут про общие принципы ООП; в третьей главе – дополнят некоторыми обозначениями UML и интересным разделом про качество классов и объектов; в четвертой – рассматриваются различные подходы к классификации и уточнению абстракций. Пятая глава книги содержит описание 13 видов UML диаграмм, но на мой взгляд Буч выбрал не самые лучшие примеры и недостаточно времени уделил описанию назначения этих диаграмм. Шестая глава содержит описание процесса разработки программного обеспечения, при этом выделяются макропроцесс (жизненный цикл проекта) и микропроцесс (проектирование) – для них описываются стадии с видами деятельности на каждой из них. Седьмая глава завершает изложение очень коротким описанием организационных вопросов. Вторую половину книги составляют примеры приложений (можно посмотреть в каком порядке Буч предлагает их проектировать и какие виды диаграмм использовать).
Все главы кроме пятой очень обзорные – в них нет смысла вчитываться, по этим темам написаны отдельные толстые книги. Например, про качество ПО в нескольких книгах рассуждает Роберт Мартин, а про проектирование ПО (микропроцесс) написал отдельную книгу Розенберг – при этом он использует другой подход (ICONIX). Очень часто долгие рассуждения Буча касаются очевидных вещей и как бы вы не вчитывались – не получится узнать что-то новое, поэтому я считаю, что книгу достаточно бегло просмотреть. Наиболее полезные, на мой взгляд, части книги:

  • описание элементов объектной модели во второй главе;
  • большая часть третьей главы, посвященная основам ООП;
  • описание UML в пятой главе;
  • по диагонали можно прочитать шестую главу и просмотреть несколько примеров из приложения.
iconix Розенберг Д., Скотт К. Применение объектного моделирования с использованием UML и анализ прецедентов.: Пер. с англ. М.: ДМК Пресс, 2002

Книга посвящена разработке программного обеспечения в соответствии с процессом ICONIX, поэтому несмотря на то, что в названии фигурирует UML – рассматриваются всего 4 вида диаграмм (прецедентов, пригодности, последовательности и классов). Диаграмма пригодности не описана во многих других книгах по UML, т.к. в стандарте UML она описана в дополнении. В книге не только описываются сами диаграммы, но и процесс разработки ICONIX, который является итеративным, что оказывает влияние на процесс построения диаграмм. Каждому виду диаграммы посвящена отдельная глава, в конце которой приводится топ 10 ошибок – это тоже очень полезная и интересная часть. Книга в 7 раз тоньше произведения Буча, а полезной информации, на мой взгляд, в ней больше.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вы не робот? *