Quando ho iniziato a studiare PHP (circa 5 o 6 anni fa) ho imparato a conoscere Ajax , e ho passato "le fasi":
- Il tuo server restituisce dati HTML e lo metti in un DOM innerHTML
- Scopri i formati di trasferimento dei dati come XML (e dì "oooh così CHE è quello per cui è usato) e poi JSON.
- Si restituisce JSON e si costruisce l'interfaccia utente utilizzando il codice JavaScript vaniglia
- Passi a jQuery
- Scopri le API, le intestazioni, i codici di stato HTTP, REST , CORS e Bootstrap
- Si apprende SPA e i framework frontend ( Reagire , Vue.js e AngularJS ) e lo standard API JSON.
- Ricevi un codice legacy aziendale e, dopo averlo controllato, scopri che fanno ciò che è descritto nel passaggio 1.
Mentre lavoravo con questo codebase legacy, non pensavo nemmeno che potesse restituire HTML (voglio dire, ora siamo professionisti, giusto?), quindi ho avuto difficoltà a cercare l'endpoint JSON che stava tornando 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, era difficile da accettare. Ho iniziato a pensare ai modi per rifattorizzare questo in endpoint JSON, pensando al test unitario sugli endpoint e così via. Tuttavia, questo codebase non ha test. Non uno solo. Ed è oltre 200k linee. Ovviamente uno dei miei compiti include la proposta di approcci per testare il tutto, ma al momento non lo stiamo ancora affrontando.
Quindi non sono da nessuna parte, in un angolo, a chiedermi: se non abbiamo alcun test, quindi non abbiamo alcun motivo particolare per creare questo endpoint JSON (poiché non è "riutilizzabile": restituisce letteralmente i dati che si adattano solo a quello parte dell'applicazione, ma penso che questo fosse già implicito dal momento che ... restituisce dati HTML).
Cosa esattamente è sbagliato nel fare questo?