29 votes

Utilisez-vous des modèles de conception?

Quel est le taux de pénétration des modèles de conception dans le monde réel? Les utilisez-vous dans votre travail au quotidien - et de discuter où et comment les appliquer avec vos collègues de travail ou restent-ils de plus en plus un concept universitaire?

Est-ce qu'ils fournissent la valeur réelle de votre travail? Ou sont-ils simplement quelque chose que les gens parlent de son smart?

Note: Pour les fins de cette question ignorer "simple" des modèles de conception comme Singleton. Je parle de la conception de votre code, de sorte que vous pouvez prendre avantage de Modèle-Vue-Contrôleur, etc.

54voto

Derek Park Points 25025

Tout grand programme qui est bien écrit, l'utilisation des modèles de conception, même si elles ne sont pas nommés, ou reconnus comme tels. C'est ce que les design patterns sont des dessins qui, à maintes reprises et naturellement se produire. Si vous êtes l'interfaçage avec un laid API, vous trouverez probablement vous-même la mise en œuvre d'un Facade pour le nettoyer. Si vous avez des messages entre les composants que vous avez besoin de dissocier, vous utilisez peut - Observer. Si vous avez plusieurs interchangeables algorithmes, vous pourriez finir vers le haut à l'aide de Strategy.

Il est utile de connaître les modèles de conception parce que vous êtes plus susceptibles de reconnaître et ensuite converger vers une solution propre plus rapidement. Cependant, même si vous ne les connaissez pas, vous allez créer éventuellement (si vous êtes un décent programmeur).

Et bien sûr, si vous êtes en utilisant un langage moderne, vous aurez probablement être obligés de les utiliser pour certaines choses, parce qu'elles sont ancrées dans les bibliothèques standard.

10voto

Coincoin Points 12823

À mon avis, la question: "voulez-vous utiliser le design pattern?", seul est un peu faussé car la réponse est universellement OUI.

Laissez-moi vous expliquer, nous, les programmeurs et les concepteurs, toute utilisation des modèles de conception... que nous ne te rends pas toujours compte. Je sais que cela semble cliché, mais vous n'allez pas à des schémas, des modèles de venir à vous. De la conception des choses, il pourrait ressembler à un modèle existant, vous le nom de cette façon pour tout le monde à comprendre de quoi vous parlez et le raisonnement derrière votre décision de conception est plus fort, sachant qu'il a été discuté ad nauseam avant.

Personnellement, j'utilise des modèles comme un outil de communication. C'est tout. Ils ne sont pas des solutions de conception, ils ne sont pas les meilleures pratiques, ils ne sont pas des outils dans une boîte à outils.

Ne vous méprenez pas, si vous êtes un débutant, les livres de modèles va vous montrer comment une solution est la meilleure solution "à l'aide" de leurs habitudes plutôt que d'un autre défaut de conception. Vous aurez probablement apprendre à partir de l'exercice. Cependant, vous devez comprendre que cela ne signifie pas que chaque situation a besoin d'un modèle correspondant à résoudre. Chaque situation a un caprice ici et là qui vont vous obliger à réfléchir sur les alternatives et prendre une décision difficile avec pas de réponse parfaite. C'est la conception.

Anti-modèle, cependant sont sur une autre classe. En fait vous voulez à activement éviter les anti-modèles. C'est pourquoi le nom d'anti-modèle est tellement controversé.

Pour en revenir à votre question initiale:
"Puis-je utiliser les modèles de conception?", Oui!
"J'activement penchez-vous vers les modèles de conception?", Pas de.

4voto

Justin Ethier Points 57486

Oui. Les modèles de conception peut être merveilleux si utilisé de façon appropriée. Comme vous l'avez mentionné, je suis maintenant en utilisant le Modèle-Vue-Contrôleur (MVC) pour l'ensemble de mes projets web. C'est un schéma très commun dans l'espace web qui rend le code côté serveur beaucoup plus propre et bien organisé.

Au-delà, voici quelques autres modèles qui peuvent vous être utiles:

  • MVVM (Model-View-ViewModel): une tendance similaire à la MVC; utilisé pour les applications WPF et Silverlight.

  • Composition: Idéal lorsque vous avez besoin d'utiliser une hiérarchie d'objets.

  • Singleton: Plus élégant que d'utiliser des variables globales pour le stockage des éléments qui en ont vraiment besoin d'une instance unique. Comme vous l'avez mentionné, un modèle simple, mais il a ses utilise.

Il est intéressant de noter qu'un modèle de conception peut également mettre en évidence un manque de fonctionnalités de langage et/ou de carences dans une langue. Par exemple, les itérateurs sont maintenant intégrées dans le cadre de nouveaux langages.

En général, les modèles de conception sont très utiles, mais vous ne devriez pas les utiliser partout; seulement là où ils sont adaptés à vos besoins.

3voto

Thomas Owens Points 45042

J'essaye, oui. Ils contribuent en effet à la maintenabilité et à la lisibilité de votre code. Cependant, il y a des gens qui en abusent, généralement (d'après ce que j'ai vu) en forçant un système dans un modèle qui n'existe pas.

3voto

Patrik Points 5315

J'essaie d'utiliser des modèles s'ils sont applicables. Je pense que c'est un peu triste de voir les développeurs implémenter des modèles de conception dans le code juste pour le plaisir. Pour la bonne tâche cependant, les modèles de conception peuvent être très utiles et puissants.

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