Où est passé le KISS en développement front ? post
Nov 15 2017 -
Je suis tombé en admiration devant ces deux tweets :
do you ever stop and think, maybe people are over-thinking/engineering front-end development?
— Ben Howdle (@ben_howdle) November 13, 2017
“Premature optimization is the root of all evil”, which we apply to everywhere but front-end development. We seem to start with an overly complex baseline and work up from there.
— Ben Howdle (@ben_howdle) 13 novembre 2017
Troller l'écosystème Javascript sur Twitter, c'est facile et répandu. Mais ces deux tweets là ne tirent pas sur l'ambulance comme les autres. Ici on ne critique pas à quel point c'est complexe et moche. On se pose plutôt la question "est-ce que cette complexité nous est tout le temps nécessaire ?".
J'ai pondu une interface un poil chiadée il y a quelques mois. Elle se trouve ici.
Cette page permet de personnaliser une montre en interchangeant ses différents composants. J'en suis plutôt fier au niveau ergonomie (ne parlons pas du design austère) car :
- ma spécialité c'est le back, le front n'est pas ma tasse de thé ;
- les tests utilisateurs ont été concluants ;
- on a reçu de bons commentaires de la part de "gens du métier" ;
- on a observé les utilisateurs et pissé de joie en les voyant se prendre au jeu de la personnalisation en jouant frénétiquement avec l'interface.
Les technos utilisées pour cette page : du Javascript à la vanille et quelques lignes de JQuery (pas forcément indispensables de surcroît). C'est moins sexy à dire que Du Coffee Script couplé à React et Ember compilé avec Gulp qui tourne sous Electron jantes alliages antenne chromée. Je fais du name dropping alors que si ça se trouve, la moitié de ces trucs est déjà has-been, j'en sais rien.
Et le plus horrible, dont je suis en plus fier : les assets sont compilés avec Assetic, le vieux bundle pas loin d'être déprécié pour Symfony2. Flemme absolue d'installer une stack Node ou un de ses 400 forks sur mes environnements de dev et déploiement, tout ça pour coller 3 fichiers ensemble et faire du rechercher/remplacer à certains endroits.
Je fais tous ces choix de vieux con car c'est infiniment plus simple pour moi. Pas besoin de stack JS à laquelle je ne comprends rien pour compiler mes assets. Au final, malgré la certaine complexité de la page, ça reste un pauvre écran qui affiche et cache des trucs quand on clique sur des machins. Je n'ai pas besoin d'un framework de déglingo pour ces pétouilles. On est toujours sur un site web, pas une "application", chose qui a tendance à se perdre ces temps ci : on fait de l'application web à foison, de la Single Page App à gogo, tout ça pour consulter le programme TV ou la météo.
Un jour ma page migrera peut-être vers une stack JS plus musclée, pour des histoires de complexité de code et de maintenabilité, car ces outils sont évidemment intéressants dans certains cas. Mais j'espère que ça sera le plus tard possible, car à ce moment là, cette page deviendra lente :
almost everything on computers is perceptually slower than it was in 1983
— Gravis! (@gravislizard) 6 novembre 2017
amber-screen library computer in 1998: type in two words and hit F3. search results appear instantly.
— Gravis! (@gravislizard) 6 novembre 2017
now: type in two words, wait for an AJAX popup. get a throbber for five seconds. oops you pressed a key, your results are erased
— Gravis! (@gravislizard) 6 novembre 2017
(et je recommande de lire la suite du thread)