Quelles sont les principales pratiques et modèles de conception que chaque type .NET devrait connaître? [fermé]

16

Au cours de ma brève période en tant que programmeur professionnel, j'ai vu de nombreuses applications écrites par des programmeurs dont toute la formation semble avoir lu les deux premiers chapitres d'un livre .NET 2.0.

Heck quand j'ai commencé, j'ai écrit la plupart de ces applications!

Quels sont les plus grands modèles de conception cruciaux pour l'écriture d'applications AWESOME .NET?

Par génial, je veux dire aussi à l'intérieur!

Daniel Upton
la source
Aucun n'est crucial.
kirk.burleson

Réponses:

22

Premièrement: Connaissez bien vos outils de base

  1. Connaître le modèle d'événement ASP.Net. Vous aurez un gâchis si vous ne le faites pas.

  2. Comprendre la mécanique de l'OO. Un nombre surprenant de programmeurs .Net relativement expérimentés semblent toujours penser que nous sommes en 1972.

  3. Commencez à lire le code terminé.

Deuxièmement: apprendre à séparer les préoccupations

Le crime de conception le plus courant que je vois dans le développement ASP.Net est de bourrer toute la logique métier dans le code-behind. Je sais que tous les exemples Microsoft le font de cette façon. Je sais que cela se justifie sur les petites applications. Et je sais que je le fais parfois de cette façon. Mais vraiment, c'est une mauvaise conception, et c'est ma haine pour les animaux de compagnie pour la semaine.

Troisièmement: Apprenez tout le reste sur le design

La plupart du code .Net de mauvaise qualité que je vois est le résultat d'une mauvaise conception OO. Par conséquent, je recommanderais une bonne compréhension de:

  • Principes SOLIDES
  • Modèles de conception GoF
  • MVC (pour ASP.Net MVC)

Quatrièmement: Découvrez plus d'outils

Vous savez comment Microsoft facilite les choses en fournissant de nombreux outils prêts à l'emploi? Eh bien, vous allez tôt ou tard atteindre leurs limites. Lorsque vous le ferez, vous devrez soit les plier à votre volonté, soit rouler la vôtre. De toute façon, vous allez devoir vous salir avec du CSS et du Javascript.

finalement

Une fois que vous avez fait beaucoup de choses, vous êtes sur la bonne voie.

[Edit: Correction de la séquence d'apprentissage de ce sutff. Apparemment, je ne pouvais pas compter hier ...]

Kramii
la source
"Quand vous le ferez, vous devrez soit les plier à votre volonté, soit rouler les vôtres" Ou utiliser quelque chose d'Open Source. +1, néanmoins, bonne réponse
pdr
Merci .. Réponse vraiment géniale :-) mais quel est tout ce buzz sur mvvm, ioc, mvp, référentiels, usines ... Insérez ici un autre gros mot à la mode .. quelle est l'approche "microsoft blessed" actuelle pour créer des applications web?
Daniel Upton
3
MVVM - (actuellement) un modèle de conception très spécifique à WFP / Silverlight. MVP - un modèle similaire à MVC, avec quelques différences dans les interactions entre les classes / couches. Référentiels / usines / IOC - devraient être couverts dans votre lecture pour le "Troisième" ci-dessus, ils concernent la séparation des préoccupations, le principe DRY et la conception testable. Approche «bénie de Microsoft» - dépend de vos besoins. La tendance actuelle semble définitivement être MVC3, qui permet de faire une "bonne" conception avec beaucoup moins de bruit, avec des IOC / DI faciles, des contrôleurs testables, etc.
mjhilton
3
@Daniel Il y a certainement beaucoup de mots à la mode. La chose la plus importante que vous puissiez faire est d'apprendre ce qu'ils sont et quels types de problèmes ils peuvent vous aider à résoudre. Ne vous laissez pas prendre au piège de coincer votre application entière dans un ensemble de modèles de conception qui n'ajoutent pas de valeur dans le domaine de la maintenabilité, ou pire - est difficile à comprendre (parfois tellement que vous ne vous souvenez pas de quoi fait 6 mois après l'avoir écrit). Laissez les modèles applicables vous aider à simplifier les problèmes complexes.
Michael Dean
1
@Daniel: Je ne m'inquiéterais vraiment pas trop des approches "Microsoft blessed". Un bon design est un bon design, peu importe qui le bénit. En fait, Microsoft joue souvent un rôle de rattrapage dans ce domaine (par exemple, ASP.Net MVC en réponse à d'autres frameworks MVC). Cela dit, vous devez rester au courant de la technologie Micosoft . Les grands designs ont échoué car ils ne conviennent pas à l'ensemble d'outils disponible.
Kramii
0

La variété des points mentionnés par Kramii en vaut la peine, mais je voudrais souligner la mention de travailler avec les principes SOLID. Une très bonne compréhension de ceux-ci fera une grande différence, et de nombreux modèles du GoF, etc. commenceront à tomber plus naturellement. Une grande partie de ce travail consiste à séparer vos préoccupations et à gérer vos dépendances, alors commencez à la source et tout le reste aura du sens.

Si vous ressemblez à ce que j'étais avant mon récent cours de codage OO avec JP Boodhoo, le principe de la responsabilité unique signifie bien plus que vous ne le pensez! Il vaut vraiment la peine de comprendre à quel point une classe peut être petite si vous vous en tenez à cela.

eviltobz
la source