Quando ho iniziato a studiare PHP (circa 5 o 6 anni fa) ho appreso dell'Ajax e ho attraversato "le fasi":
- Il server restituisce dati HTML e si mette dentro una di DOM innerHTML
- Si impara a conoscere i formati di trasferimento di dati come XML (e si dice "oooh, quindi è quello per cui viene utilizzato) e quindi JSON.
- Si restituisce JSON e si crea l'interfaccia utente utilizzando il codice JavaScript vanilla
- Passa a jQuery
- Informazioni su API, intestazioni, codici di stato HTTP, REST , CORS e Bootstrap
- Apprendi SPA e framework di frontend ( React , Vue.js e AngularJS ) e lo standard API JSON.
- Riceverai un codice legacy aziendale e dopo averlo ispezionato, scoprirai che fanno ciò che è descritto nel passaggio 1.
Mentre lavoravo con questa base di codice legacy, non ho nemmeno pensato che potesse restituire HTML (voglio dire, siamo professionisti ora, giusto?), Quindi ho avuto difficoltà a cercare l'endpoint JSON che restituiva i dati che le chiamate Ajax popolano. Non è stato fino a quando ho chiesto "al programmatore" che mi ha detto che stava restituendo HTML e che veniva aggiunto direttamente al DOM con innerHTML.
Certo, questo era difficile da accettare. Ho iniziato a pensare ai modi per refactificare questo negli endpoint JSON, pensando alle unità di test degli endpoint e così via. Tuttavia, questa base di codice non ha test. Non uno solo. Ed è oltre 200k linee. Naturalmente uno dei miei compiti include la proposta di approcci per testare il tutto, ma al momento non lo stiamo ancora affrontando.
Quindi, in nessun angolo, mi chiedo: se non abbiamo alcun test, quindi non abbiamo motivi particolari per creare questo endpoint JSON (poiché non è "riutilizzabile": restituisce letteralmente dati che si adattano solo a quella parte del applicazione, ma penso che questo fosse già implicito poiché ... restituisce dati HTML).
Che cosa esattamente è sbagliato nel fare questo?