Слепое проектирование: Бэкэнд не должен знать о кнопках.
Одна из самых частых ошибок новичков — проектировать серверную логику, держа перед глазами макет из Figma. Им кажется, что если в дизайне есть кнопка «Отправить», то и сервер должен ждать «нажатия кнопки».
На самом деле, хороший бэкенд проектируется в состоянии полной сенсорной депривации.
🙈 Сервер не видит мир
Представь, что бэкенд — это мозг в банке. У него нет глаз, он не знает про CSS, анимации и даже про то, существует ли экран. Он общается с миром только через записки (API-запросы).
Когда ты пишешь код сервера, ты должен исходить из максимальной неопределенности:
➖ Кто прислал запрос? Браузер? Мобилка? Скрипт хакера из терминала?
➖ Пользователь нажал кнопку один раз или заспамил её 100 раз за секунду?
➖ Он вообще заполнял форму или просто подделал HTTP-пакет?
Ловушка «Фронтенд-зависимости»
Если ты строишь бэкенд «от фронтенда», получается хрупкая конструкция.
Плохой пример: Делать эндпоинт /save-blue-form.
Почему это плохо? Завтра дизайнер сделает форму красной или разобьет её на три шага, и твой бэкенд-код внезапно станет «логически тупым». 🤷♂️
💡 Запомните: Серверу плевать на форму, ему важен контракт.
Бэкенд должен говорить: «Мне не важно, как ты это собрал. Дай мне user_id и amount. Если данные валидны и у пользователя есть права — я запишу это в базу. Нет — иди лесом».
Когда ты «ослепляешь» бэкенд сознательно, ты получаешь три суперсилы:
1. Устойчивость: Ты не доверяешь фронтенду. Ты валидируешь всё на сервере, потому что «снаружи» может прийти любой мусор.
2. Масштабируемость: Сегодня твой бэкенд управляет Web-сайтом. Завтра вы выпускаете приложение на iOS. Если бэкенд «слепой» и работает только с логикой данных — понадобится ноль усилий по переделке. Все итак работает.
3. Тестируемость: Тебе не нужно открывать браузер, чтобы проверить код. Ты просто отправляешь на бэкэнд запрос с JSON и смотришь результат.
Проектируй бэкенд так, будто фронтенда не существует и вовсе. Представь, что твой единственный клиент — это злой хакер, который шлет тебе запросы через curl.
Если система выстоит и сохранит данные консистентными в таких условиях — значит, ты спроектировал отличный мозг. 💪
Если что-то всё ещё звучит запутанно — пиши вопросы в комментах, я обязательно отвечу. А если всё разложилось по полочкам — ставь 🔥, так я пойму, что пост был полезен
10МДК
Post #21
121

- 🔥 7
- ❤ 6
- ❤🔥 1