Faut il nécessairement maîtriser les design patterns?

Résolu/Fermé
chrisee Messages postés 171 Date d'inscription dimanche 23 février 2014 Statut Membre Dernière intervention 29 juillet 2017 - 28 nov. 2016 à 23:55
chrisee Messages postés 171 Date d'inscription dimanche 23 février 2014 Statut Membre Dernière intervention 29 juillet 2017 - 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

3 réponses

Utilisateur anonyme
29 nov. 2016 à 20:37
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.)
1
chrisee Messages postés 171 Date d'inscription dimanche 23 février 2014 Statut Membre Dernière intervention 29 juillet 2017 10
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?

--
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
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.
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
29 nov. 2016 à 06:56
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);
}
0
chrisee Messages postés 171 Date d'inscription dimanche 23 février 2014 Statut Membre Dernière intervention 29 juillet 2017 10
30 nov. 2016 à 03:49
Merci vraiment

--
0