Re: Модульное ПО. Плагины, модули, расширения.
От: Alllie  
Дата: 06.05.13 06:19
Оценка:
http://blogs.msdn.com/b/ramkoth/archive/2004/03/08/85802.aspx
Re: Три уровня компонентов: не надо мешать
От: igor-booch Россия  
Дата: 08.05.13 13:13
Оценка:
Рискну предположить с какой проблемой столкнулся автор. Повествование буду вести не в рамках его терминологической системы.
Есть известная пара Document — View. Document — данные и бизнес логика. View — это UI представление данных и бизнес логики. Так вот компоненты уровня Document это не тоже самое что компоненты уровня View, хотя между ними есть определенная связь. Грубо говоря компоненты уровня Document это модули (множества классов). Компоненты уровня View это некоторые UI компоненты или плагины.

Предположим в ТЗ нас просят реализовать набор функциональности Бухгалтерия и Учет Транспортных средств. В Бухгалтерии мы можем просто вести учет денег. А в Учет Транспортных средств мы можем купить машину и сделать связанную проводку в Бухгалтерия. Бухгалтерия может продаваться без Учет Транспортных средств. Но у Учет Транспортных средств не может продаваться без Бухгалтерия.
Выделяем два компонента уровня Document: Document_Бухгалтерия и Document_Учет_транспортных_средств. Document_Учет_транспортных_средств зависит от Document_Бухгалтерия. Document_Бухгалтерия может работать без Document_Учет_транспортных_средств. Но Document_Учет_транспортных_средств не может работать без Document_Бухгалтерия.
Теперь посмотрим что будет на уровне View. У нас будет два компонента: View_Бухгалтерия и View_Учет_транспортных_средств. View_Учет_транспортных_средств также зависит от View_Бухгалтерия. Но хотим ли мы видеть в View_Бухгалтерия финансовые операции с привязкой к транспортирным средствам. Да хотим. Само собой в View_Учет_транспортных_средств мы хотим видеть финансовые операции с каждым транспортным средством. То есть здесь зависимость уже двунаправленная. Как это реализовать? Нужен плагин функциональности Учет_транспортных_средств к Бухгалтерия. То есть на уровне View уже 3 компонента.

А если заказчик еще хочет продавать Учет Транспортных средств без Бухгалтерия? Ну купил авто, а на деньги наплевать. Тогда все усложняется. На уровне Document компоненты Document_Бухгалтерия и Document_Учет_транспортных_средств становятся независимыми. И появляется третий Document компонент, который будет обеспечивать взаимодействие Document_Бухгалтерия и Document_Учет_транспортных_средств. На уровне View компоненты View_Учет_транспортных_средств и View_Учет_транспортных_средств также становятся независимыми. И появляется четвертый View компонент: плагин бухгалтерии к транспортным средствам.

Мне кажется автор смешивает три разных вещи:
набор функциональных подсистем, которые требуются по ТЗ
компоненты уровня Document
компоненты уровня View
Отвечайте на это сообщение, только если у Вас хорошее настроение и в Вашем ответе планируются только конструктивные вопросы и замечания
http://rsdn.ru/Info/rules.xml
Re: Модульное ПО. Плагины, модули, расширения.
От: zerzen  
Дата: 23.05.13 12:59
Оценка:
порекомендую посмотреть спецификации OSGi http://en.wikipedia.org/wiki/OSGi, Eclipse ей следует.
интересная книжка по архитектуре опенсорсных программ "The Architecture of Open Source Applications" Amy Brown and Greg Wilson
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.