74 votes

Comment apprendre le « bon logiciel design/architecture » ?

Je viens d’écouter une discussion sur un projet s’éloignant la direction que c’est censé pour aller. Le problème était « mauvais software design ».

Composants ne sont pas conçus pour être réutilisés ; le logiciel est difficile à maintenir, tester, ample et échelles mal.

Ce qu’ont fait les programmeurs font mal ? Où et comment pour apprendre les techniques mieux ?

Bien sûr, il y a des patterns GoF... mais ce n’est pas tout, est-ce ?

41voto

LeopardSkinPillBoxHat Points 11851

Permettra d’améliorer la qualité de la conception logicielle avec expérience dans l’industrie monde réel.

Aucun diplôme collégial et universitaire n’est un substitut pour travailler dans un vrai travail, développement de logiciels real.

Livres tels Code complet par Steve McConnell sont aussi des ressources inestimables.

35voto

Marko Points 13736

Aucun livre GoF Design Patterns n’est pas tout. Après avoir lu, à l’aide et le comprendre, l’étape suivante consiste à apprendre quand pas d’utiliser des modèles.

J’ai vu trop de projets suréquipée modèle infecté.

25voto

philant Points 17345

Je vous recommande les Principes de l'INONDATION :

Principes de conception de classe

  • PRS de La Seule Responsabilité Principe d'Une classe ne doit avoir qu'un, et une seule raison de changer.

  • OCP Le Principe Ouvert Fermé Vous devrait être en mesure d'étendre des classes comportement, sans le modifier.

  • LSP, Le Liskov Substitution Principe les classes Dérivées doivent être substituables pour leur base des classes.

  • TREMPEZ L'Inversion de Dépendance Principe Dépendent des abstractions, pas sur de concrétions.

  • FAI La Ségrégation Interface Principe fine des interfaces spécifiques du client.

Principes sur les paquets Dans ce contexte, un paquet binaire est livrable comme une .fichier jar, ou une dll, par opposition à un espace de noms comme un package java ou C++ de l'espace de noms.

  • REP La Libération de Réutiliser Principe d'Équivalence, Le granulé de réutilisation est le granule de libération.

  • CCP La Commune de Fermeture Principe des Classes qui changent ensemble sont emballés ensemble.

  • CRP La Commune de les Réutiliser Principe des Classes qui sont utilisés sont emballés ensemble.

Les trois derniers principes sont sur les couplages entre les colis, et de parler de métriques pour évaluer la structure de paquet d'un système.

  • ADP Le Acyclique Dépendances Principe Le graphe de dépendance de les colis doivent avoir aucun cycle.

  • SDP La stabilité de Dépendances Principe Dépendent de la direction de de la stabilité.

  • La SÈVE de l'Stable Abstractions Principe d'Abstraction augmente avec la stabilité.

8voto

Shiju Points 763

6voto

Galwegian Points 29966

Essayez de lire de Fowler Patterns of Enterprise application Architecture, ou tout documents objets de Rocky Lhotka.

Les deux sont d’excellentes ressources.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X