Quando comecei a aprender PHP (há cerca de 5 ou 6 anos), aprendi sobre o Ajax e passei pelas "fases":
- Seu servidor retorna dados HTML e você os coloca dentro do innerHTML de um DOM
- Você aprende sobre os formatos de transferência de dados como XML (e diz "oooh, então é para isso que é usado) e depois o JSON.
- Você retorna JSON e constrói sua interface do usuário usando o código JavaScript baunilha
- Você muda para o jQuery
- Você aprende sobre APIs, cabeçalhos, códigos de status HTTP, REST , CORS e Bootstrap
- Você aprende as estruturas de SPA e de front-end ( React , Vue.js e AngularJS ) e o padrão da API JSON.
- Você recebe algum código legado da empresa e, ao inspecioná-lo, descobre que eles fazem o que é descrito na etapa 1.
Enquanto trabalhava com essa base de código herdada, nem pensei em retornar HTML (quero dizer, somos profissionais agora, certo?), Por isso tive dificuldade em procurar o ponto de extremidade JSON que estava retornando os dados que as chamadas do Ajax são preenchidas. Foi só quando perguntei ao "programador" que ele me disse que estava retornando HTML e sendo anexado diretamente ao DOM com innerHTML.
Claro, isso era difícil de aceitar. Comecei a pensar em maneiras de refatorar isso nos pontos de extremidade JSON, pensando em testar a unidade dos pontos de extremidade e assim por diante. No entanto, essa base de código não possui testes. Nem um único. E são mais de 200 mil linhas. É claro que uma das minhas tarefas inclui propor abordagens para testar a coisa toda, mas no momento não estamos resolvendo isso ainda.
Portanto, não estou em nenhum lugar, em um canto, me perguntando: se não temos nenhum teste, não temos razão específica para criar esse ponto de extremidade JSON (já que não é "reutilizável": ele literalmente retorna dados que se encaixam apenas nessa parte do aplicação, mas acho que isso já estava implícito, pois ... retorna dados HTML).
O que exatamente há de errado em fazer isso?