2010-01-11 9 views
5

기업용 애플리케이션을 설계 할 때 피할 수있는 주요 안티 패턴은 무엇입니까? 우리는 C# 및 SQL Server와 Silverlight, btw를 사용하고 있습니다. 그러나 일부 안티 패턴은 언어 중립적이라고 생각합니다.엔터프라이즈 아키텍처 안티 패턴

+1

커뮤니티 위키? –

+4

엔터프라이즈 아키텍처 자체를 안티 패턴이라고 생각할 수도 있습니다. – cletus

+0

저는 이것이 커뮤니티 위키라고 생각하지 않지만 안내받을 수있어서 행복합니다. –

답변

6

위키 백과는 anti-patterns의 주제에 대해 매우 포괄적이며 여기에 주제에 관한 책이 있습니다 : AntiPatterns. 내 경험에

정상 5 :

  1. Premature optimization
  2. Anemic Domain Model
  3. God object
  4. Golden Hammer (참조, 정규 표현식)
  5. Chain Gang
+0

고맙습니다 Jason - 2, 3 위의 의견이 있으십니까? –

+1

그 안티 패턴 카탈로그는 경박 한 항목과 자전거 창고 토론으로 가득 차 있습니다. –

+0

고마워요 제이슨 - 정말 좋아요! –

3

기업의 싱크 홀 :

1 : 데이터베이스 액세스가 별도의 레이어

2에 있어야 읽어 보시기 바랍니다 : 이봐, 우리는 데이터베이스 계층을 가지고있다.

2 (b) 이봐 요, 우리는 데이터베이스를 추상화하기위한 델리게이트 계층을 가지고 있습니다.

3 : 대리인에게 물건을 가져 오는 방법이 있기 때문에 적용합니다. "getPurchaseOrder()"를 연속적으로 10 번 호출 할 때 결과에 ​​대해 아무런 생각없이 사용한다고 가정합니다. (getPurchaseOrder()가 5 개의 별도 데이터베이스 호출을 래핑하는 메소드 임에도 불구하고).

4 : 앉아서 100 개의 별도 데이터베이스 호출로로드되는 웹 페이지를 즐기십시오 (슬프게도 과장은 아닙니다).

내가 반 패턴이라고 부르는 것이 확실하지 않습니까? 아마도 "레이어는 무료가 아닙니다."

+0

데이터 액세스 문제를 나머지 응용 프로그램과 분리한다고해서 반드시 시스템의 모든 종류의 엔터티에 대한 get 및 set 메서드를 사용하여 설명하는 원시 저장소 패턴이 생성되는 것은 아닙니다. #s 3과 4가 # 1과 2의 자연스러운 결과라고 제안하는 것은 부적절합니다. –

+1

@ 렉스 - 자연스러운 결과는 아니지만 확실히 반 패턴입니다. 싸우는 것을 고려할만큼 자주 일어나는 일. – Tom

+1

@Rex, 나는 반 패턴이 코드가 떨어질 수있는 부정적인 패턴이라는 것을 이해합니다. 제가 여기서 생각하고있는 것은 레이어를 코딩하지 않고, 실제로 생각하는 것을 고려하지 않고 레이어를 코딩하는 것입니다. 예 : 위 예제에서 주어진 예를 보자. (어쨌든 사람들은 다음과 같은 라인을 작성한다. if (getPurchaseOrder()! = null && getPurchaseOrder(). price> 10). –

관련 문제