Цитата:
Сообщение от
ax_mct
Оverengineering возможно потому что салон автомобиля перепутали с двигателем.
Код-это не салон и не двигатель, это чертежи и документы по которым компилятор и установщик строит салон и двигатель.
Соответственно примерно по таким же законам надо работать.
Какой документ лучше, вот такой?
Цитата:
- У лисы длинный хвост.
- У бобра длинный хвост.
- Кенгуру имеет длинный хвост.
- Такой же хвост и у собаки.
Или вот такой:
Цитата:
У этих животных хвосты длинные
- Лиса
- Бобер
- Кенгуру
- Cобака.
Однозначного ответа нет. Весь список целиком проще понять во втором случае. Внести изменения касающееся только бобра проще в первом случае.
Если надо поддерживать всех животных (допустим добавить, что хвост покрыт шерстью), то изменение требует анализа всех вариантов.
Если нас волнует только кенгуру нам проще найти поиском ее и уточнить какой хвост у него.
Могут быть промежуточные варианты - например нас волнуют все, кроме кенгуру.
Так же и фреймворки - например SysOperation эквивалентен разделу в начале документа, где написано:
- бывают операции
- у операций бывают параметры
- если не сказано обратного, то надо :
- загрузить параметры из SYsLastValue
- спросить параметры согласно типам
- сохранить их в SysLastValue
- выполнить операцию
Далее для конкретной операции описываются параметры (DataContract) и что она делается. Диалог, сохранение и восстановление уже описаны и не надо повторять. Не надо уточнять как работать с разными версиями (там хранится по именам).
Если хочется, особенного, можно описать это или атрибутами или кодом в UI Builder.
Описанные параметры и операцию можно использовать из других частей документа без дополнительных описаний.
RunBase эквивалентен фразе в начале документа:
"Есть операции, которые могут показывать диалог и запускаться. Как связаны "показать диалог" и "запуститься" я не знаю, так же операция может сохранить состояние и восстановить ее, как именно - лично дело каждой операции"
То есть надо каждый раз повторять:
метод main, диалог (создания и получения), сохранение и восстановление и работу с версиями (все же аккуратно поддерживают восстановление из старых версий в unpack, да?). Я вот конкретно иногда забывал добавить строчку в getFromDialog или копировал но не правил и от этого были ошибки.
P.S. Это тут было?
https://www.youtube.com/watch?v=GRr4xeMn1uU