Cuando empecé a aprender PHP (hace unos 5 o 6 años) aprendí sobre Ajax , y pasé por "las fases":
- Su servidor devuelve datos HTML y los coloca dentro de un DOM's innerHTML
- Aprendes sobre formatos de transferencia de datos, como XML (y dices "oooh, para eso es para lo que se usa) y luego JSON.
- Devuelves JSON y construyes tu interfaz de usuario usando el código de JavaScript de vainilla
- Te mueves a jQuery
- Aprendes sobre API, encabezados, códigos de estado HTTP, REST , CORS y Bootstrap
- Aprendes SPA , y los marcos frontend ( React , Vue.js , y AngularJS ) y el estándar de API JSON.
- Recibirá algún código heredado de la empresa y, al inspeccionarlo, encontrará que hace lo que se describe en el paso 1.
Mientras trabajaba con esta base de código heredada, ni siquiera consideré que podía devolver HTML (quiero decir, ahora somos profesionales, ¿no?), así que me costó mucho encontrar el punto final JSON que regresaba Los datos que el Ajax llama rellenan. No fue hasta que le pregunté al "programador" que me dijo que estaba devolviendo HTML y que se adjuntaba directamente al DOM con innerHTML.
Por supuesto, esto fue difícil de aceptar. Comencé a pensar en maneras de refactorizar esto en los puntos finales JSON, pensando en la unidad de prueba de los puntos finales y así sucesivamente. Sin embargo, este código base no tiene pruebas. Ni uno solo. Y es de más de 200k líneas. Por supuesto, una de mis tareas incluye proponer enfoques para probar todo el asunto, pero en este momento todavía no estamos abordando eso.
Así que no estoy en ninguna parte, en una esquina, preguntándome: si no tenemos ninguna prueba en absoluto, no tenemos ninguna razón en particular para crear este punto final JSON (ya que no es "reutilizable": literalmente devuelve datos que solo se ajustan a eso parte de la aplicación, pero creo que esto ya estaba implícito ya que ... devuelve datos HTML).
¿Qué exactamente está mal al hacer esto?