Quand j'ai commencé à apprendre PHP (il y a 5 ou 6 ans), j'ai découvert Ajax et j'ai traversé "les phases":
- Votre serveur renvoie les données HTML et vous les insérez dans un code innerHTML du DOM.
- Vous en apprendrez plus sur les formats de transfert de données tels que XML (et dites «oooh, c’est pour cela qu’il est utilisé), puis JSON.
- Vous renvoyez JSON et construisez votre interface utilisateur à l'aide de code JavaScript vanilla
- Vous passez à jQuery
- Vous en apprendrez plus sur les API, les en-têtes, les codes d’état HTTP, REST , CORS et Bootstrap
- Vous apprendrez les structures SPA et frontend ( React , Vue.js et AngularJS ) et le standard JSON API.
- Vous recevez un code d'entreprise hérité et constatez, lors de l'inspection, qu'il fait ce qui est décrit à l'étape 1.
Comme je travaillais avec cet ancien code, je ne pensais même pas qu'il pouvait renvoyer du HTML (je veux dire, nous sommes des professionnels maintenant, n'est-ce pas?), J'ai donc eu de la difficulté à rechercher le point de terminaison JSON qui renvoyait les données les appels Ajax peuplent. Ce n'est que lorsque j'ai demandé au "programmeur" qu'il m'a dit qu'il retournait du HTML et qu'il était ajouté directement au DOM avec innerHTML.
Bien sûr, c'était difficile à accepter. J'ai commencé à réfléchir à des moyens de reformuler cela dans les points de terminaison JSON, en pensant à l'unité qui testait les points de terminaison, etc. Cependant, cette base de code n'a aucun test. Pas un seul. Et c'est plus de 200 000 lignes. Bien sûr, l’une de mes tâches consiste à proposer des approches pour tester l’ensemble, mais pour le moment, nous ne sommes pas encore en train de nous y attaquer.
Je ne me demande donc pas, dans un coin, si nous n’avons aucun test, nous n’avons donc aucune raison particulière de créer ce point de terminaison JSON (car il n’est pas "réutilisable": il renvoie littéralement des données qui ne tiennent que sur cette partie de la application, mais je pense que cela était déjà implicite puisqu'il renvoie ... des données HTML).
Qu'est- ce qui ne va pas avec ça?