Apprentissage/Mise En Œuvre De Modèles De Conception (Pour Les Débutants) [fermé]


Je suis un programmeur débutant et amateur confus qui essaie de comprendre cela, alors pardonnez-moi si ma question est un peu éteinte ou n'a pas beaucoup de sens.

Je vois beaucoup de questions sur SO tournant autour de l'utilisation des modèles de conception, et je me demande si quelqu'un a de bonnes ressources pour apprendre et implémenter des modèles de conception? Je comprends l'idée générale et je sais comment/quand en utiliser quelques-uns(Singletons, méthodes d'usine) mais je sais que je manque.

( Juste dans si c'est important, ma langue de préférence est C# mais je pourrais apprendre à partir d'exemples dans d'autres langues)

Author: casperOne, 2008-10-28

25 answers

Modèles de conception Tête première

le texte d'alt

Et la page Design Pattern Wikipedia sont les meilleures ressources pour les débutants. FluffyCat est une autre bonne ressource en ligne gratuite pour les modèles de conception dans Java et PHP .

Le Gang of Four book est où aller après, mais il est assez avancé, donc j'attendrais que vous ayez une compréhension assez ferme des autres ressources.

 84
Author: Bill the Lizard, 2017-02-08 14:08:50

Les modèles de conception sont parfaits pour diverses raisons:

  1. vous donne un point de départ pour résoudre des problèmes courants.
  2. donne aux développeurs un vocabulaire pour parler de certaines façons de résoudre les problèmes de manière très compacte.
  3. lorsque vous travaillez avec des développeurs qui connaissent les modèles de conception et que vous utilisez des modèles de conception dans vos solutions, ils comprendront les solutions beaucoup plus rapidement.

Mais quand votre objectif est juste d'apprendre des modèles de conception, je pense que vous manquez le les fondamentaux. Tous les modèles de conception sont basés sur des principes plus communs. Cohésion élevée, bas Principe Fermé ouvert d'Accouplement, SEC, principe de substitution de Liskov etc. Pour ces fondamentaux, je lirais les livres suivants dans cet ordre:

  1. la Tête la Première Analyse Orientée Objet et des Design (Tête Première) [ILLUSTRÉ] (Broché)
  2. Application d'UML et de Patterns (Relié)
  3. Principes, Modèles et pratiques agiles en C #(série Robert C. Martin) (Relié)

Après cela, vous êtes prêt pour la bande de base de quatre modèles de conception

  1. Modèles de conception Tête première (Tête première) [ILLUSTRÉ] (Broché)
  2. La BIBLE
  3. Un beau site web (n'achetez rien, ça n'en vaut pas la peine) http://dofactory.com/Patterns/Patterns.aspx (certaines implémentations de ce site méritent une discussion

L'étape suivante:

  1. Modèles d'entreprise L'architecture d'application (Addison-Wesley Signature Series) (Relié)
  2. Les livres POSA

Et rappelez-vous toujours: le motif n'est pas le but !

 26
Author: KeesDijk, 2008-10-28 21:17:15

J'ajouterais que Design Patterns le livre de la "Bande des quatre" est une bible pour tous ceux qui s'intéressent sérieusement aux modèles de conception.

 20
Author: Leopold Cimrman, 2008-10-28 20:26:22

Mon conseil:

Lisez beaucoup sur les modèles provenant de différentes sources.

Essayer de forcer autant de modèles que possible dans tout le code que vous écrivez car ce point ne donnera pas de bons résultats. Au lieu de cela, laissez l'information reposer dans votre cerveau pendant un certain temps (lire: mois).

Soudainement, vous tomberez sur un problème ou un morceau de code et vous vous souviendrez vaguement que vous avez vu quelque chose qui pourrait fonctionner comme une solution à ce problème particulier. Maintenant est-il temps de rechercher les détails sur le modèle auquel vous pensez et d'essayer de l'appliquer.

C'est ce qui a fonctionné pour moi, de toute façon.

 14
Author: Lars A. Brekken, 2008-10-28 20:30:24

Les Modèles De Conception

Ce site de tutoriel contient les sous-sections suivantes

  • Intention de chaque modèle
  • Structure du monde réel pour le modèle de conception
  • Un énoncé de problème
  • Discussion détaillée sur le problème
  • Liste de contrôle sur la façon d'arriver à un modèle
  • Règles empiriques tout en arrivant à pattern.
  • Extraits de code pour le modèle de conception ce qui inclut C#, C++, Delphi, Java et PHP

Ce site contient également un guide sur Anti Motifs, UML et Refactoring.

 9
Author: pramodc84, 2010-09-23 13:46:17

Bruce Eckel a unlivre sur les modèles de conception , bien que ce soit Java, c'est comme tous ses livres étonnants. Et la meilleure chose est, ils sont libres!

 8
Author: Jan Gressmann, 2008-10-28 20:30:35
 7
Author: JPrescottSanders, 2008-10-28 20:34:45

Un livre d'introduction que j'ai trouvé utile et bien écrit est Modèles de conception expliqués par Alan Shalloway et James Trott (Addison Wesley).

Texte alternatif http://ecx.images-amazon.com/images/I/5172GGH8QHL._SL500_AA240_.jpg

Do pas démarrer à partir du "bande des Quatre" livre, car il n'est pas un livre d'introduction par tous les moyens.

 5
Author: Federico A. Ramponi, 2008-10-29 00:15:19

Je recommande de jeter un oeil à la quintologie de Jean Paul Boodhoo (?) sur la démystification des modèles de conception sur DNRtv, URL fournies ci-dessous. Les vidéos touchent Singleton, Abstract Factory entre autres-la différence étant que vous pouvez le regarder coder pendant qu'il discute de la théorie. Bon à surveiller le déjeuner sur un pluvieux semaine.

Http://www.dnrtv.com/default.aspx?showNum=63 http://www.dnrtv.com/default.aspx?showNum=65 http://www.dnrtv.com/default.aspx?showNum=68 http://www.dnrtv.com/default.aspx?showNum=71 http://www.dnrtv.com/default.aspx?showNum=92

 4
Author: David Pike, 2008-10-29 12:51:41

Une annotation aux commentaires ci-dessus.

Une Référence Rapide Pour Les Modèles GOF

Voici un bon endroit pour commencer dofactory.com/patterns/patterns.aspx - Vous pouvez trouver un lien vers chaque modèle, ainsi que les implémentations correspondantes.

Cependant, rappelez-vous que ce sont des modèles GOF. Vous devrez peut-être également lire et comprendre les modèles avancés, une fois que vous aurez acquis suffisamment d'expertise en charge. Tête Première Modèles de conception est un bon début, et après avoir fait quelques progrès, allez avec les modèles d'architecture d'application d'entreprise de Martin Fowler.

Appliquer les Modèles de Conception-Le Processus de pensée

Un autre aspect principal - Appliquer des modèles de conception est aussi important que de les connaître. La lecture de ces articles pourrait également vous aider.

Application des modèles de conception Partie I

Application des modèles de conception Partie II

J'espère que cela aide

 4
Author: amazedsaint, 2008-12-15 07:34:51

Head First Design Patterns est un bon modèle comme d'autres déjà noté. En plus de cela, bien sûr le livre original et les modèles de conception C#. Il existe également de bons sites Web déjà mentionnés.

En plus de l'auto-apprentissage, je recommande sérieusement de commencer ou d'assister à unpattern study group dans votre région. Voir A Learning Guide To Design Patterns pour une explication et un bon ordre pour étudier les modèles. Nous avons fait cela et je peux honnêtement dire que je ne comprendrais pas autant que moi faire maintenant. Une réunion hebdomadaire avec d'autres personnes intéressées vous permet de rester étonnamment discipliné lorsque vous apprenez quelque chose d'abstrait comme des modèles de conception.

Bonnes études!

 3
Author: mmiika, 2008-10-29 09:21:34

Avant de dépenser de l'argent sur des livres, je recommanderais l'excellente page design patterns de Wikipedia. Aussi pour quelque chose de différent Google pour " design pattern screencasts "ou recherchez" design patterns " sur YouTube. Obtenir les mêmes informations présentées différemment aide souvent la baisse de penny.

Le livre Gang of Four est le texte définitif sur les modèles les plus connus mais n'est pas si facile à lire et avec des exemples C++ pas ceux de tout le monde favori.

Le texte Head First Design Patterns est beaucoup plus accessible mais ne contient qu'un sous-ensemble de la Bande de Quatre patterns.

Le plus important est de comprendre où et pourquoi un modèle particulier est utile. Ensuite, recherchez sur le Web des exemples d'implémentation dans la langue de votre choix et expérimentez jusqu'à ce que vous "l'obteniez". Comprenez un modèle avant de passer au suivant. Tout le monde comprend mieux certains modèles que d'autres (et il y en a des centaines des moins connus).

Il suffit de continuer à brancher loin.

 3
Author: Royd Brayshay, 2009-12-22 14:13:44

Modèles de l'Architecture des Applications d'Entreprise (couverture rigide) par Martin Fowler

Refactoring aux modèles (Relié) par Joshua Kerievsky

Intégration continue: Améliorer la Qualité des logiciels et Réduire les Risques (Broché) par Paul Duval et.al.

Au-Delà de l'Architecture Logicielle: Créer et Maintenir des Solutions Gagnantes (Broché) par Luke Hohmann

 2
Author: Elie, 2008-10-28 20:26:03

Les modèles de conception sont comme n'importe quelle fonction de bibliothèque, lisez-les, puis quand un problème survient, le modèle de conception sera dans votre "Toolchest". Il existe de nombreux livres de modèles de conception tous inspirés des modèles de conception originaux "Gang of four".

Pour tous les programmeurs, je pense que cela et le livre de Refactoring de Fowler sont les exigences minimales absolues.

 2
Author: Bill K, 2008-10-28 20:27:23

Pour les sites web, un très bon site est http://ajaxpatterns.org, de l'un des développeurs du site ajaxian

 2
Author: Ken Penn, 2008-10-28 20:29:06

L'original Modèles de Conception de livre est une lecture incontournable pour tous les programmeurs.

C'est un excellent livre à tous les niveaux: mise en page, clarté, perspicacité, profondeur. C'est l'un de ces grands livres que vous lisez d'abord de couverture en couverture, puis utilisez comme référence jusqu'à ce que vous le sachiez littéralement à l'envers.

Vous pouvez commencer par la Page Wikipedia, mais offrez-vous aussi le grand livre.

 2
Author: ddaa, 2008-10-28 20:30:02

Appliquer UML et Patterns par Craig Larman. Commencer à partir de la base de l'analyse, la conception et utilise un simple scénario. Introduit la plupart des modèles de base d'une manière simple.

 2
Author: skinp, 2008-10-28 20:30:46

Si vous lisez sur les modèles de conception, vous remarquerez que Java semble en avoir implémenté quelques-uns.

Regardez la source de n'importe quel framework et vous pouvez glaner des informations sur les modèles de conception. Personnellement, je ne les vois pas s'adapter parfaitement à aucun de mes codes, parfois les exemples dans les livres et les tutoriels semblent un peu idéalisés, en particulier pour le codeur solitaire.

Les modèles de conception ne sont pas pour les codeurs paresseux.

 2
Author: Peter Turner, 2008-10-28 20:35:33

Pour moi et mes collègues étudient le modèle de conception qui suit Groupe d'étude de modèle. Ils préparent une liste de chaque modèle que nous devrions apprendre dans l'ordre et ont également les questions d'ouverture qui font plus de discussion en groupe.

 2
Author: Samnang, 2008-11-27 04:14:09

Je suggère également d'avoir un shufty à Refactoring aux modèles une fois que vous avez lu les modèles de conception Head First.

Remarque: Les exemples de code sont en Java, mais devraient être très similaires aux exemples C#...

 1
Author: toolkit, 2008-10-28 20:39:55

Cela n'a pas trop de sens pour moi pour quelqu'un avec très peu d'expérience de plonger trop loin dans les modèles de conception. Il est bon de savoir qu'ils existent, mais à ce stade, vous devriez vous concentrer davantage sur d'autres choses plutôt que d'apprendre simplement sur les modèles de conception.

Ils sont utiles dans le contexte d'un problème - en tant que concept pour un développeur nouveau/débutant, ils ne sont vraiment pas trop de valeur pratique en dehors de la forme sachant que vous devez les utiliser quand et où vous le pouvez.

MODIFIER Pour clarifier-de nombreux modèles de conception sont le résultat de problèmes rencontrés dans certains domaines. On peut difficilement s'attendre à ce qu'un nouveau programmeur (OMI) connaisse le ou les modèles de conception à utiliser pour un ensemble de problèmes. Tout comme nous obtenons une poignée d'algorithmes dans les études CS, nous avons besoin d'une compréhension des choses que nous pouvons faire avec les modèles et leurs avantages, mais quand une personne construit encore hello world ou découvre stl, il n'y a pas beaucoup de besoin pratique pour les modèles de conception. Les modèles sont grande. Mais ils ne sont pas la solution miracle.

(Ni CASE (tools), ni UML, ni SCRUM, ni TDD, ni STL, ni Java, ni XML, etc. ) Ce ne sont que des aspects de notre profession et traiter ces sujets comme la seconde venue est naïf.

 1
Author: Tim, 2008-10-28 21:20:18

Les modèles comprennent le vocabulaire de haut niveau utilisé par les programmeurs pour parler de conception abstraite. Si vous réutilisez une solution abstraite, il est utile de s'y référer par son nom. Si vous inventez un modèle, il est professionnel de faire un peu de vérification pour s'assurer qu'il n'a pas déjà reçu de nom. S'il a été nommé, la description peut être utile.

Après avoir codé même un tout petit peu, vous remarquerez que vous écrivez quelque chose de similaire à ce que vous avez codé auparavant. C'est un modèle. Même s'il s'agit d'un motif minuscule, cela vaut la peine de le remarquer. Est-il un meilleur modèle? Voyez - vous certains petits modèles coopérer ensemble pour résoudre un problème plus important? Eh bien la prochaine fois, lorsque vous voulez résoudre un problème plus important, le modèle entier vous vient à l'esprit comme un seul morceau. Étoffer les lignes de code détaillées devient mécanique.

Plus vous remarquez des modèles, plus la programmation devient facile, et plus vous apprécierez certains des plus grands et meilleurs modèles élaborés par d'autres programmeur. Essayez de maîtriser le modèle MVC. D'une manière ou d'une autre, les variations apparaissent partout, même dans les décisions de conception minuscules.

 1
Author: dongilmore, 2008-10-28 21:48:23

Une fois que vous avez compris le concept, parcourez le code source ou le design d'Eclipse, beaucoup de très bons exemples de ces modèles (pas de surprise, Gamma était l'un des concepteurs).

 1
Author: Uri, 2008-11-27 04:20:30

J'ai trouvé des articles de patron de conception sur ce site vraiment faciles à comprendre

Les Modèles de Conception en C#

 1
Author: DotnetDude, 2009-08-23 22:07:32