Signaler

Faut il nécessairement maîtriser les design patterns? [Résolu]

Posez votre question chrisee 161Messages postés dimanche 23 février 2014Date d'inscription 1 décembre 2016 Dernière intervention - Dernière réponse le 30 nov. 2016 à 03:49
Bonjour,
je suis développeur java en début de carrière,donc je ne suis pas encore un expert,mais je conçois déjà des petits logiciel pour des particuliers et des petites boîtes.Jusque là je n'ai fais que du M-VC et très peu du MVC.J'ai cependant découvert sur le net plusieurs autres design patterns que je ne connais.Faut-il nécessairement que j'apprends aussi observable ,factory ,strategy, etc.Ou que je peux me contenter avec ce que je fais déjà? Merci
Afficher la suite 
Utile
+0
moins plus
Bonjour,

Sans dire qu'il soit indispensable de les utiliser en permanence il est cependant utile de savoir que cela existe car le rôle des design pattern est de te faire gagner du temps et de la qualité de code dans ton programme car ce sont des "réponses toute faites" à des problèmes fréquents.
Par exemple, si tu fais un singleton n'importe comment tu peux te retrouver avec des problèmes d'accès concurrent et avoir plusieurs instances de la même classe quand tu n'en voulais qu'un...
Mais au final cela relève souvent du bon sens et parfois tu utiliseras un design pattern sans savoir que c'en est un. Ci-dessous le code d'une stratégie qui choisit l'implémentation TreeSet ou HashSet selon si on veut le Set résultat trié ou non.

public <E> Set<E> getSet(Collection<E> coll, boolean isSorted) {
    return isSorted ? new TreeSet(coll) : new HashSet(coll);
}
Ajouter un commentaire
Utile
+0
moins plus
Je rejoins la réponse précédente mais avec un autre point de vue.

Il faut avoir lu une ou plusieurs fois l'utilité de chaque pattern ou design afin de les utiliser en temps voulu. Si tu n'en vois pas l'utilité, pas de problème. Ne pas chercher à tout prix à vouloir les intégrer.

Cependant, des grandes entreprises ont surement déjà en place des patterns de ce genre dans leurs applications et si tu bosses pour eux, il va falloir s'y familiariser et coder avec. C'est déjà bon d'y avoir été sensibilisé.

Et même si de petites boites n'ont pas encore de design pattern dans leur code, il pourrait être intéressant de réfléchir à des patterns qui leur permettrait de gagner en rendement (rechercher les points faibles pour le développement et les combler par un pattern si possible).

Je te conseille vivement de te familiariser encore plus avec les plus connus (MVC, singleton, factory etc.)
chrisee 161Messages postés dimanche 23 février 2014Date d'inscription 1 décembre 2016 Dernière intervention - 29 nov. 2016 à 23:36
Merci beaucoup,donc vu que je suis en début de carrière et actuellement je travaille sur un logiciel d'une petite boîte,mais seulement en utilisant MVC,donc je peux commencer avec et puis au fur et à mesure que je gagne en expérience,je vais l'améliorer en le mettant à jour,et dans les versions qui vont suivre intégrer d'autres design patterns,est-ce une bonne à ton avis?
Répondre
KX 13738Messages postés samedi 31 mai 2008Date d'inscription ModérateurStatut 7 décembre 2016 Dernière intervention - 29 nov. 2016 à 23:46
"je vais l'améliorer en le mettant à jour"
Un design pattern n'améliore pas le programme, uniquement le code.

Si ton programme fonctionne en v1 rajouter des design pattern est inutile en v2, d'une part c'est un investissement qui consiste plus à moins à tout refaire, d'autre part c'est un risque de régression.
En revanche si ton programme plante en v1 avoir eu une conception cohérente (avec ou sans design pattern) permet de faire une maintenance plus efficace en v2. Ce qu'il faut éviter c'est un code fouillis.
Les design pattern aident en partie à résoudre des problèmes courant, mais une méthodologie dans la conception de l'application est encore plus important.
Répondre
Ajouter un commentaire
Utile
+0
moins plus
Merci vraiment
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !