Какие существуют шаблоны проектирования расширяемости и каковы их плюсы и минусы? - PullRequest
0 голосов
/ 09 марта 2011

Я работаю над новой системой CMS и хочу, чтобы ее ядро ​​было расширено или перезаписано для конкретных клиентов. Информация там редкая , или я не выгляжу достаточно хорошо, но мне нужен практический опыт от других разработчиков.

Ответы [ 2 ]

2 голосов
/ 09 марта 2011

Что вы, вероятно, ищете при разработке CMS, так это то, насколько она подключаема. Ваши точки расширения хорошо продуманы и продуманы. Проверьте следующие ссылки для аспекта расширяемости

  1. Сменная архитектура
  2. Архитектура и дизайн

Для стандартных конструктивных аспектов, таких как Принцип открытия / закрытия, разделение интерфейса Принцип должен помочь.

В конечном итоге речь идет о том, насколько подключаема ваша CMS и сколько усилий ваши потребители базовой CMS должны приложить, чтобы добавить новые компоненты. Вы также можете найти этот нить stackoverflow полезным.

0 голосов
/ 09 марта 2011

Для начала это звучит сложно.Тем не менее, IMO это может быть достигнуто просто следуя основам.При разработке своей среды вы должны уделять особое внимание следующему -

Стремиться к модульному дизайну - Всегда кодировать интерфейсы, отдавать предпочтение композиции, а не наследованию и т. Д.

Написать модульные тесты для всего кода - Это очень важно, поскольку тесты не только приведут вас к слабосвязанному дизайну, но также окажутся важными при проверке обратной совместимости, что является важной проблемой в таких проектах.

Создавайте только то, что нужно, и избегайте слишком много первоначального проектирования и чрезмерного проектирования - Обратите внимание, что фреймворки лучше всего извлекать из кода, а не строить заранее.В таких проектах очень легко увлечься и построить то, что не нужно.Нежелательные функции не только потратят время и деньги, но также затруднят внесение будущих изменений.Не делайте слишком много начального проектирования и создавайте вещи небольшими итерациями, часто проводите рефакторинг и используйте модульные тесты в качестве своей системы безопасности.

...