background preloader

DDD и патерны

Facebook Twitter

[DesignPatterns] 01. Стратегия. Что такое анти-паттерны? Анти-паттерны — полная противоположность паттернам.

Что такое анти-паттерны?

Если паттерны проектирования — это примеры практик хорошего программирования, то есть шаблоны решения определённых задач. То анти-паттерны — их полная противоположность, это — шаблоны ошибок, которые совершаются при решении различных задач. Частью практик хорошего программирования является именно избежание анти-паттернов. Не надо думать, что это такая непонятная теоретическая фигня — это конкретные проблемы, с которыми сталкивался практически каждый разработчик. Кто осведомлен, тот и вооружён! Программирование копи-пастом (Copy and Paste Programming) Данный анти-паттерн является, наверное, самым древним в программировании. «Брось, можно писать не только одну функцию!»

Спагетти-код — слабо структурированная и плохо спроектированная система, запутанная и очень сложная для понимания. Золотой молоток (Golden hammer) Золотой молоток — уверенность в полной универсальности любого решения. «Что за 42?» «Что значит d:\proj\tests.dat?» Шпаргалка по шаблонам проектирования. 25 января 2014 в 21:07 Перевод pdf файла с сайта с описанием 23-х шаблонов проектирования GOF.

Шпаргалка по шаблонам проектирования

Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи. Под катом — много картинок. Условные обозначения Отношения между классами — агрегация (aggregation) — описывает связь «часть»–«целое», в котором «часть» может существовать отдельно от «целого». Виды паттернов. Паттерны проектирования. Что такое анти-паттерны? Паттерны проектирования: Состояние (State) Состояние (State) — это поведенческий шаблон проектирования, который позволяет объекту изменять своё поведения, в зависимости от внутреннего состояния.

Паттерны проектирования: Состояние (State)

Простейшая схема работы паттерна: Данный паттерн состоит из 3 блоков: Класс, который будет менять своё поведение в зависимости от состояния. Интерфейс, который должен реализовать каждое из конкретных состояний. Классы конкретных состояний. Представим, что мы пишем программу для принтера, которая должна распечатывать документ, посланный на печать. Интерфейс IState будет иметь следующий вид. Учимся проектировать на основе предметной области (DDD: Domain Driven Design) 1.

Учимся проектировать на основе предметной области (DDD: Domain Driven Design)

Введение В данной статье я хотел бы рассказать об этих трёх буквах, постоянно находящихся на слуху, но для многих являющихся тайной за семью печатями, а так же привести ряд ресурсов, с которыми неплохо было бы познакомиться при желании продолжить развитие в проектировании на основе предметной области (DDD: Domain Driven Design). 2. Так почему же DDD? Есть несколько шаблонов реализации предметной области (Domain Logic) или бизнес-логики (Business Logic): 1) Table Module – представляет собой объект, в единственном экземпляре, обрабатывающий бизнес логику для всех записей в таблице базы данных, либо представления. 2) Transaction Script – организует взаимодействие с бизнес-логикой посредствам процедур, принимающих запросы с уровня представления. 3) Domain Model – непосредственно, объектная модель предметной области, включающая в себя как поведение, так и данные.

Эти шаблоны описаны более подробно Мартином Фаулером, в его книге “Архитектура корпоративных программных приложений. Evans E. - Domain-Driven Design. Tackling Complexity in the Heart of Software [2003, PDF, ENG] Эванс Э. - Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем [2010, DjVu/PDF, RUS] 7 "must read" книг по программированию. У каждого специалиста в своей области есть подборка литературы, которая помогла ему развиться.

7 "must read" книг по программированию

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

На самом деле, хороших книг много, и выбрать, что лучше, бывает сложно. Итак, давайте приступим. 1. Автор: Дональд Э.Кнут Must Read! Заказать «Искусство программирования» на OzonСкачать 1-3 том «Искусство программирования» 2. Авторы: Э. Книга-справочник по шаблонам проектирования, содержит примеры использования. 3. .NET Domain-Driven Design with C#: Problem – Design – Solution / Компьютерные видео уроки и книги. 7 "must read" книг по программированию. State .NET Design Pattern in C# and VB - dofactory.com. Definition Allow an object to alter its behavior when its internal state changes.

State .NET Design Pattern in C# and VB - dofactory.com

The object will appear to change its class. Frequency of use: Medium The classes and objects participating in this pattern are: Context (Account) defines the interface of interest to clients maintains an instance of a ConcreteState subclass that defines the current state. Structural code in C# This structural code demonstrates the State pattern which allows an object to behave differently depending on its internal state. Output. Strategy .NET Design Pattern in C# and VB - dofactory.com. Definition Define a family of algorithms, encapsulate each one, and make them interchangeable.

Strategy .NET Design Pattern in C# and VB - dofactory.com

Strategy lets the algorithm vary independently from clients that use it. Frequency of use: Medium high The classes and objects participating in this pattern are: Strategy (SortStrategy) declares an interface common to all supported algorithms. Structural code in C#