Глава 6. Разделить проект на участки работы
Айсберги
Раздел 8 из 10 · 1 мин
Но иногда работы на бэкенде намного больше, чем в интерфейсе, или наоборот. Например, новая функция, которая требует от пользователя лишь отправить форму, может нуждаться в очень сложной бизнес-логике, чтобы вернуть правильный ответ. Такая работа похожа на айсберг.


В случае айсбергов может быть полезно выделить интерфейс в отдельный участок работы, если он не связан взаимозависимостями со сложной частью бэкенда. Если бэкенд достаточно сложен, его можно разделить на отдельные области ответственности и превратить их в участки работы. В таких случаях цель — определить несколько частей, которые можно завершать и соединять поэтапно, вместо того чтобы до последнего момента ждать, скрестив пальцы в надежде, что всё сойдётся.
Иногда встречаются и перевёрнутые айсберги, где интерфейс очень сложен, а бэкенд проще. Например, модель данных календаря несложная, но взаимодействие, связанное с отображением многодневного события и его переносом через ячейки сетки, может потребовать много времени и решения множества проблем.
Прежде чем признать айсберг — во фронтенде или бэкенде — данностью, мы всегда ставим его под сомнение. Действительно ли сложность необходима и её нельзя уменьшить? Нужен ли нам этот замысловатый интерфейс? Можно ли иначе построить процесс на бэкенде, чтобы у него было меньше взаимозависимостей с остальной системой?