Handler ou controlleur ou manager?

Bonjour,
Je ne suis pas anglophone et c’est pour cela que j’aimerai bien comprendre l’utilisation de ces 3 mots dans le développement surtout en web.

Je suis des formations et lis quelques livres mais je n’ai jamais reussi à différencier ces 3 termes. Quelqu’un peut -il me les expliquer? Dans quel circonstance on les utilise?

Jusqu’à maintenant, j’ai utilisé le français pour nommer mes fonctions & classes en PHP et Javascript et un peu en C++ pour des exercices. Mais avec les composants qui trainent sur le net, je commence à me pauser la question.

Merci

Hello,

Si je peux te donner un conseil, tente de bosser l’anglais. À titre perso, c’est très rare lorsque je lis de la doc en Français et me tourne la plupart du temps vers la doc originale (qui est hélas rarement traduite). La plupart du temps, on utilise d’ailleurs les mots anglais.

Pour les trois termes, ils sont en général utilisé dans des contextes particuliers.
D’abord le handle, c’est un composant que l’on utilise en général pour traiter des évènements qui surviennent de façon asynchrone par rapport à ton programme. Par exemple, lorsqu’un utilisateur clique, tu as un ClickHandler. Pour explorer ça, regarde du côté de la programmation asynchrone, parallèle, multi-threads. C’est très utilisé en programmation réseau ou dans les interfaces graphiques.

Les controlleurs interviennent dans les interfaces graphiques aussi. Ça provient à la base d’un design pattern (patron de conception en bon français) : MVC (Model View Controller). Le controlleur est responsable de faire le lien entre les données (model) et l’interface graphique (vue). En théorie, la vue ne devrait avoir aucun comportement, tout ça devrait être dans le controlleur. Pour plus d’infos, regarde du côté des cours sur le MVC, éventuellement les degign patterns en général.

Le manager… là, quand on a besoin d’utiliser ce mot, c’est souvent signe d’une mauvaise conception. On utilise un manager pour gérer… un peu tout en fait, et c’est là qu’est le problème. Si l’on ne peut utiliser un mot moins général, c’est que notre composant a trop de responsabilités. Ici, je pense que les principe «SOLID» c’est là où il faut regarder.

Hésite pas si t’as besoin de plus d’infos.
Cheers

3 « J'aime »

Edit: @Joris exact ^^

Désolé du up,

Bonjour,

Je dirais que

controller: s’occupe de charger les “bonnes données” (via Model - getting sur DB) pour la bonne “vue” (html templating) - api - dans certains cas, web site, … .
handler: s’occupe d’ “écouter” des états d’applications (DB orienté “messages/logs” ou plus généralement de façon asynchrone - sockets, api - dans certains cas, effet “blockchain” - dans certains cas, etc…).
manager: s’occupe de charger les bons objets quand une application (web et/ou app et/ou api) se complexifie (beaucoup d’objets / en millions ligne de code) et pour un et un seul “état” d’application (une vue particulière, un résultat particulier (xml ou json) mais complexe / objets à “stacker”, “réusable”, “memorisable”, etc…).

Il me semble enfin…

Cordialement,

Laurent

1 « J'aime »

Contrôleur : à priori n’accède jamais directement aux données. c’est un orchestrateur qui exec des taches “métier”. Pour cela il délégue, fait appel à des Services qui a leur tour renvoient les bonnes données et/ ou exec des taches. Assez souvent le service récupére les données auprès d’un Repository qui lui contient le statements SQL.
Suivant la taille du projet on peut faire des raccourcis ^^

1 « J'aime »

Merci pour tous ces réponses, ca aide. Jusqu’à maintenant, j’ai utilisé des noms qui sonnent bien dans ma tête. J’ai commencé à comprendre avec vos réponses illustrés par Bolt CMS qui nomme bien ses classes d’après certaines de vos explications.

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s