Книжная подборка: Паттерны проектирования (6 книг). Паттерны книга


Обзор книги «Паттерны проектирования на платформе .NET» / Хабр

Как известно, недавно была опубликована книга по паттернам проектирования за авторством Сергея Теплякова.

Дабы поддержать мною уважаемого нашего разработчика (сам Сергей, несмотря на переезд заграницу, всё ещё считает себя нашим — за пруфом идите к нему в блог), не пожалел денег и сразу же купил электронную версию. До этого я читал банду четырёх и Design Patterns Head First, поэтому, в принципе, есть с чем сравнить. Книга занимает чуть более 300 страниц, что вполне можно осилить за неделю неторопливого чтения. Книга разбита на 4 части:

  1. Паттерны поведения
  2. Порождающие паттерны
  3. Структурные паттерны
  4. Принципы проектирования
Разбиение паттернов на такие группы уже давно устоялось и прижилось. В отличие от банды четырёх в книге Сергея есть глава, посвящённая SOLID-принципам проектирования (собственно, в книге банды четырёх этих принципов в том виде, в котором мы с ними знакомы и быть не могло, поскольку были сформулированы позже). В книге банды четырёх есть практическая глава, которая иллюстрирует паттерны на примере разработки текстового редактора. На протяжении всего текста в качестве примеров Сергеем используются проблемы, возникающие при разработке приложения по обработке логов (как я понял, тема близкая к тому, чем сейчас занимается Сергей в компании Майкрософт). Отдельной практической главы, как в случае с бандой четырёх нет. В принципе, автору неплохо удаётся разбирать паттерны на таком примере, однако, хотелось бы заметить, что всё даётся слишком легко, то есть, по ходу повествования особых проблем не возникает — всё ложится как по маслу. Скорее всего, так и было задумано при написании, но мне показалось не очень приятным, что нигде нет челленджа (извините, за варваризм). Пример с текстовым редактором выглядит поинтереснее, на мой взгляд. К недостаткам книги я это замечание отнести напрямую, конечно же, не могу.

Эта книга — тот редкий случай, когда я просто взял книгу и прочитал её от начала и до конца. И должен вам сказать, что книга читается очень и даже очень легко. Конечно, разработчик, только начавший своё ознакомление с паттернами, вряд ли сможет так беззаботно прочитать всю книгу, но, думаю, что для новичка всё равно трудно представить книгу более простую для понимания, чем эта. Более глубокому пониманию паттернов способствует стиль и форма изложения, выбранная автором: книга во многом является отражением собственного опыта, а не тупой компиляцией чужих мыслей, и это очень импонирует. Примеры, несмотря на то, что выбранный тип приложения мне не очень понравился, всё равно хороши и со своей задачей справляются. Для не новичков может оказаться интересным сравнить свой опыт с авторским. Зачастую я находил подтверждения своим собственным мыслям, которые мне не с кем было обсудить. Поэтому, лично у меня, в процессе чтения книги постоянно происходил внутренний диалог с автором.

Что касается целевой аудитории книги, то хотелось бы заметить, что хоть в .NET и есть множество собственных плюшек, но таких плюшек, которые оказывали бы огромное влияние на форму паттернов совсем мало. С разбегу могу вспомнить только то, что в .NET можно сделать явную реализацию интерфейса и упростить некоторые паттерны, используя делегаты. Ну и да — нет множественного наследования, что, например, Боб Мартин считает, по сути, косяком команды .NET, поскольку «deadly diamond of death» не настолько страшен, как его малюют, зато множественное наследование в некоторых случаях может оказаться очень полезным (хотя, случается это не сказать, чтобы часто). Поскольку особенностей платформы .NET не так много, то книгу могут читать все кто интересуются паттернами, в независимости от языкаисповедания.

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

В теме, где Сергей анонсировал то, что он пишет книгу, нашлись люди, которые не преминули сказать, что «паттерны — фигня, вот обчитаются люди, а потом делают фабрики фабрик фабрик фабрик с мегафасадами и ещё 100500 паттернов там, где не надо, зачем все эти книги по паттернам, все эти паттерны и так понятны». По моему скромному мнению, большая часть таких людей пишет нечитабельный underengineered говнокод, который потом переписывают по тысяче раз. Это раз. Во-вторых, да, бездумное применение паттернов — плохо и в хорошей книге об этом тоже написано. Программирование это инженерия, а в инженерии нет серебряных пуль и универсальных ответов на все вопросы. Поэтому хорошие программисты всегда взвешивают, что они ставят на кон и что готовы принести на алтарь сложности в целях решения задачи. К сожалению, не бывает книг, которые учат такому искусству (если кто такие видел — поделитесь), ибо достичь понимания того, как соблюсти баланс между сложностью, простотой и мощностью решений можно только с помощью многих лет упорных тренировок на реальных задачах.

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

В книге не рассмотрены следующие классические паттерны: «bridge», «flyweight», «memento», «prototype». Паттерн «prototype» довольно тупой и реализуется через ужасный ICloneable (не даёт понимания того, что это за копия — глубокая или поверхностная), хотя, реализацию, конечно, можно улучшить. Может быть, поэтому этот паттерн был исключён из книги. Остальные паттерны достаточно интересны и я не знаю, почему они были исключены из рассмотрения. В книге также не рассматриваются всякие «составные» паттерны, типа MVC, MVP, MVVM. Вернее, они затрагиваются мимолётом, но автор в них не углубляется, и, думается, это правильно, поскольку каждому из них можно посвятить отдельную книгу.

Одним из немногих моментов, где я не совсем согласен с автором явился момент насчёт выброса недекларированных исключений наследниками, если эти исключения не прописаны в контракте базового класса, или не указаны в XML-комментариях в соответствующем разделе. Указывать возможные исключения, декларировать их в контрактах (я не пользовался контрактами, но по книге понял, что задекларировать возможные типы исключений можно) — не является плохой практикой, но это особо ничего не даёт, кроме ложной уверенности в том, что из вызываемого кода будут лететь только задекларированные исключения. Сколько вы методов видели в BCL, которые лезут, скажем, в файловую систему и декларируют все типы возможных исключений? Правильно, таких методов нет. От концепции проверяемых исключений разработчики .NET отказались изначально. Система обработки ошибок через исключения по-прежнему является большим и жирным геморроем для тех, кто хочет разрабатывать стабильные приложения. Для правильной обработки ошибок через исключения требуется многое: грамотное построение архитектуры, грамотное выделение типов исключений, грамотное написание тестов, контрактов и прочее. Если хотя бы в одной из этих сфер у команды разработчиков есть проблемы, то приложение будет падать с завидной регулярностью, причём зачастую от всяких «безобидных исключений», когда работу можно было бы и продолжить.

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

habr.com

Паттерны проектирования (6 книг) :: NoNaMe

1. Паттерны проектирования2. Приемы объектно-ориентированного проектирования. Паттерны проектирования. 20103. Приемы объектно-ориентированного проектирования. Паттерны проектирования. 20014. Методы и алгоритмы вычислений на строках5. Философия C++. Практическое программирование6. Чистый код. Создание, анализ и рефакторинг

----------------------<cut>----------------------

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

Название: Паттерны проектированияАвтор: Э. Фримен, Э. Фримен, К. Сьерра, Б. Бейтс Год издания: 2011Издательство: ПитерСтраниц: 656Формат: DJVUРазмер: 43.4 Mb

В мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи и находят похожие решения. Если вы не хотите изобретать велосипед, используйте готовые шаблоны (паттерны) проектирования, работе с которыми посвящена эта книга. Паттерны появились, потому что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ. Найденные решения воплощены в краткой и легко применимой на практике форме. Особенностью данного издания является уникальный способ подачи материала, выделяющий серию "Head First" издательства O'Reilly в ряду множества скучных книг, посвященных программированию. Книга будет интересна широкому кругу веб-разработчиков, от начинающих до профессионалов, желающих освоить работу с паттернами проектирования.

Скачать:

Необходимо зарегистрироваться чтобы прочитать текст или скачать файлы

Приемы объектно-ориентированного проектирования. Паттерны проектирования. 2010

Автор: Э. Гамма, Р. Хелм, Р. Джонсон, Дж. ВлиссидесНазвание: Приемы объектно-ориентированного проектирования. Паттерны проектированияИздательство: ПитерГод: 2010Страниц: 366Формат: djvuРазмер: 20.1 MbЯзык: русскийКачество: отличное

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

Скачать:

Необходимо зарегистрироваться чтобы прочитать текст или скачать файлы

Приемы объектно-ориентированного проектирования. Паттерны проектирования. 2001

Автор: Э. Гамма, Р. Хелм, Р. Джонсон, Дж. ВлиссидесНазвание: Приемы объектно-ориентированного проектирования. Паттерны проектированияСерия: Библиотека программистаИздательство: ПитерГод: 2001Страниц: 368Размер: 18.8 Mb

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

Скачать:

Необходимо зарегистрироваться чтобы прочитать текст или скачать файлы

Методы и алгоритмы вычислений на строках

Автор: Билл СмитНазвание: Методы и алгоритмы вычислений на строкахИздательство: И.Д. ВильямсГод: 2006Формат: djvuРазмер: 6 Mb

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

Скачать:

Необходимо зарегистрироваться чтобы прочитать текст или скачать файлы

Философия C++. Практическое программирование

Название: Философия C++. Практическое программирование. Автор: Эккель Б., Эллисон Ч. Серия: Библиотека программиста Год: 2004Издательство: Питер Страниц: 608 Формат: DJVU Размер: 5.1 Mb

Книга отличается от других учебников по C++ новым подходом к изложению материала, основанным на логике и здравом смысле. Вместо простого перечисления языковых конструкций, снабженных примерами, авторы стремятся научить читателя мыслить категориями C++. Они подробно объясняют, почему проектировщики языка принимали то или иное решение, описывают типичные проблемы и пути их решения. Во втором томе рассматриваются такие темы, как обработка исключений, стандартная библиотека C++ (включая потоки ввода/вывода, контейнеры и алгоритмы STL), шаблоны, множественное наследование, RTTI, автоматизация тестирования и отладки программ, паттерны проектирования и т. д.

Скачать:

Необходимо зарегистрироваться чтобы прочитать текст или скачать файлы

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

Автор: Роберт МартинИздательство: ПитерГод издания: 2010Страниц: 464Язык: русскийРазмер: 6.4 MbФормат: DJVU

Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший.Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги — концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.

Скачать:

Необходимо зарегистрироваться чтобы прочитать текст или скачать файлы

Скачать одним архивом (106 Mb):

Необходимо зарегистрироваться чтобы прочитать текст или скачать файлыНеобходимо зарегистрироваться чтобы прочитать текст или скачать файлыНеобходимо зарегистрироваться чтобы прочитать текст или скачать файлы

txapela.ru

Книга Паттерны проектирования - Блог : Персональный сайт Михаила Флёнова

Eugene

Спасибо за рецензию, Миша. Но лично мне классический вариант книги почему-то ближе. Видел многие книги этой серии в магазине, листал их. И ни одной не купил.

Я полностью согласен, что рисунки облегчают восприятие информации и запоминание. Для тех, кому реально трудно вникнуть в изучаемый предмет, такие книги - просто находка. Я думаю, все помнят серию книг &quot;для чайников&quot;? Так вот, по-моему, той серии как раз и не хватало вот именно такого оформления, с кучей рисунков и юмора.

Что касается меня, я всегда смотрю на серию Head First, реально понимаю, что книга стала, как минимум, в 2 раза толще, чем могла бы быть. И просто жалко своего времени. Я гарантированно дочитаю до конца 300 стр. сплошного текста, а вот 600 стр. того же самого текста с картинками могу и забросить на середине :-)

iAlex

Отличная книга, сам купил такую этим летом. По сравнению с другими книгами по патернам, материал изложен намного понятнее.

дизайн студия артеми

слабо миша в программирование ты....не Паттерны программирования,а Паттерны проектирования и не нужно пользоватся чужим кодом,а пусть твоим кодом пользуются.Я его попробовал приминить в проекте,завернул его специально в try catch(...),и проблемы начались серъезные,так что самое интересное код взяли из твоих книжек что бы протестировать.Поучится еще лет так 15 как мы.

Денис

Я всю книгу прочитал, реально, так доходчиво все объясняется! Книга просто супер, жаль только то, что в своей работе пока не могу их применить. Мне эта книга понравилась намного больше, чем знаменитая книга банды четырех - &quot;Приемы объектно-ориентированного проектирования&quot;.

Михаил Фленов

Что касается меня, я всегда смотрю на серию Head First, реально понимаю, что книга стала, как минимум, в 2 раза толще, чем могла бы быть

Согласен, то же самое можно было бы уместить более компактно. Но на мой вкус сухую информацию читать на много скучнее. Это моя вторая книга из серии Head First, которую я читаю, но не смотря на размер книги, она читается очень легко. Все отлично расписано и куча схемок, которые упрощают понимание и просто впитываешь информацию как губка без напряга.

sergeych92

Михаил, а ты книги по программированию на русском языке читаешь?)

Artoo

Такие книги, по моему мнению, полнейший бред. Литература по технологиям должна содержать максимум информации на строку текста. Для серьезного изучения чего-либо эти &quot;комиксы&quot; совершенно не годятся. Может ещё теорию относительности в картинках издать? А господин Фленов просто решил немного заработать денежек на рекламе.

Михаил Фленов

Михаил, а ты книги по программированию на русском языке читаешь?)

Эту читаю на русском. Может ты имеешь ввиду российских авторов? Читаю.

sergeych92

Я просто думал, что все профессиональные программисты стараются читать только на английском. Я вот хочу работать программистом - читаю Страуструпа и Стива МакКонелла в оригинале)

Михаил Фленов

У меня никаких проблем нет с тем, чтобы читать на русском.

urumchic

2Artoo по моему самое главное в литературе по технологиям это доступность материла, лёгкость восприятия и осваивания материала. Так что бы потратить минимум времени на освоение. А не максимум информации на строку текста.

Boris

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

У меня еще по шарпу книга есть в таком духе.

www.flenov.info

Еще одна книга о паттернах? Дайте две! / Хабр

Привет, читатель! Я хочу поговорить с тобой о паттернах проектирования. Знаешь, это такая старая штука, о которой модно было писать в конце прошлого века, и некоторые изверги о них еще иногда спрашивают на собеседованиях. У меня возникла мысль, что пришла пора снова вспомнить о них, но на этот раз рассмотреть их в современных реалиях. А разве есть более подходящий способ это сделать, кроме как взять… и написать об этом книгу?

Почему сейчас и почему о паттернах? За последние 20 лет довольно много чего произошло с современными подходами к разработке. В начале девяностых был бум паттернов, потом пришел черед DI и «программирования в файлах конфигурации», потом начался хайп вокруг DDD, в это же время стремительно начали набирать популярность техники функционального программирования. Сделало ли все это паттерны неактуальными? С моей точки зрения, нет, не сделало!

Хайп вокруг паттернов действительно прошел, и пришло время посмотреть на них с высоты нашего опыта. Для одного паттерны утратили свою актуальность, а для другого синглтон остается нашим всем. В своей книге я хочу взять какой-нибудь паттерн и рассмотреть его со всех возможных сторон: посмотреть, как он выглядит в книге «банды четырех», рассмотреть его «каноническое» современное представление, рассмотреть 3-4 типичные реализации на языке C#, подумать, как он влияет на дизайн приложения, ну и посмотреть на примеры их применения в .NET Framework и в современных приложениях.

Например, если говорить о богомерзком Синглтоне, то я приведу 4 разных реализации на платформе .NET, покажу чем классический Синглтон отличается от паттерна Ambient Context, и покажу «где» и «в каком виде» он применим в современном приложении.

Или возьму фабричный метод и рассмотрю его не только с точки зрения классической реализации, но и отвечу на вопрос, нарушает ли фабричный метод на основе словаря или switch-а принцип Открыт-Закрыт. Потом перейду к Шаблонному Методу и рассмотрю его в контексте проблем наследования и принципов проектирования по контракту, а потом сравню классический Шаблонный Метода со специфической реализацией в C# на основе лямбда-выражений.

Когда я возьму Посетитель, то не только покажу, где и когда он применяется, но и расскажу об известной проблеме программной инженерии под названием expression problem, о типичных подходах к расширяемости в мирах объектно-ориентированного и функционального программирования, о роли паттерна Посетитель в контексте принципа Открыт/Закрыт.

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

Хочется не просто рассказать о паттернах, со скучными каноническими диаграммами классов, некоторые из которых невозможно встретить в реальном коде. Хочется взять ключевые GoF-паттерны и показать, как они эволюционировали, как они обычно реализуются на языке C#, и как сильно они въелись в сам .NET Framework и наши с вами пальцы.

А к чему это я веду? Дело в том, уважаемый Читатель, что мне нужна твоя помощь. Издатель (в лице издательского дома Питер a.k.a ph_piter) готов взяться за эту книгу, но ему нужно мнение сообщества по поводу актуальности ее актуальности (это не очепятка!). Мы-то с вами готовы жертвовать своим временем в ущерб семьи и других интересов, но бизнес следует несколько иным принципам.

Так что, уважаемые камрады (и камрадки), если вам хотелось бы увидеть эту книгу в печатном виде, то отреагируйте как-нить в комментах или другим удобным способом.

З.Ы. Если нужно содержание книги, то я готов его выложить, хотя оно будет мало чем отличаться от содержания классической книги банды четырех, с некоторыми ответвлениями.

З.Ы.Ы. Спасибо ИД Питер a.k.a. ph_piter, что готов взяться вместе со мной за это дело!

habr.com

Фримен Э. и др.. Паттерны проектирования

Фримен Эрик, Фримен Элизабет, Сьерра Кэтти, Бейтс БертПаттерны проектированияВ мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи инаходят похожие решения. Если вы не… — Питер, Head First (O'Reilly) Подробнее...20141305бумажная книга
и другие, , Фримен, Элизабет , Фримен, ЭрикПаттерны проектированияВ мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи инаходят похожие решения. Если вы не… — Питер, (формат: 232.00mm x 202.00mm x 31.00mm, 656 стр.) head first o\'reilly Подробнее...2018983бумажная книга
Эрик Фримен, Элизабет Фримен, Кэтти Сьерра, Берт БейтсПаттерны проектированияВ мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи инаходят похожие решения. Если вы не… — Питер, (формат: 84x108/16, 656 стр.) Head First O'Reilly Подробнее...2016977бумажная книга
Фримен Э. и др.Паттерны проектированияВ мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи инаходят похожие решения. Если вы не… — Питер СПб, (формат: Мягкая глянцевая, 656 стр.) Подробнее...20171045бумажная книга
Фримен Э., Сьерра К., Бейтс Б.Паттерны проектирования.В мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи инаходят похожие решения. Если вы не… — Питер, (формат: Обложка, 656 стр.) Подробнее...2017873бумажная книга
Э. Фримен, Э. Фримен, К. Сьерра, Б. БейтсПаттерны проектирования656 стр. В мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи и находят похожие решения… — ПИТЕР, (формат: Обложка, 656 стр.) Head First (O`Reilly) Подробнее...20111617бумажная книга
Сергей ТепляковПаттерны проектирования на платформе . NETПаттерны проектирования остаются важным инструментом в арсенале разработчика, поскольку они опираются на фундаментальные принципы проектирования. Тем не менее, появление новых конструкций в… — Питер, (формат: 70x100/16, 320 стр.) Подробнее...2016500бумажная книга
Тепляков, Сергей В.Паттерны проектирования на платформе . NETПаттерны проектирования остаются важным инструментом в арсенале разработчика, поскольку они опираются на фундаментальные принципы проектирования. Тем не менее, появление новых конструкций в… — Питер, (формат: 232.00mm x 166.00mm x 15.00mm, 320 стр.) Подробнее...2018631бумажная книга
Сергей ТепляковПаттерны проектирования на платформе . NETПаттерны проектирования остаются важным инструментом в арсенале разработчика, поскольку они опираются на фундаментальные принципы проектирования. Тем не менее, появление новых конструкций в… — Питер, (формат: 232.00mm x 166.00mm x 15.00mm, 320 стр.) электронная книга Подробнее...2015546электронная книга
Тепляков С.Паттерны проектирования на платформе . NETПаттерны проектирования остаются важным инструментом в арсенале разработчика, поскольку они опираются на фундаментальные принципы проектирования. Тем не менее, появление новых конструкций в… — Питер СПб, (формат: Мягкая глянцевая, 320 стр.) Подробнее...2018630бумажная книга
Тепляков СергейПаттерны проектирования на платформе . NETПаттерны проектирования остаются важным инструментом в арсенале разработчика, поскольку они опираются на фундаментальные принципы проектирования. Тем не менее, появление новых конструкций в… — Питер, (формат: Обложка, 656 стр.) Подробнее...2018787бумажная книга
Тепляков С.Паттерны проектирования на платформе . NETПаттерны проектирования остаются важным инструментом в арсенале разработчика, поскольку они опираются на фундаментальные принципы проектирования. Тем не менее, появление новых конструкций в… — Питер, (формат: Обложка, 656 стр.) - Подробнее...2018635бумажная книга
Тепляков СергейПаттерны проектирования на платформе . NETПаттерны проектирования остаются важным инструментом в арсенале разработчика, поскольку они опираются на фундаментальные принципы проектирования. Тем не менее, появление новых конструкций в… — ПИТЕР, (формат: Обложка, 656 стр.) Подробнее...2018383бумажная книга
Э. Гамма, Р. Хелм, Р. Джонсон, Дж. ВлиссидесПриемы объектно-ориентированного проектирования: Паттерны проектированияВ предлагаемой книге описываются простые и изящные решения типичных задач, возникающих в объектно-ориентированном проектировании. Паттерны появились потому, чтомногие разработчики искали пути… — Addison Wesley Longman, Inc., (формат: 70x100/16, 368 стр.) Библиотека программиста Подробнее...2003490бумажная книга
Мурат Йенер, Алекс ФидомJava EE. Паттерны проектирования для профессионаловКнига "Java EE. Паттерны проектирования для профессионалов" - незаменимый ресурс для всех, кто желает более эффективно работать с Java EE, а также единственная книга, в которой рассмотрены как… — Питер, (формат: 70x100/16, 240 стр.) Подробнее...2016456бумажная книга

dic.academic.ru

Погружение в Паттерны Проектирования

Электронная книга о принципах и паттернах проектирования.

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

Книга «Погружение в Паттерны Проектирования» описывает 22 классических паттерна проектирования, а также 8 принципов проектирования, на которых они основаны.

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

Зачем знать паттерны

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

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

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

Для кого написана эта книга?

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

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

Если вы переходите на один из объектных языков программирования (Java, C# или PHP), вам будет просто вникнуть в суть текста благодаря огромному количеству примеров и аналогий из реальной жизни, массе иллюстраций и диаграмм.

Демо-версия Открыть в браузере Скачать PDF

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

Гарантия удовлетворения

Делая покупку, вы ничем не рискуете. Если в течение месяца после покупки вы решите, что книга вам ни к чему, я сразу верну все ваши деньги, не задавая лишних вопросов.

  • Именная копия книги Погружение в Паттерны Проектирования.
  • 402 страницы отборного технического чтива.
  • 225 иллюстраций и диаграмм.
  • Архив с примерами кода.
  • Всё это с 30-дневной гарантией.

Что говорят другие?

Большинство отзывов приходит автору по email в произвольном виде, поэтому они публикуются «как есть», с сохранением оригиального форматирования.

Книгой доволен, читается легче книги от GOF'а.

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

В целом, большое спасибо за качественный материал. И отдельное спасибо, за небольшую цену.

Евгений Стельмашок

Тула, Россия

Все понравилось, прочёл пока только один раз. И не нашёл пока то что можно было улучшить. А так храню в избранном, так сказать как настольную книгу, подсматриваю в неё иногда.

Владислав Карпенко

Москва, Россия

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

Максим Березин

Владимир, Россия

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

refactoring.guru

Паттерны проектирования на платформе .NET / Блог компании Издательский дом «Питер» / Хабр

Привет Хаброжители! У нас вышла новинка — «Паттерны проектирования на платформе .NET»

Цель данной книги — показать, как изменились паттерны проектирования за это время, как на них повлияло современное увлечение функциональным программированием, и объяснить, каким образом они используются в современных .NET-приложениях. В издании вы найдете подробное описание классических паттернов проектирования с особенностями их реализации на платформе .NET, а также примеры их использования в .NET Framework. Вы также изучите принципы проектирования, известные под аббревиатурой SOLID, и научитесь применять их при разработке собственных приложений. Книга предназначена для профессиональных программистов, которые хотят изучить особенности классических принципов и паттернов программирования с примерами на языке C# и понять их роль в разработке современных приложений на платформе .NET.

Об авторе
Сергей Тепляков занимается разработкой программного обеспечения более десяти лет. За это время он прошел путь от младшего разработчика встроенных систем до архитектора одной из ведущих аутсорсинговых компаний Европы, а потом перебрался в подразделение разработки (DevDiv) компании Microsoft. Сергей — автор блога, посвященного программированию, — Programming Stuff, в котором опубликовано несколько сотен статей самой разной тематики. С 2011 года Сергей был обладателем титула Microsoft C# MVP, которого он лишился при переходе в Microsoft в конце 2014 года. Основной интерес автора лежит в области проектирования систем, прагматичного использования принципов и паттернов проектирования, а также совмещения объектно-ориентированного и функционального программирования.

Кому адресована эта книга
Книга предназначена профессиональным разработчикам, которым интересны вопросы проектирования. Наибольшую пользу книга принесет программистам, у которых за плечами несколько лет опыта работы с языком C#, базовые знания об объектно-ориентированном программировании и о паттернах проектирования. Менее опытным разработчикам я бы посоветовал прочитать эту книгу дважды: сейчас и через несколько лет, когда взгляд на разработку изменится под влиянием нового опыта. Процесс познания в целом и изучение вопросов проектирования в частности является итеративным. Практический опыт и набитые шишки позволяют посмотреть на такие «теоретические» и, казалось бы, малоинтересные вопросы, как паттерны, с совершенно иной точки зрения. Опытным разработчикам книга будет полезна в качестве средства обобщения знаний. Классические паттерны здесь рассматриваются со всех возможных точек зрения, так что, вполне возможно, автору удалось показать их с тех сторон, о которых вы не задумывались. В качестве целевой платформы используются .NET Framework и язык C#. Часть материалов довольно сильно завязана на особенности платформы и языка программирования. Если вашим основным языком программирования является C++ или Java, то книга все равно будет полезна, поскольку существенная ее часть посвящена вопросам проектирования, слабо зависящим от языка программирования.

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

Более подробно с книгой можно ознакомиться на сайте издательстваОглавлениеОтрывок

Для хаброжителей скидка 25% по купону — Паттерны проектирования

habr.com