Cuando comencé a aprender PHP (hace unos 5 o 6 años) aprendí sobre Ajax y pasé por "las fases":
- Tu servidor devuelve datos HTML y los pones dentro del innerHTML de un DOM
- Aprenderá sobre los formatos de transferencia de datos como XML (y dirá "oooh, para eso ES para lo que se usa") y luego JSON.
- Devuelve JSON y crea su interfaz de usuario utilizando el código JavaScript de vainilla
- Te mudas a jQuery
- Aprenderá sobre API, encabezados, códigos de estado HTTP, REST , CORS y Bootstrap
- Aprende los marcos de SPA y frontend ( React , Vue.js y AngularJS ) y el estándar JSON API.
- Recibe un código heredado de la empresa y, al inspeccionarlo, descubre que hacen lo que se describe en el paso 1.
Mientras trabajaba con esta base de código heredada, ni siquiera consideré que podría devolver HTML (quiero decir, somos profesionales ahora, ¿verdad?), Así que tuve dificultades para buscar el punto final JSON que devolvía los datos que las llamadas de Ajax pueblan. No fue hasta que le pregunté al "programador" que me dijo que estaba devolviendo HTML y que se estaba agregando directamente al DOM con innerHTML.
Por supuesto, esto fue difícil de aceptar. Comencé a pensar en formas de refactorizar esto en los puntos finales JSON, pensando en la prueba unitaria de los puntos finales, etc. Sin embargo, esta base de código no tiene pruebas. Ni uno solo. Y tiene más de 200 mil líneas. Por supuesto, una de mis tareas incluye proponer enfoques para probar todo, pero por el momento todavía no lo estamos abordando.
Así que no estoy en ninguna parte, en un rincón, preguntándome: si no tenemos pruebas de ningún tipo, entonces no tenemos una razón particular para crear este punto final JSON (ya que no es "reutilizable": literalmente devuelve datos que solo se ajustan a esa parte del aplicación, pero creo que esto ya estaba implícito ya que ... devuelve datos HTML).
¿Qué tiene de malo exactamente hacer esto?