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

16

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

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

Какие шаблоны проектирования наиболее важны для написания приложений AWESOME .NET?

Под потрясающим я имею в виду и внутри!

Даниэль Аптон
источник
Ни один не имеет решающего значения.
kirk.burleson

Ответы:

22

Первое: хорошо знайте свои основные инструменты

  1. Знать модель событий ASP.Net. Вы попадете в беспорядок, если вы этого не сделаете.

  2. Понять механику ОО. Удивительное число относительно опытных программистов .Net все еще думает, что это 1972 год.

  3. Начните читать код завершения.

Второе: научиться разделять проблемы

Наиболее распространенное преступление дизайна, которое я вижу в разработке ASP.Net, - это вставить всю бизнес-логику в код. Я знаю, что все примеры Microsoft делают это таким образом. Я знаю, что это оправдано на небольших приложениях. И я знаю, что иногда так и делаю. Но на самом деле, это плохой дизайн, и моя любимая ненависть за неделю.

Третье: узнать все остальное о дизайне

Большая часть некачественного кода .Net, который я вижу, является результатом плохого дизайна ОО. Поэтому я бы порекомендовал хорошее понимание:

  • ТВЕРДЫЕ принципы
  • GoF Design Patterns
  • MVC (для ASP.Net MVC)

Четвертое: узнать больше инструментов

Вы знаете, как Microsoft облегчает задачу, предоставляя множество готовых инструментов? Ну, ты рано или поздно поразишь их ограничения. Когда вы это сделаете, вам придется либо подчинить их своей воле, либо бросить свою собственную. В любом случае, вам придется немного запутаться с некоторыми CSS и Javascript.

в заключение

Как только вы сделали это, вы уже на пути к успеху.

[Редактировать: исправлена ​​последовательность для изучения этого sutff. Видимо, я не мог сосчитать вчера ...]

Kramii
источник
«Когда вы это сделаете, вам придется либо согнуть их по своему желанию, либо свернуть свои собственные», либо использовать что-то с открытым исходным кодом. +1, тем не менее, хороший ответ
pdr
Спасибо .. Действительно потрясающий ответ :-) но что это за шум вокруг mvvm, ioc, mvp, репозиториев, фабрик ... Вставьте сюда еще одно большое модное слово ... каков нынешний "благословенный Microsoft" подход к созданию веб-приложений?
Даниэль Аптон
3
MVVM - (в настоящее время) очень специфичный для WFP / Silverlight шаблон проектирования. MVP - шаблон, аналогичный MVC, с некоторыми различиями во взаимодействиях между классами / слоями. Хранилища / фабрики / МОК - должны быть рассмотрены в вашем чтении для «третьего» выше, они касаются разделения проблем, принципа СУХОЙ и тестируемой конструкции. «Благословенный Microsoft» подход - зависит от ваших потребностей. Нынешний тренд определенно выглядит как MVC3, который имеет большое значение для создания «хорошего» дизайна с гораздо меньшим количеством суеты, с легкими IOC / DI, тестируемыми контроллерами и т. Д.
mjhilton
3
@Daniel Там, конечно, много модных слов. Самое важное, что вы можете сделать, это узнать, что они из себя представляют, и какие проблемы они могут помочь вам решить. Не попадайтесь в ловушку вклинивания всего вашего приложения в набор шаблонов проектирования, которые не повышают ценность в области удобства обслуживания или, что еще хуже, - трудно понять (иногда настолько, что вы не можете вспомнить, что-то делает через 6 месяцев после того как ты это написал). Позвольте применимым образцам помочь вам сделать сложные проблемы проще.
Майкл Дин
1
@Daniel: я бы на самом деле не слишком беспокоился о «благословенных» подходах Microsoft. Хороший дизайн - это хороший дизайн, независимо от того, кто его благословляет. Фактически Microsoft часто играет в догонялки в этой области (например, ASP.Net MVC как ответ на другие инфраструктуры MVC). Тем не менее, вы должны быть в курсе технологии Micosoft . Известно, что великолепные дизайны терпят неудачу, потому что они не подходят доступным наборам инструментов.
Крамий,
0

Разнообразие моментов, упомянутых Kramii, стоит того, но я хотел бы подчеркнуть упоминание о работе с принципами SOLID. Получение действительно хорошего понимания этого будет иметь большое значение, и многие из моделей GoF и т. Д. Начнут выпадать более естественно. Многое из этого заканчивается тем, что разделяет ваши проблемы и управляет вашими зависимостями, поэтому начните с источника, и все остальное будет иметь смысл.

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

eviltobz
источник