Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Design Pattern : ressources francophones où l'on vous tient par la main

+2 votes

Le thème sur les patrons de conceptions est la "grosse marche spirituelle" que j’essaie de franchir depuis un moment pour passer au niveau de compétence supérieur.

C'est un gros morceau quand même, et c'est dur d'avoir un truc digeste et qui rentre droit dans les neurones.

Je vous propose de réaliser une compil de tuto ou de code source maison bien commenté, et de la mettre dans notre dépôt github, ou de faire un article invité sur sametmax si Sam le permet.

Voici pour illustrer ma proposition, un exemple de tuto que j' ai apprécié :
https://zestedesavoir.com/tutoriels/1226/le-pattern-dispatcher-en-python/

ici un post sur indexerror relatif au patrons de conception

demandé 9-Jul-2016 par buffalo974 (2,864 points)

1 Réponse

+1 vote

Attention avec les patrons de conception, c'est un truc qui s’acquiert peu a peu avec l’expérience, bien plus qu'avec des cours ou l'on te prend par la main. Pour tout dire, mal employé, ça peut très vite te faire passer du niveau "bon amateur" au niveau "mauvais pro".

Qui plus est, le concept est bien moins utile en python qu'avec d'autres langages (disons Java par exemple). Sinon, un des patterns les plus cools a écrire en python (selon moi), c'est le pattern Proxy.

Un livre plutôt bien pour découvrir les DP (avec Java) est celui de la collection "tete la première" (en français donc), je ne me souviens plus du titre. Je l'avais trouve plutôt pédagogique.

répondu 11-Jul-2016 par yoch (2,514 points)

Exemple amusant de proxy (ne fonctionne que sous Python 2, voir ici pour plus de détails) :

class Proxy:
    def __init__(self, obj):
        self.__obj = obj
    def __getattr__(self, name):
        return getattr(self.__obj, name)

a = Proxy(10)
a * 42
>>> 420

Un exemple un peu plus réaliste pour un probleme réel :

http://chimera.labs.oreilly.com/books/1230000000393/ch11.html#_problem_191

Existe t il une sorte d' algorithme pour décider quel DP choisir en fonction de tel ou tel projet ?

Pour les gros projets, je suppose qu'il doit il y avoir des sortes de "mécanos de DP" connectés les uns aux autres, un peu comme la station spatiale internationale... auriez vous un schéma qui représente un tel assemblage de DP ?

Pour le premier point, je ne pense pas. En revanche, il est intéressant de connaitre les différentes catégories de patterns.

Pour le second, effectivement il est courant qu'un DP en (re)utilise d'autres, un exemple classique étant MVC qui est une combinaison des patterns observateur, stratégie et composite. Mais je ne connais pas de schéma.

dans l' idée "combos de DP", d'autres exemples que MVC ?

Perso je suis d accord, les DP ne viennent qu avec de l XP lorsque sur un projet donné le besoin s en fait ressentir on s y colle

...