Могу ли я сделать заявление выше? Правильно это или нет? делает модульность и зависимости друг от друга или взаимосвязаны? Справка ...«Управление зависимостями для достижения модульности»
ответ
Это разные вещи, но ясно, что они связаны. Например, если у вас есть два (предполагаемых; -) компонента A и B, но A зависит от B и B зависит от A, то они не очень разные компоненты - это странное разделение того, что явно остается один компонент. Чтобы достичь реальной модульности, необходимо действительно учитывать зависимости, и Dependency Inversion является одним из важнейших методов достижения чистых, правильных зависимостей. Я также настоятельно рекомендую this classic book - в то время как наиболее актуальным, если ваш выбранный язык является C++, он содержит множество советов, которые также применимы ко многим другим языкам.
Я согласен с Алексом - если модули запутаны, у вас действительно нет отдельных модулей. А внешние, межмодульные зависимости сложнее контролировать, чем более видимая/локализованная внутренняя структура. На самом деле их чаще всего упускают из виду.
Кроме того, в то время как путаницы являются объективным измеримым анти-шаблоном, вы должны рассмотреть, какие правила зависимостей имеют смысл для вашего конкретного проекта и процессов. Они более субъективны и могут быть определены вами только вами.
Ключ в том, что независимо от того, какие ограничения вы решаете, разработчикам должно быть легко знать, что они существуют, и если/когда они их нарушают, и что кто-то старший предупреждается, если нарушения вносят его в интеграцию/сборку.
Structure101 поддерживает все это, и вы можете также проверить Lattix, SotoArc and SonarJ. Jdepends - проект с открытым исходным кодом, который обнаруживает циклы среди других вещей. Но начните использовать что-то сейчас - код никогда не получает минус запутанный со временем!
Предположим, у меня есть огромный монолитный код. Это зависит от того, нет кода вне его. Я думаю, мы не будем называть это модульным.
Скажем, у меня четкий, худощавый, тонкий корпус кода, который, с другой стороны, зависит от 60 внешних тел кода. Опять же, я думаю, мы не будем называть его модульным.
Модульность, я предполагаю, поэтому, скорее связана с когнитивными ограничениями наших людей, чем с чем-либо еще.
Итак:
- Количество зависимостей должен быть управляемым. Связь?
- Места, где встречаются зависимости, должны быть легко найдены. Изоляция PIN-кода (точки интеграции Atul Apte)?
- Размер кода, который зависит от других, также должен быть управляемым. Сплоченность?
, что означает, может ли заявка «управлять зависимостями для достижения модульности» не является правильной? – komal
Управление зависимостями является необходимым, но не достаточным условием модульности. Если вы поместите все внутри одного большого блоба, межблочных зависимостей не будет (поскольку по определению, что blob включает в себя все), но и, очевидно, никакой модульности вообще! -) –