Когда я впервые начал изучать PHP (около 5 или 6 лет назад), я узнал об Ajax и прошел «фазы»:
- Ваш сервер возвращает данные HTML, и вы помещаете их в innerHTML DOM
- Вы узнаете о форматах передачи данных, таких как XML (и говорите «ооо, значит, для этого он и используется»), а затем JSON.
- Вы возвращаете JSON и создаете свой пользовательский интерфейс, используя ванильный код JavaScript
- Вы переходите в JQuery
- Вы узнаете об API, заголовках, кодах состояния HTTP, REST , CORS и Bootstrap
- Вы изучаете SPA и среды интерфейса ( React , Vue.js и AngularJS ) и стандарт JSON API.
- Вы получаете корпоративный устаревший код и, осмотрев его, обнаружите, что они делают то, что описано в шаге 1.
Работая с этой унаследованной кодовой базой, я даже не думал, что она может возвращать HTML (я имею в виду, мы теперь профессионалы, верно?), Поэтому мне было трудно искать конечную точку JSON, которая возвращала бы данные, которые Аякс призывает заселять. Только когда я спросил «программиста», он сказал, что он возвращает HTML и добавляется непосредственно в DOM с помощью innerHTML.
Конечно, это было трудно принять. Я начал думать о способах рефакторинга этого в конечные точки JSON, думал о модульном тестировании конечных точек и так далее. Однако эта кодовая база не имеет тестов. Ни одного. И это более 200 тысяч строк. Конечно, одна из моих задач включает в себя предложение подходов для тестирования всего этого, но на данный момент мы еще не занимаемся этим.
Так что я нигде в углу не задумываюсь: если у нас нет никаких тестов, то у нас нет особой причины для создания этой конечной точки JSON (поскольку она не «повторно используется»: она буквально возвращает данные, которые помещаются только в эту часть приложение, но я думаю, что это уже подразумевалось, поскольку он ... возвращает данные HTML).
Что именно не так с этим?