vitali1995
@vitali1995

Как организовать структуру модульных проектов?

Столько шумных статей о неграмотном использовании модульной системы... Вот к примеру, есть функции в классе, классы в локальных модулях, которые в свою очередь объединяются в модули публикуемые. Где границы этих масштабов? Т.е. как понять, где модуль оставлять локальным, где выносить глобально, а где сделать класс как часть другого модуля? Кроме этого, хотелось бы как-то упорядочить эти модули. Они конечно позволяют организовать пространство имён для внутренних функций и переменных, но сами захламождают пространство пакетов.
  • Вопрос задан
  • 198 просмотров
Пригласить эксперта
Ответы на вопрос 2
amerov
@amerov
Web Developer
Для начала изучите SOLID принципы
https://scotch.io/bar-talk/s-o-l-i-d-the-first-fiv...
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Найдите баланс между Coupling и Coheasion.

Забудьте о классах и будет проще. Тогда все - модули. Приложение - модуль. Оно состоит из других модулей. Те используют другие модули и так далее организуем иерархию модулей. Классы это просто способ создания новых типов данных, для организации кода оно используется только в языках, где нет модулей (не ООП, а просто структурная единица кода, как в C++ например).

Они конечно позволяют организовать пространство имён


Пространства имен нужны тогда, когда все лежит в глобальной области видимости. Когда все существует в контексте модулей оно не нужно. У вас и так есть изоляция необходимая.

Вся задача сводится к тому, чтобы максимально порезать систему таким образом, чтобы полностью контролировать кому что доступно и кто чем пользуется. Декомпозиция в чистом виде, ну и инкапсуляция.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы