Які основні практики та схеми дизайну повинен знати кожен хлопець .NET? [зачинено]


16

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

Чорт, коли я почав, я написав більшість цих заявок!

Які найбільші шаблони дизайну мають вирішальне значення для написання програм AWESOME .NET?

Під дивовижним я маю на увазі і зсередини!


Жодне не має вирішального значення.
kirk.burleson

Відповіді:


22

По-перше: добре знати свої основні інструменти

  1. Знайте модель подій ASP.Net. Ви заблудите, якщо цього не зробите.

  2. Розуміти механіку ОО. Дивовижна кількість відносно досвідчених програмістів .Net все ще вважають, що це 1972 рік.

  3. Почніть читати Код завершено.

Друге: навчіться розділяти проблеми

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

Третє: Дізнайтеся все інше про дизайн

Більшість неякісних кодів .Net, які я бачу, є результатом поганої конструкції ОО. Тому я рекомендую добре розуміти:

  • Тверді принципи
  • Шаблони дизайну GoF
  • MVC (для ASP.Net MVC)

Четверте: ознайомтеся з іншими інструментами

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

Нарешті

Після того, як ви зробили це багато, ви вже на шляху до приголомшливого.

[Редагувати: Виправлено послідовність вивчення цього суффа. Мабуть, я вчора не міг порахувати ...]


"Коли ви це зробите, то вам або доведеться згорнути їх за своїм бажанням, або скотити своє", або використати щось із відкритим кодом. +1, тим не менше, хороша відповідь
pdr

Дякую .. Дійсно дивовижна відповідь :-) але в чому вся ця шум про mvvm, ioc, mvp, сховищах, фабриках ... Вставте сюди будь-які інші великі мовні слова ... що таке поточний "благословенний" мікрософт для створення веб-додатків?
Деніел Аптон

3
MVVM - на даний момент дуже специфічний для проекту WFP / Silverlight дизайн. MVP - схожа закономірність з MVC, з деякими відмінностями взаємодій між класами / шарами. Сховища / фабрики / МОК - повинні бути висвітлені у вашому читанні для "Третього" вище, вони стосуються відокремлення проблем, принципу DRY та тестового дизайну. Підхід "благословенний Microsoft" - залежить від ваших потреб. Поточна тенденція, безумовно, виглядає як MVC3, який проходить довгий шлях до створення «хорошого» дизайну з набагато меншою суєтою, з легким IOC / DI,
тестовими

3
@Daniel Там, звичайно, багато мовних слів. Найголовніше, що ви можете зробити - це дізнатися, що вони є, і які проблеми можуть допомогти вам вирішити. Не потрапляйте в пастку вкручування всієї програми в набір моделей дизайну, що не додає цінності в області ремонту, або ще гірше - важко зрозуміти (іноді настільки, що ви не можете згадати, що щось робить через 6 місяців після того, як ви це написали). Нехай застосовні моделі допоможуть вам спростити складні проблеми.
Майкл Дін

1
@Daniel: Я дійсно не надто хвилювався б про "підходи Microsoft". Хороший дизайн - це хороший дизайн незалежно від того, хто його благословляє. Насправді Microsoft часто відтворює наздоганяння в цій галузі (наприклад, ASP.Net MVC як відповідь на інші рамки MVC). При цьому вам потрібно бути в курсі технології Micosoft . Чудові конструкції, як відомо, не вдається, оскільки вони не відповідають доступному набору інструментів.
Крамій

0

Різноманітність пунктів, згаданих Крамієм, цілком варте, але я хочу наголосити на згадці про роботу з принципами SOLID. Якщо дійсно добре зрозуміти це, це призведе до великої різниці, і багато з моделей GoF тощо почнуть випадати природніше. Значна частина цього матеріалу закінчується питанням розділення ваших проблем та управління залежностями, тому почніть з джерела, і все інше матиме сенс.

Якщо ви щось подібне до того, як я був до мого недавнього курсу кодування OO з JP Boodhoo, принцип єдиної відповідальності означає набагато більше, ніж ви думаєте! Дійсно варто зрозуміти, яким малим може бути клас, коли ти дотримуєшся цього добре.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.