Некоторые проблемы, которые могут возникнуть при неправильном делении программы на модули:
- Слишком мелкие модули. 1 Это может привести к повышенной сложности сборки и увеличению шаблонного кода. 1 В результате получится громоздкая кодовая база, которую трудно поддерживать. 1
- Слишком большие модули. 1 В таком случае можно упустить преимущества модульности. 1 Например, в небольшом проекте можно поместить слой данных в один модуль, но по мере роста проекта может возникнуть необходимость разделить репозитории и источники данных на отдельные модули. 1
- Смешение модулей разных типов. 3 Например, если в один модуль поместить функции вывода данных на экран и работы с устройством, то в дальнейшем может быть затруднительно использовать индикатор другого типа. 3
- Использование внешних переменных из верхних модулей. 3 В таком случае при переносе модуля в другую программу придётся не только доопределять какие-то переменные, но и восстанавливать механизмы их работы. 3
- Ошибки компоновщика. 5 При разделении программы на модули могут возникать ошибки линкера, например «ссылка на неразрешённый внешний символ» или «ххх уже определён в…». 5
Чтобы избежать проблем, при разделении программы на модули нужно учитывать размер кодовой базы и её относительную сложность. 1 Рекомендуется, чтобы вся программа состояла из слабо связанных фрагментов. 2