Проектирование бэкенда

Бэкенд не смотря на множество возможностей его реализации должен быть максимально простым, чтобы добавление новых возможностей не требовало больших усилий.

В связи с этим бэкенд должен решать ограниченное количество проблем. Часть проблем необходимо перенести на клиент, для того чтобы улучшить отзывчивость бэкенда.

Так как сейчас преимущественно используются языки со статической типизацией, желательно изначально проектировать апи используя технологии типа flatbuffers или protobuf. Они не только помогут улучшить отзывчивость бэкенда за счет меньших расходов на десериализацию данных но и помогут делать десериализацию в тех языках где рефлексия не развита, или нет единого понимания того как делать десериализацию данных.

Ответ бэкенда на разные запросы должен быть как можно более определённым(одинаковым в разных запросах).

Все ответы на запросы get должны быть вида {dataList:[], totalCount:0, error:"", descriptiveError:""}.

error и descriptiveError появляются только если код ответа не 200. Фронт должен обрабатывать особый случай когда код ответа не 200, но ответ не соответствует заданной форме. Фронт выводит пользователю текст error, сопоставив его через словарь переводчик в перевод, который будет виден пользователю. descriptiveError это ошибка для разработчиков, чтобы было легче проводить отладку, на production его можно оставить, или отсечь с помощью middleware.

Last updated

Was this helpful?