Bonjour.
Lorsque je développe en C++ pour mes applications, je crée des fenêtres, des boutons des grilles et tout un tas d'autres objets à l'écran.
Je crée des contrôleurs des modèles des façades, etc.
Et je fais confiance à mon framework pour utiliser la méthode optimale pour dessiner la fenêtre le bouton ou je ne sais quoi d'autre.
Lorsque je fais une application web, je crée des panels, des boutons des grilles et tout un tas d'autres objets à l'écran.
Je crée des contrôleurs des modèles des façades, etc.
Et je (ne) fais (pas trop) confiance à mon framework pour utiliser la méthode optimale pour dessiner le panel, le bouton ou je ne sais quoi d'autre.
En fait le framework que j'utilise aujourd'hui le fait plutôt pas mal. Le rendu est plutôt bon en tout cas il correspond au STD de ma boite. Par contre si on met ne nez dans le cambouis on constate vite que le HTML généré n'est pas des meilleurs. Du point de vue Dev ça n'a aucune importance vu qu'on manipule des panels de boutons de grilles, etc. et pas de table de div ou tout autre objet du DOM.
Bref on se retrouve exactement comme en C++, on créé une fenêtre et on la manipule sans savoir s'il a utilisé un objet rectangle ou 4 droites. Dans mon cas je créer un panel et je manipule le panel. Si le framework décide de créer des tables dans des tables parce qu'il s’exécute sur un vieux navigateur et qu'il crée des div dans les navigateurs modernes, je ne le vois pas.
Mais arrive un moment où la taille de l'application impose de se poser la question de la charge (réseau, mémoire, cpu) et là effectivement le framework que j'utilise n'est pas très optimal. Bien au contraire.
Du coup j’évalue d'autres frameworks.
Je viens de passer beaucoup de temps dessus Angular et j'ai l'impression de revenir en arrière. Question structuration rien à redire, mais question wdget c'est le désert. Pour le moindre affichage, il faut replonger dans le cambouis. Ça me rappelle les débuts de la programmation graphique ou il fallait tout dessiner.
Il y a bien les directives, mais quel intérêt.
Aujourd'hui j'écris un json qui décrit mon widget (liste d’attributs, taille, resisable, présence de menu contextuel, etc.) et le framework produit une HTML le représentant.
Tout comme avec Angular mon contrôleur le prend en charge et s'occupe de toute question communication entre la vue et le contrôleur.
Avec Angular j'ai l'impression que je dois soit écrire moi même le HTML. Dans une production industrielle, on ne fignole pas chaque grille. On instancie une grille générique qu'on paramètre. Du coup pour les quelques centaines de grilles de mes applications je devais écrire le HTML cela reviendrait à faire du copier-coller.Soi j'utilise des directives. Dans ce cas j'écris du HTML qui va être remplacé par un autre.
J'avoue ne pas comprendre l'utilité d'un tel procédé. Pourquoi ne pas créer directement ce dont on a besoin ?
Si je regarde la taille de mes applications et la richesse actuelle de mes interfaces, la méthode de travail d'Angular me semble désastreuse. Il me faudrait des centaines de jours juste pour l'affichage. Avec tous les risques d'erreurs que cela implique.
Il y a un autre point qui m'a surpris.
Dans mes développements l'application cliente (js) s'occupe de l'affichage de fonction simple et de traitements locaux. Le serveur lui se charge des traitements lourds et de la persistance. Du coup lorsque je développe la partie cliente je ne présume en rien de ce que va faire des données le serveur et j'invoque une API de service. Ce qui me semble être une bonne chose et que je retrouve un peu partout dans les boites que je connais.
Du coup lorsque j'ai lu à mainte reprise la préconisation que lorsqu'on utilise Angular il ne faut déléguer au serveur que Select Insert Update et Delete et que tout le reste était pris en charge par Angular. J’ai fait un bon. J'imagine mal réécrire une application qui fait appel au service "Consolider les comptes de l'ensemble du groupe au niveau planétaire pour la période écoulée" en effet je vois mal dans cette invocation de Select Insert Update ou Delete. Où alors on charge les téraoctets de données financières dans le navigateur. Soyons sérieux. Il est évident que Angular n'impose pas une telle contrainte. Mais du coup j'ai cherché à en savoir plus. Pourquoi une telle préconisation est présente dans tant de tutoriels sur Angular ? La réponse m'est assez vite apparue. La très grosse majorité des exemples ou des tutoriels tourne autour d'un CRUD qu'il faut persister. Or cela représente une infime partie des activités de mes applications.
Je ne suis donc pas très convaincu. De ce que j'ai vu ce que fait Angular il le fait bien. Très bien même.
Mais je ne pense pas qu'il soit adapté à mon besoin.
Production industrialisée d'application standardisée toute la même ergonomie toutes les mêmes widgets, proposant des IHM permettant d'invoquer des API de service sur le SI.
A+JYT
Partager