Антипаттерны архитектуры предприятия

Каких основных анти-шаблонов следует избегать при создании архитектуры приложений для предприятия? Между прочим, мы используем C #, SQL Server и Silverlight, но я полагаю, что некоторые антишаблоны будут нейтральными по отношению к языку.


person Community    schedule 11.01.2010    source источник
comment
Некоторые могут посчитать саму архитектуру предприятия антипаттерном.   -  person cletus    schedule 11.01.2010
comment
Я бы не подумал, что это вики сообщества, но я рад, что меня направят   -  person Craig Schwarze    schedule 11.01.2010
comment
Это очень субъективная тема (нет абсолютно правильного ответа), поэтому, вероятно, это должен быть CW.   -  person Rex M    schedule 11.01.2010
comment
Согласитесь, это должна быть вики сообщества (я пометил свой ответ как таковой).   -  person jason    schedule 11.01.2010


Ответы (2)


Википедия достаточно обширна по теме антипаттернов, а вот книга по этой теме : AntiPatterns.

Пятерка лучших по моему опыту:

  1. Преждевременная оптимизация
  2. Модель анемичного домена
  3. объект Бога
  4. Golden Hammer (см. регулярные выражения)
  5. Цепная банда
person Community    schedule 11.01.2010
comment
Спасибо, Джейсон - есть какие-нибудь мысли по поводу 2 или 3 лучших? - person Craig Schwarze; 11.01.2010
comment
Этот каталог антипаттернов полон фривольных записей и дискуссий о велосипедных сараях. - person Rex M; 11.01.2010

Воронка предприятия:

1: прочтите, что доступ к вашей базе данных должен быть на отдельном уровне

2: Эй, у нас есть уровень базы данных.

2 (b) Эй, у нас даже есть уровень делегата, чтобы абстрагироваться от нашей базы данных.

3. Примените закон дырявых абстракций, поскольку в делегатах есть методы, которые Чтобы получить что-то, просто предположите, что их можно использовать, не задумываясь о последствиях - как в вызове getPurchaseOrder () 10 раз подряд на странице, хотя getPurchaseOrder () - это метод, который объединяет 5 отдельных вызовов базы данных.

4. Устройтесь поудобнее и наслаждайтесь своими веб-страницами, которые загружаются с помощью 100 отдельных вызовов базы данных (к сожалению, не преувеличение).

Не уверен, что я бы назвал это антипаттерном? может быть «Слои не бесплатны»?

person Community    schedule 11.01.2010
comment
Разделение проблем доступа к данным от остальной части приложения не обязательно приводит к примитивному шаблону репозитория, который вы описываете, с методами get и set для каждого типа сущности в системе. Было бы неискренне предполагать, что пункты 3 и 4 являются естественными следствиями пунктов 1 и 2. - person Rex M; 11.01.2010
comment
@Rex - они могут быть не естественными последствиями, но определенно антипаттерном. То, что случается достаточно часто, чтобы от него можно было защититься. - person Tom; 11.01.2010
comment
@Rex, я понимаю, что антипаттерн - это негативный паттерн, в который может попасть код. Я думаю здесь о кодировании слоев, не зная или не думая, что вы должны учитывать, что они на самом деле делают. например в приведенном выше примере вы видите (ну, в любом случае, я видел, что люди пишут такую ​​строку, как: if (getPurchaseOrder ()! = null && getPurchaseOrder (). price ›10). - person Steve B.; 11.01.2010