Этот современный подход к легендарной книге шаблонов дизайна GOF от Уэса Дойла представляет собой набор видеороликов на YouTube с использованием языка C# с новым, кулинарным, поворотом.
Книга «Банда четырех шаблонов проектирования», впервые опубликованная в 1994 году, может быть по-прежнему актуальна в том, что касается основных концепций, но примеры и языки, используемые в книге, приложения Smaltalk/C++ и GUI, тем не менее, несколько устарели.
Конечно, в то время веб-разработка на самом деле еще не началась, поскольку такие примеры отражали приложения отрасли того времени.С тех пор все радикально изменилось,и хотя основные концепции, такие как программирование через интерфейс или предпочтение композиции перед наследованием, все еще резонируют, более масштабные картины необходимы для того, чтобы соответствовать текущим требованиям.Например,для включения внешних зависимостей, таких как базы данных и очереди AMQP, или служб для таких вещей, как API электронной почты и HTTP.
Таким образом,появился курс «Шаблоны проектирования, объясненные с помощью еды», масштабное начинание разработчика Уэса Дойла, который не только выпустил репо Github, объединяющее код и примеры, но и записал полностью развернутый видеоряд, который щедро доступен на YouTube бесплатно и для всех желающих.
В этом видео Дойл объясняет, почему он взялся за этот проект:
Как и в книге, Дойл разбивает шаблоны проектирования на три основные категории:
Шаблоны создания, которые связаны с тем, как мы создаем новые объекты для работы
Структурные шаблоны, которые связаны с тем, как мы составляем объекты вместе, чтобы создать типы структур, которые могут быть легко изменены и решить проблемы с течением времени
Поведенческие паттерны, которые связаны с тем, как объекты, которые мы создаем, сотрудничают
И где еда вписывается в картину? Это примеры из реального мира, которые касаются пищевого бизнеса. Например, создание индивидуального планировщика еды, системы заказов на покупку пекарни, службы доставки еды и так далее. И, конечно, вы не можете стать более современным, чем такой язык программирования, как C#.
Обратите внимание, что список воспроизведения Youtube все еще находится в стадии разработки, так как на момент написания статьи были доступны видеоролики о фабричном методе, построителе, одноэлементных и абстрактных фабричных шаблонах.Однако в репозитории GitHub вы найдете все примеры кода. Существует три каталога BehavioralPatterns, CreationalPatterns и StructuralPatterns, в которых размещается код для шаблонов, а также каталог ExamplePrograms с реальными программами, которые извлекают свои зависимости из каталогов шаблонов. Есть еще одна папка, RealisticDependencies, которая издевается над несколькими службами, такими как электронная почта, Очередь и база данных.
Подводя итог, можно сказать, что это лучшее из обоих миров; великие и вневременные концепции, но с современной точки зрения.