문제

저는 데이터베이스 백엔드가 있는 10페이지짜리 웹 사이트를 만들고 있습니다.ASP.Net에서 MVP 패턴을 구현하려고 시도하는 500개 이상의 개체가 사용 중입니다.저는 단일 페이지에서 코드 실행을 추적하고 있습니다. 내 손가락은 약 40분 동안 Visual Studio의 F-11에 있었습니다. 끝이 없는 것 같습니다. 하나의 웹 페이지에 대해 아마도 1000개 이상의 메서드 호출이 있을 것입니다!그러나 개체가 50개에 불과하다면 코드 실행은 마치 개체 터널로 가득 찬 거대한 흙더미 집에서 미친 듯이 일하는 수백만 마리의 개미처럼 이 모든 개체를 헤쳐나가는 것입니다. 따라서 새로운 안티 패턴이 탄생합니다.개미 농장.

개미 농장 "OO-Madnes", "OO-Fever", OO-ADD 또는 단순히 디자인 패턴 중독자라고도 합니다.

이런 모습을 본 것은 저도 처음이 아니며, 다른 회사의 동료들도 마찬가지입니다.이런 스타일이 활발하게 전파되고 있는 것 같거나, 아니면 어쨌든 떠돌고 있는 수많은 OO/DP 복음에 대한 오해인 것 같습니다...

안티패턴에 안티패턴을 소개하고 싶습니다.GST 또는 "Get Stuff Done"(일명 "Get Sh** done") 일명 GRD(GetRDone).이 패턴은 간단한 방법으로 작업을 완료하는 데 초점을 맞췄습니다.나중에 게시물에서 더 자세히 설명하거나 이 해독제 패턴에 대한 아이디어를 공유해 주세요.

어쨌든, 나는 글을 쓰는 동안 AntFarm 안티 패턴의 훌륭한 예를 접하고 있습니다(보너스로 문서나 설명이 없습니다).이 안티 패턴이 어떻게 그렇게 만연해졌는지, 어떻게 피할 수 있는지, 작업해야 하는 라이브 시스템에서 이 패턴을 어떻게 취소하거나 처리할 수 있는지에 대한 생각을 공유해주세요!

도움이 되었습니까?

해결책

내 생각엔 파르나스가 거의 성공했다고 생각한다. 시스템을 모듈로 분해하는데 사용되는 기준에 대하여.각 모듈은 향후 변경될 수 있는 설계 결정을 숨겨야 합니다.일반적으로 숨길 것이 없는 모듈은 대개 오버헤드일 뿐입니다.그는 수업에 대해 정확하게 이야기하지는 않았지만 그 추론은 여전히 ​​​​적용된다고 생각합니다.

다른 팁

실제로 오버 디자인으로 인한 경우 (그리고 그와 비슷한 소리) 여기에 동의어가 있습니다.

가스 공장
Rube Goldberg 기계
Heath Robinson Contraption

그러나이 "너무 f#$ 3n 하드"에 대한 나의 개인적인 이름. 내 애도.

Adrian을 건배합니다

할 수있는 많은 파일. 끔찍한. 10 개의 웹 페이지의 500 개 객체는 미친 비율로 보입니다. 솔루션에서 코드 분석을 실행하는 것을 고려 했습니까? 다시 싸울 흥미로운 통계를 줄 수 있습니다.

또한 Anti-Anti-Pattern Kiss라고 부릅니다.

Glomek에게 감사합니다

예, 패턴 방지 디자인은 "개미 힐 (Ant Hill)"이라고 할 수 있습니다. 이는 더 명확한 설명입니다. 나는 그것이 지금 꽤 사전 계급이라고 믿고, 성장하고있는 것 같다 ... 나는 여전히 우리가 어떻게 그것을 벗어나고 어떻게 도망 칠 수 있는지 궁금해하고, 필요한 최소한의 복잡성만으로 작업을 완료하는 더 명확하고 간단한 코드를 작성하는 것이 여전히 궁금합니다. .

여기서 문제는 디자인 패턴 자체가 아닌 것입니다. NonOO 패턴으로 시작하여 "개체"로 구현하십시오. 결국 엉망으로 끝납니다.

시스템이 OOPL로 작성되었다고해서 시스템을 OO로 만들지 않습니다.

개미 농장이 간단한 에이전트 (개미)를 사용하여 복잡한 문제 공간 (개미 농장)을 탐색하는 효율적인 방법이라고 생각한다면, 이는 반 패턴 링크가 덜 덜 보이기 시작합니다.

'머리에 모든 것을 맞추는 것'의 복잡성에 근거한 OOP의 비판은 항상 (a) 머리에 모든 것을 맞추기가 어렵다는 것을 무시합니다 (OO인지 아닌지에 관계없이). 어쨌든 머리에 모든 것을 갖추어야합니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top