Jakie są główne praktyki i wzorce projektowe, które powinien znać każdy facet .NET? [Zamknięte]

16

Przez krótki czas pracy jako profesjonalny programista widziałem wiele aplikacji napisanych przez programistów, których całe wykształcenie wydaje się czytać kilka pierwszych rozdziałów książki .NET 2.0.

Heck, kiedy zaczynałem, pisałem większość tych aplikacji!

Jakie są największe wzorce projektowe niezbędne do pisania NIESAMOWITEJ aplikacji .NET?

Przez niesamowite mam na myśli także wnętrze!

Daniel Upton
źródło
Żadne nie są kluczowe.
kirk.burleson

Odpowiedzi:

22

Po pierwsze: dobrze poznaj podstawowe narzędzia

  1. Poznaj model zdarzeń ASP.Net. Wpadniesz w bałagan, jeśli tego nie zrobisz.

  2. Zrozum mechanikę OO. Zaskakująca liczba stosunkowo doświadczonych programistów .Net nadal wydaje się myśleć, że to 1972 rok.

  3. Zacznij czytać Kod zakończony.

Po drugie: naucz się rozdzielać obawy

Najczęstszym przestępstwem związanym z projektowaniem, które widzę w rozwoju ASP.Net, jest upychanie całej logiki biznesowej za kodem. Wiem, że wszystkie przykłady Microsoft robią to w ten sposób. Wiem, że jest to uzasadnione w małych aplikacjach. I wiem, że czasami robię to w ten sposób. Ale tak naprawdę to zły projekt i moja nienawiść do zwierząt domowych na tydzień.

Po trzecie: Dowiedz się wszystkiego o projektowaniu

Większość słabej jakości kodu .Net, który widzę, jest wynikiem złego projektu OO. Dlatego polecam dobre zrozumienie:

  • SOLIDNE zasady
  • Wzory projektowe GoF
  • MVC (dla ASP.Net MVC)

Po czwarte: poznaj więcej narzędzi

Czy wiesz, w jaki sposób Microsoft ułatwia pracę, udostępniając wiele gotowych narzędzi? Cóż, wcześniej czy później trafisz na ich ograniczenia. Kiedy to zrobisz, będziesz musiał albo zgiąć je do woli, albo rzucić własne. Tak czy inaczej, będziesz musiał ubrudzić się przy pomocy CSS i Javascript.

Wreszcie

Gdy już to zrobisz, jesteś na najlepszej drodze do niesamowitości.

[Edycja: Naprawiono sekwencję uczenia się tego sutffa. Najwyraźniej nie mogłem liczyć wczoraj ...]

Kramii
źródło
„Kiedy to zrobisz, będziesz musiał albo zgiąć je do woli, albo rzucić własne” lub użyć czegoś Open Source. +1, jednak dobra odpowiedź
pdr
Dzięki .. Naprawdę niesamowita odpowiedź :-) ale co to za szum w mvvm, ioc, mvp, repozytoriach, fabrykach ... Wstaw tutaj inne wielkie modne hasło ... jakie jest obecne podejście do tworzenia aplikacji internetowych?
Daniel Upton
3
MVVM - (obecnie) wzorzec projektowy bardzo specyficzny dla WFP / Silverlight. MVP - wzór podobny do MVC, z pewnymi różnicami w interakcjach między klasami / warstwami. Repozytoria / fabryki / MKOl - powinny zostać uwzględnione w tekście powyżej dla „Trzeciego”, odnoszą się one do oddzielenia problemów, zasady DRY i projektu możliwego do przetestowania. Podejście „błogosławione przez Microsoft” - zależy od twoich potrzeb. Obecnym trendem zdecydowanie wydaje się być MVC3, który przechodzi długą drogę do umożliwienia „dobrego” projektu przy znacznie mniejszym wysiłku, z łatwym IOC / DI, kontrolowalnymi
testami
3
@Daniel Na pewno jest wiele modnych słów. Najważniejszą rzeczą, jaką możesz zrobić, to dowiedzieć się, czym one są i jakie rodzaje problemów mogą pomóc rozwiązać. Nie daj się złapać w pułapkę wplatania całej aplikacji w zestaw wzorców projektowych, które nie dodają wartości w zakresie łatwości konserwacji lub gorzej - jest trudne do zrozumienia (czasami tak bardzo, że nie pamiętasz, co coś 6 miesięcy po napisaniu). Pozwól, aby odpowiednie wzorce pomogły Ci uprościć złożone problemy.
Michael Dean
1
@Daniel: Naprawdę nie martwiłbym się zbytnio podejściem „błogosławionego Microsoft”. Dobry projekt to dobry projekt bez względu na to, kto go błogosławi. W rzeczywistości Microsoft często odgrywa nadrabianie zaległości w tym obszarze (np. ASP.Net MVC jako odpowiedź na inne frameworki MVC). To powiedziawszy, musisz być świadomy technologii Micosoft . Świetne projekty okazały się nieskuteczne, ponieważ nie pasują do dostępnego zestawu narzędzi.
Kramii
0

Różnorodność punktów wspomnianych przez Kramii jest warta zachodu, ale chciałbym podkreślić wzmiankę o pracy z zasadami SOLID. Zrozumienie ich naprawdę zrobi dużą różnicę, a wiele wzorów GoF itp. Zacznie wypadać bardziej naturalnie. Wiele z tych rzeczy kończy się na oddzieleniu twoich obaw i zarządzaniu twoimi zależnościami, więc zacznij od źródła i wszystko inne będzie miało sens.

Jeśli jesteś kimś takim, jak byłem przed moim ostatnim kursem programowania OO z JP Boodhoo, zasada pojedynczej odpowiedzialności oznacza znacznie więcej, niż myślisz! Naprawdę warto zrozumieć, jak mała może być klasa, gdy trzymasz się tej studni.

eviltobz
źródło