Практически каждый разработчик проходит похожий путь.
В начале карьеры решение задачи выглядит как один большой файл. Главное — чтобы программа работала.
Со временем появляются первые функции. Затем — классы, сервисы, утилиты, модули. Постепенно приходит понимание, что большой объем кода сам по себе не является проблемой. Настоящая проблема возникает тогда, когда одна часть кода одновременно отвечает за множество разных задач.
Опытные разработчики стремятся разделять систему на небольшие самостоятельные части с четкими зонами ответственности. Такой код легче читать, тестировать, изменять и повторно использовать.
Интересно, что этот навык не всегда автоматически переносится между разными областями разработки.
Например, backend-разработчик может прекрасно проектировать архитектуру: выделять сервисы, репозитории, доменные модели, соблюдать принципы SOLID и разделения ответственности. Но, создавая Vue-приложение, он нередко начинает писать компоненты на тысячу строк, в которых вперемешку находятся шаблон, бизнес-логика, работа с API, обработчики событий и вспомогательные функции.
Конечно, frontend имеет свою специфику. Поэтому он требует отдельного разговора.
Читать далее