27-10-2016, 12:20 PM
(Modification du message : 27-10-2016, 12:25 PM par Sephi-Chan.)
Hello,
Je souhaitais réagir à l'article Le défaut des frameworks: tout dans le même langage du blog de Xenos (il me semblait que tu avais fait un bouton dédié pour ça !).
A mon sens, router depuis le serveur n'a pas d'intérêt particulier. Déjà, parce que l'utilisation du .htaccess est propre à Apache, il n'y a pas d'équivalent sur Nginx, par exemple. Dès lors, le faire avec un autre outil complexifie les déploiements en ajoutant plusieurs sources d'autorité.
Si on considère le jeu comme une application, son composant "application Web" n'est qu'un petit bout (il y a sûrement une base de données, des jobs qui tournent, peut-être un daemon, un serveur de push, un message broker, etc.). Dès lors, rien de choquant à ce que le serveur Web délègue une partie du travail à l'application : il traite une partie des URL et laisse les autres à la discrétion de l'application.
Si on veut déléguer à un autre endpoint — par exemple un script appelé très souvent et pour lequel on ne veut pas passer par toute la stack — il est cette fois tout à fait adapté de l'inscrire dans la configuration du serveur Web.
Concernant le choix des outils, certains préfèrent garder le moins possibles de technologies différentes. Si les tâches de fond tournent en Java, l'appli Web en PHP, etc. tu dois te taper la maintenance de beaucoup de paquets, tu ne peux pas réutiliser de code, etc. Le discours qu'on entend parfois sur "le bon outil pour le travail" est souvent une source affreuse de complexité que personne ne veut s'infliger.
Dans l'absolu, on pourrait utiliser un message broker (comme RabbitMQ) en guise d'interface unifié entre plusieurs composants potentiellement écrits dans des langages différents : l'appli Web en PHP, le système de pathfinding en C, etc. Sauf que la communication pose problème (surtout si elle est asynchrone) et la complexité engendrée augmente ta dette technologique : ça ne vaut généralement pas le coût/coup.
En somme, dans bien des cas, c'est très beau philosophiquement, mais ce n'est pas du tout pratique. Et ça, ça compte énormément.
Selon moi, la conclusion est donc terriblement erronée :
Je dirais plutôt :
Les frameworks tendent à vouloir tout faire dans un même langage (rootage, logique métier, modèle, template, etc). Or, chaque outil a ses spécificités qui le rende adapté à un type de tâches précises: vouloir tout lui faire faire est très simple (pour le développeur et l'administrateur système) mais peut être moins performant.
Je souhaitais réagir à l'article Le défaut des frameworks: tout dans le même langage du blog de Xenos (il me semblait que tu avais fait un bouton dédié pour ça !).
A mon sens, router depuis le serveur n'a pas d'intérêt particulier. Déjà, parce que l'utilisation du .htaccess est propre à Apache, il n'y a pas d'équivalent sur Nginx, par exemple. Dès lors, le faire avec un autre outil complexifie les déploiements en ajoutant plusieurs sources d'autorité.
Si on considère le jeu comme une application, son composant "application Web" n'est qu'un petit bout (il y a sûrement une base de données, des jobs qui tournent, peut-être un daemon, un serveur de push, un message broker, etc.). Dès lors, rien de choquant à ce que le serveur Web délègue une partie du travail à l'application : il traite une partie des URL et laisse les autres à la discrétion de l'application.
Si on veut déléguer à un autre endpoint — par exemple un script appelé très souvent et pour lequel on ne veut pas passer par toute la stack — il est cette fois tout à fait adapté de l'inscrire dans la configuration du serveur Web.
Concernant le choix des outils, certains préfèrent garder le moins possibles de technologies différentes. Si les tâches de fond tournent en Java, l'appli Web en PHP, etc. tu dois te taper la maintenance de beaucoup de paquets, tu ne peux pas réutiliser de code, etc. Le discours qu'on entend parfois sur "le bon outil pour le travail" est souvent une source affreuse de complexité que personne ne veut s'infliger.
Dans l'absolu, on pourrait utiliser un message broker (comme RabbitMQ) en guise d'interface unifié entre plusieurs composants potentiellement écrits dans des langages différents : l'appli Web en PHP, le système de pathfinding en C, etc. Sauf que la communication pose problème (surtout si elle est asynchrone) et la complexité engendrée augmente ta dette technologique : ça ne vaut généralement pas le coût/coup.
En somme, dans bien des cas, c'est très beau philosophiquement, mais ce n'est pas du tout pratique. Et ça, ça compte énormément.
Selon moi, la conclusion est donc terriblement erronée :
Citation :Les frameworks tendent à vouloir tout faire dans un même langage (rootage, logique métier, modèle, template, etc). Or, chaque langage a ses spécificités qui le rende adapté à un type de tâches précises: vouloir tout lui faire faire est risqué et complexe.
Je dirais plutôt :
Les frameworks tendent à vouloir tout faire dans un même langage (rootage, logique métier, modèle, template, etc). Or, chaque outil a ses spécificités qui le rende adapté à un type de tâches précises: vouloir tout lui faire faire est très simple (pour le développeur et l'administrateur système) mais peut être moins performant.