Показать сообщение отдельно
Старый 22.06.2017, 13:19   #147  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Bobkov Посмотреть сообщение
Из моего скромного опыта, ответ зависит от того, как пойдут требования для изменений.
Я совершенно согласен с этим, есть еще факторы.

Цитата:
Если требования для изменений пойдут построчно (наиболее реалистичный вариант, IMHO), то удобнее будет документ с независимыми строками. Если же требования для изменений будут относиться ко всем строкам сразу (маловероятный вариант, IMHO), то удобнее окажется документ "У этих животных хвосты длинные".
Если есть возможность вносить исключения и уточнения, то может быть и первый более понятен. (Документах часто ичспользуют такие штуки, в SysOperation можно добавить кастомную обработку на диалог, вызов или упаковку)

Мне кажется тут первый список понятнее - ясно кто подчиняется общему умолчанию а кто нет.

У этих животных хвосты длинные:
- Лиса
- Бобер
- Кенгуру (кроме австралийских короткохвостых)
- Собака

- У лисы длинный хвост.
- У бобра недлинный хвост.
- Кенгуру имеет длинный хвост (кроме австралийских короткохвостых).
- Такой же хвост и у собаки.

Цитата:
То есть, выбор варианта документа обусловлен нашим прогнозом на то, как в будущем пойдут требования для изменения проектируемой системы.
Еще один аспект - это насколько легко перейти от одного варианта к другому. В случае документа, для возникновения дублирования, достаточно просто провести замену начала строки в куске на общую фразу. Обратное преобразование почти никогда нельзя сделать автоматически - формы могут отличаться при том же содержании.

В случае кода, мы можем тоже провести замену, или воспользоваться каким-нибудь инструментом для рефакторинга (рефакторинги начинающиеся с inline)

Цитата:
И тут, о чудо, на практике часто оказывается, что копипаста совсем не так уныла как казалась, потому что она дает возможность вносить изменения независимо от других частей системы, что повышает надежность системы.
IMHO, конечно
Есть coupling и cohesion - если изменения надо как правило делать в двух местах сразу, иначе это будет ошибкой, то это не повышает надежности.

Я не против дублирования в принципе, просто оно должно быть обосновано.