Any problem must be solved at the right level
#principles
В роли консультанта моя работа это задавать правильные вопросы. Самый информативный: "Почему данный функционал реализован на этом уровне?". Поделюсь субъективным разделением уровней.
1️⃣ Уровень бизнес-кода. Реализуется сервисами, моделями, репозиториями, миграциями, шаблонами и т.п. Создает всю бизнес логику, в том числе ее представление на уровне данных. Не может быть перенесен между проектам. Имеет особую коммерческую ценность и защищается NDA.
2️⃣ Уровень кода-приложения. Реализуется контролерами, валидаторами, роутерами, обработчиками ошибок, логгерами и т.д. По сути это код использующий методы фреймворка для вызова бизнес-логики.
3️⃣ Уровень кода-фреймворка. Реализуется набором библиотек и паттернов, с помощью которых команда создает проект. При правильной реализация, этот код может быть переиспользован между проектами. При идеальной реализации: это open-source, качественная тех. документация, 100% покрытие тестами. Именно здесь чаще всего происходит техническая инфляция.
4️⃣ Уровень сервисов и инфраструктуры. Реализуется сторонними API, очередями, базами данных, лоад балансерами, автоскейлерами и т.д. Команда разработки отвечает за выбор и конфигурация, но не за реализацию. Чем больше технических и бизнес задач решено на данном уровне, тем лучше для бизнеса.
5️⃣ Уровень команд и процессов. Реализуется договоренностями между людьми. Отражается прямым образом в архитектуре. Тут важны здравый смысл, дисциплина и умение понять других.
Чем эта философия может быть полезна для #nodejs разработчика? Чтобы определить свое профессиональное развитие! Понимайте где вы хотите находиться. Например, Тимур Шемсединов не любит заниматься прикладным программирование (1️⃣+2️⃣), ему интересно системное программирование(3️⃣+4️⃣)
Post #203
1.44K