[design-patterns] Шаблоны дизайна - Архитектура Астронавт


5 Answers

«Как вы намеренно используете шаблоны проектирования, не выходя за борт?»

Легко.

  1. Не сочетайте усилия по разработке структуры MVC с шаблонами.

  2. Признайте, что каждая вещь, которую вы делаете, была сделана раньше (кем или кем-то другим).

  3. Когда вы что-то повторяете - что угодно - вы следите за шаблоном.

  4. Когда вы повторяете дизайн для чего угодно - независимо от того, насколько малы - вы следуете шаблону дизайна.

  5. Когда вы замечаете, что повторяете что-то, назначьте имя той вещи, которую вы повторяете. Послушай, ты открыл и назвал свой первый шаблон дизайна. Неважно насколько маленький.

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

  7. Каждая часть обучения, которая включает в себя «повторяющиеся элементы дизайна», - это шаблоны проектирования. Неважно насколько маленький.

Каждый цикл. Каждый оператор if. Каждое диалоговое окно. Каждый файл открыт. Это все шаблоны проектирования.

Большинство из них являются частью языка и имеют явные языковые имена. «IF», ​​«OPEN» и т. Д.

Некоторые шаблоны проектирования больше, чем один оператор, но меньше, чем вся инфраструктура MVC. Это интересные. Изучите их. Купить книгу. Прочтите. MVC не будет отображаться в большинстве книг по шаблонам дизайна, потому что - хорошо - это слишком сложно и слишком сложно применить.

Не начинайте с MVC. Начните с НИЧЕГО еще.

Question

Возможно, мой вопрос похож по природе на этот: вы используете шаблоны дизайна?

Программы, которые я пишу, - это небольшие программы линии 50-75 K, в основном использующие Windows Forms и ASP.NET . Эти программы являются мощным графическим интерфейсом, позволяющим разрабатывать и компоновать различные графики и графику.

Я считаю себя хорошим в ООП и практикуется при балансировании ООП и традиционных процедурных методах для создания поддерживаемого кода.

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

Возьмем шаблон MVC в качестве примера. Если я хочу реализовать этот шаблон с помощью Windows Forms или ASP.NET (Visual Studio 2005), тогда мне нужно написать «Framework», и для написания фреймворков, похоже, будет больше проблем, чем для размера приложения.

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

Кто-нибудь еще испытывает чувство «зодиакального астронавта»?

Как вы собираетесь намеренно использовать шаблоны дизайна, не выходя за борт?




Не забывайте о связи - известные шаблоны дизайна позволяют вам общаться с чем-то сложным всего несколькими словами. Когда вы говорите «и уведомления доставляются с использованием шаблона наблюдателя», все знают, что вы имеете в виду.




ИМХО нужно иметь:

  1. Хорошее понимание плюсов и минусов различных шаблонов дизайна, которые вы могли бы использовать
  2. Ясность в том, что ваше приложение разработано, и убедитесь, что плюсы шаблона используются в ваших интересах.

Возьмем шаблон MVC в качестве примера. Если я хочу реализовать этот шаблон с помощью WinForms или ASP.NET (VS 2005), тогда мне нужно написать «Framework», и для создания фреймворков, похоже, будет больше проблем, чем для размера приложения.

Требуется ли вашему веб-приложению эффективный SEO? Шаблон MVC, реализованный для ASP.NET, может помочь в этом отношении. Возьмите SO URL, например. Они настолько хорошо оптимизированы для поисковых систем, прежде всего потому, что реализация шаблона MVC для ASP.NET поддерживала его и эффективно использовалась в SO design / development.




Для меня это зависит от:

  • Размер приложения,
  • Используемый шаблон проектирования,
  • Время, которое я должен инвестировать авансом в архитектуру.

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




Шаблоны здесь как абстрактные решения общих проблем. Если кто-то знает шаблоны, то они имеют большую вероятность применения известного решения, быстрее и не сидят вокруг мышления: «Господи, интересно, как это сделать».

Что касается фреймворков: если вы работали над командой из более чем одного человека (что не похоже на то, что вы основаны на небольшом размере ваших проектов), рамки могут помочь сделать все так же, как и что важно в групповом стремлении к ремонтопригодности и быстрому подъему новых людей.




MVC сам по себе не требует, чтобы вы писали какую-либо фреймворк. Это просто означает, что вы сохраняете свой вид, контроллер и код модели. Я использую MVC (или MVP) для даже простых мобильных приложений, поскольку я обнаружил, что разделение элемента управления чрезвычайно выгодно при написании тестов (не говоря уже об изменении пользовательских интерфейсов).

Я предполагаю, что сейчас вы не проводите много тестирования на единицу или интеграции, поэтому почти не так очевидно, насколько это разделение помогает качеству и читаемости вашего кода.

Я настоятельно рекомендую вам ознакомиться с освещением Фаулером архитектур UI .






Related