Занурення в ПАТЕРНИ ПРОЕКТУВАННЯ
Патерн проектування — це типовий спосіб вирішення якоїсь часто зустрічаємої проблеми при проектуванні програм. Патерни не є готовими рішеннями, які можна відразу ж скопіювати у свій код. Кожен патерн являє собою узагальнений опис вирішення тієї чи іншої проблеми, який після деякого пристосування можна використовувати у будь-якому проекті.
Книжка «Занурення в Патерни Проектування» описує 22 класичних патерна проектування, а також 8 принципів проектування, на яких вони ґрунтуються.
- Кожен розділ починається з розбору певної проблеми, що виникає під час проектуванні архітектури програм, і крок за кроком підводить читача до вирішення за допомогою одного з патернів.
- Далі йде детальний розбір структури патерна та його варіацій, а також приклад реалізації в коді.
- Згодом читач знайомиться з кейсами використання патерна і вчиться відтворювати патерн покроково.
- Закінчуються глави обговоренням плюсів і мінусів патерна, а також оглядом його зв'язків з іншими патернами.
Навіщо знати патерни
Проходження співбесід. Запитання по патернах присутні майже на кожній співбесіді на позицію програміста. Ці ж питання можна почути від менеджера у відповідь на прохання щодо прибавки до зарплати.
Розширення інструментарію. Патерни дозволяють вам використовувати готові рішення, замість повторного винаходу велосипеда. Крім того, ви робите менше помилок, оскільки використовуєте типові уніфіковані рішення, в яких давно знайдені всі приховані проблеми.
Спілкування з колегами. Вам достатньо назвати ім'я патерна, замість того, щоб годину пояснювати іншим програмістам який крутий дизайн ви придумали і які класи для цього потрібні.
Для кого написана ця книжка?
Якщо ви ніколи не вивчали патернів, для вас призначений цілий розділ, що пояснює базові принципи об'єктного програмування на прикладах з життя. Перед вивченням самих патернів у книжці йдеться про цінності й принципи проектування, на яких ці патерни побудовано.
Якщо ви вивчали патерни дуже давно, але вже все забули, вам буде легко використовувати книжку як довідник, швидко знаходити необхідні секції, без необхідності читати весь текст від початку до кінця.
Якщо ви переходите на одну з об'єктних мов програмування (Java, C#, PHP, Python або TypeScript), вам буде просто зрозуміти суть тексту завдяки величезній кількості прикладів і аналогій з реального життя, купі ілюстрацій та діаграм.
Демо-версія Відкрити в браузері Завантажити PDF
Ви можете самі переконатися в якості книги, переглянувши демо-версію, яка включає в себе зміст, вступний розділ про ООП, три базові принципи проектування та патерн Фабричний метод.

Гарантія задоволення
Купуючи книгу, ви жодним чином не ризикуєте. Якщо протягом місяця після здійснення покупки ви вирішите, що книга вам ні до чого, ми відразу повернемо всі ваші гроші без жодних питань.
Що кажуть інші?
Книгой доволен, читается легче книги от GOF'а.
- Не могу сказать, ничего плохого.
- В простой форме объясняются сложные конструкции.
- Полагаю, что было бы здорово, написать несколько глав по анти-паттернам.
В целом, большое спасибо за качественный материал. И отдельное спасибо, за небольшую цену.
Все понравилось, прочёл пока только один раз. И не нашёл пока то что можно было улучшить. А так храню в избранном, так сказать как настольную книгу, подсматриваю в неё иногда.
Пользуюсь вашим сайтом, а книгу купил чтобы поддержать проект! Все очень нравится. Просто и доходчиво объясняете! Так держать!
На мое удивление книга очень хорошо подходит для разного уровня специалистов, поэтому даже разместили у себя ссылку на ваш сайт в качестве рекомендации.
Отмечу, что очень понравились иллюстрации и способ подачи материала. И от себя выражаю благодарность за то, что популяризируете полезные всем обучающие материалы.
По мне идеальный вариант изложения: коротко, без ненужных рассуждений. Чёткое описание проблемы, способ решения, псевдокод - то, что надо. Иллюстрации тоже сильно помогают. Если мне надо вспомнить зачем нужен тот или иной паттерн, достаточно посмотреть на картинку и все восстанавливается в памяти.
Из пожеланий. Ну, может быть, ещё чуть больше примеров практического применения того или иного паттерны. Без кода. Просто изложение ситуации и её решения с помощью паттерна. Т. е. примеры из "жизни". Для меня, конечно, интереснее из Web разработки.
Книгу читаю. Правда на сайте есть почти все, что и в ней написано, так что мог бы просто на сайте смотреть. По замечаниям - сложно сказать. Иногда вы по 10 раз пишите одно и то же, но это многим (в том числе и мне) нужно для первоначального осознания.
Хотелось бы побольше примеров. Но можно и без реализации. Т.е. смотрите - можно пообщаться с разработчиками из разных отраслей и поспрашивать - где и как они применяют тот или иной паттерн.
Я например Android разработчик и некоторые из ваших паттернов укладываются на часто встречающиеся экраны. Может быть какие-нибудь ссылки на реализации других ребят разместить в качестве примера.
А в целом - книга хороша. Картинки клеевые. Иногда сложно во что-то въехать, но что уж тут поделаешь? Надо долбиться дальше. Перечитывать, пробовать.
Пригодилась бы реализация на котлин. Я собственно с помощью переписывания ваших примеров и язык так изучаю.
Книгою задоволений. Рекомендую друзям. Наразі ще не дочитав, оскільки з'явились більш приоритетні речі які вимагають моєї уваги. Видрукував і віддав для прочитання сину. В найближчих планах купити і опрацювати книгу по рефакторингу.
Не те, щоб я чогось не знаю, швидше подобається подача + просто приємно почитати в вільний час. Якщо маєте час і натхнення написати ще одну книгу і не маєте їдей, мені стала б в нагоді книга по дебагу. З моїм темпом складно знайти час структурувати свій досвід і розказати джунам як це робиться.
Книжка чудова, дуже легко і зрозуміло читається, підкріпленна гарними прикладами. Прочитав на одному диханні.
Зауваження незначні:
- деякі опечатки
- деякі ілюстрації не перекладені українською
- приклади на Swing (було б більш зрозуміло, якщо приклади були б просто на джава коді)
- відсутній паттерн Interpreter
- некоректна робота формату epub2 на android (Play Books).
Але загалом книжка дуже класна!
Начал читать книгу, остался очень доволен. Хорошее и качественные примеры и схемы.
Первые впечатления — положительные, автору стоит писать и дальше. Есть желание купить книгу для товарища. Я так понимаю — единственный вариант — это регистрация под новым аккаунтом.
Я изучал ранее эти шаблоны по книге «Банда четырех». Ваша книга мне понравилась простотой описания, и превосходными аппликациями. Я использую вашу книгу как справочник, для того чтобы освежить знания о том или ином шаблоне или поискать в ней возможно необходимый мне в данный момент шаблон. На счет улучшения книги не могу сказать, так как я даже не думал на эту тему.
Создание такой книги это замечательная работа)
Спасибо за отличный материал! Читаю книгу выборочно, очень нравится подача материала — доступное изложение на нескольких уровнях, интересные примеры, понятные иллюстрации. Невольно сравнивается с "Паттернами Проектирования" Фримена, и подача в Вашей книге кажется более информативной. Удобно не только читать книгу последовательно, но и обращаться к ней как к справочнику.
Планирую использовать собранные Вами материалы для подготовки обучающих материалов, докладов внутри и снаружи своей компании, в контексте применения во фронтенд разработке.
Книжка прекрасна. Особливо якщо взяти до уваги, що написано українською. Власне лише через це в мене виникло бажання придбати. Україномовного контенту на тему програмування вкрай мало.
А щодо побажань, було б непогано мати приклади на JavaScript, але то таке, не критично.
Честно говоря, книжку купил, чтоб задонатить таким образом за труд, вложенный в создание сайта, он мне помог и помогает + мне интересно было посмотреть как изложены SOLID.
Думаю, для новичков было бы круто, если бы примеры были и на шарпе, хотя и так все понятно. Ввиду стабильного инета, вместо книги пользуюсь сайтом как справочником.
Книгу читаю, интересная, не нудная, написана бодро и свежо. Очень хотелось бы увидеть бумажное издание.
Спасибо за книгу. Материал изложен доступно и красиво. Примеры понятны, диаграммы точны, рисунки интересны. Подходит как в качестве справочника, так и в качестве введения в тему. Для меня — и то и другое.
Я работаю разработчиком на с#. Я читал статью в интернете, где было много ссылок на паттерны. Я полез гуглить и попал на ваш сайт, где прочитал про интересующий меня паттерн. У вас очень приятно структурирована информация, но больше всего мне понравился стиль иллюстраций. Есть в них что-то родное)) Как новичку, мне очень понравилось, что паттерны описываются с проблем, которые они решают, а не с описания самого паттерна. После прочтения всего раздела про паттерны на сайте я понял, что хочу купить книгу в благодарность за ваш труд по сбору и структурированию информации.
Замечание есть только к одному разделу - "Отношения с другими паттернами". Не смотря на то, что я прочитал про все паттерны, я до сих пор не понимаю о чем речь в этом разделе. Может туда иллюстраций добавить, или вообще убрать этот раздел и добавить главу про использование объединенных паттернов.
Проект в целом, и книга в частности, производят отличное впечатление. Казалось бы книг написано на эту тему довольно много, но у вас все "по полочкам" и довольно весело) Замечательные иллюстрации, и забавно и запоминать помогают.
Книгу начал читать сразу после покупки, пару - тройку из описанных паттернов уже научился довольно уверенно использовать на практике.
Книгу можно улучшить, издав ее на бумаге, это было бы удобно например для подарка.
Примеры кода мне были бы интересны на PHP и Python, но я так понимаю работа над этим уже ведется.
Спасибо вам за ваши труды, и успехов!
Покупкой доволен полностью, книгу уже прочитал от корки до корки. Как по мне - это самая доступная и удачная книга по паттернам из тех, что я читал. Отдельно порадовало удобство чтения с iPhone. Спасибо за толковую книгу!
— Вы уже начали читать книгу?
Уже прочитал.
— Какие ваши впечатления?
Очень понравилось.
— Что вам понравилось, а что не очень?
Понравилось изложение материала, все очень доступно.
— Есть ли у вас идеи, как можно было бы улучшить книгу?
Мне было бы очень интересно прочитать про concurrency patterns.
Отличная книга, всё разложено по полочкам и изложено понятным языком. Отдельная благодарность за поддержку нескольких форматов и возможность читать книгу в дороге.
Книга понравилась я периодически применяю у себя на работе решения из книги.
Книгой доволен и очень благодарен за ваш труд.
Сразу хочу отметить что книга прекрасно иллюстрирована) Очень хорошо и доступно изложено про SOLID и в частности про принцип Барбары Лисков Для меня новым было про приватные члены базовых классов и то, что вы явным образом отделяете ограничения на предусловия по типам и по значениям атрибутов, так и впрямь яснее.
Странным показалось что книга весит 30мб
Книга отличная. Удачные иллюстрации и примеры. Готовлю теперь на работе доклад по теме Design Patterns.
Что можно добавить: примеры с Anti-Patterns — как не следует делать.
I do really enjoy your book. And would like to buy printed version to have it on my work place.
Все что объясняют на котиках и на пальцах всегда понятно и чем больше аллегорий тем лучше. Книгу еще не дочитал, но первое впечатление хорошее, спасибо!
Подтверждаю, что я купил эту книгу и доволен покупкой, иначе я бы ее не купил :)
На самом деле, мне было надо получить некоторую информацию по самым заезженным паттернам (builder и factory), и, собственно, я получил ее из материалов сайта. Ну а дальше все просто -- мне очень понравилось оформление сайта и его структура, на прочих подобных ресурсах обычно отделываются описанием случайных ~5-ти паттернов, а остальные "coming soon...".
Собственно, ваш сайт ЛУЧШИЙ из всего, что мне попадалось по данной теме, поэтому он однозначно попал в закладки, а PDF-версия легла в offline-библиотеку на планшете. Я хоть и "пират" со стажем, но всегда рад заплатить АДЕКВАТНУЮ цену, за товар который я использую в профессиональной деятельности.
Книгу практически дочитал. Скажу сразу - книга понравилась, примеры из жизни, описание и превдокод - хороши.
Немного досадны грамматически ошибки, но в целом всё отлично.
Материал интересный, единственно немного непривычно учиться на примерах с псевдокодом. Для профи такой подход конечно приемлем. В целом книга вполне оправданно стоит своих денег.
Що я отримую після замовлення?
Електронну книжку в трьох форматах
- Формати: PDF, EPUB, MOBI
- Мови: українська, російська
- Об'єм: 388 сторінок тексту
- Графіка: 225 ілюстрацій та діаграм
- Оновлення та виправлення: безкоштовні
Архіви з прикладами коду
- Java, C#, PHP, Python і TypeScript
- Майбутні безкоштовні оновлення:
- Зима 2019: Swift
- Ще пізніше: інші мови

Написана простою мовою.
Книжка містить мінімум академічного жаргону і мудрування, та максимум життєвих прикладів й ілюстрацій.

Не має прив’язки до конкретної мови програмування.
Приклади коду наведено на псевдокоді, схожому на більшість сучасних об'єктних мов програмування.

Доступна на багатьох пристроях.
Книжка доступна в трьох форматах:
- EPUB найзручніше читати на телефонах і планшетах.
- MOBI підійде для читалок Amazon Kindle.
- PDF можна відкривати на будь-яких інших пристроях.

Завжди під рукою.
Книжку зручно використовувати як довідник. На відміну від звичайної паперової книги, вона має пошук, і її неможливо фізично десь забути. Вона завжди доступна у вашому смартфоні або на робочому комп'ютері.

Зручно читати в транспорті.
Де ще в наш час можна спокійно щось почитати, як не під час тривалих перельотів або щоденних поїздок на метро?

Оптимізована для читання в нічному режимі.
Хороші новини, якщо ви сова! Вся графіка в книжці ідеально виглядає як на світлому, так і на темному фоні (в нічному режимі читалки).
Часті запитання
Хочете дізнатися про щось інше?
Задайте питання на нашому форумі або поштою support@refactoring.guru. Зазвичай, ми відповідаємо протягом декількох годин.