Anti-Patterns
패턴이 모범 사례라는 것을 고려하면 반 패턴은 학습 된 교훈을 나타냅니다. Anti-Pattern이라는 용어는 GoF의 저서 "Design Patterns"에서 영감을 얻은 11 월 C ++ 보고서에서 Andrew Koenig가 1995 년에 만들어 냈습니다. Koenig의 보고서에는 두 가지 개념의 반 패턴이 제시되어 있습니다. 반 패턴 :
나쁜 상황이 발생하는 특정 문제에 대한 잘못된 해결책을 설명하십시오.
말한 상황에서 벗어나고 거기에서 좋은 해결책으로가는 방법을 설명하십시오.
이 주제에 대해 알렉산더는 좋은 디자인 구조와 좋은 컨텍스트 사이의 균형을 이루는데 어려움을 씁니다.
"이 노트는 디자인 과정에 관한 것입니다. 기능에 반응하여 새로운 물리적 질서, 조직, 형태를 나타내는 물리적 인 것들을 발명하는 과정. 모든 디자인 문제는 두 형태의 개체 사이의 적합성을 달성하기위한 노력으로 시작된다 : 문제의 형태와 문맥. 이 양식은 문제의 해결책입니다. 컨텍스트는 문제를 정의합니다. "
디자인 패턴을 인식하는 것이 매우 중요하지만, 안티 패턴을 이해하는 것도 똑같이 중요 할 수 있습니다. 이 문제를 해결하는 이유는 무엇입니까? 응용 프로그램을 만들 때 프로젝트의 수명주기가 시작되지만 일단 초기 릴리스가 완료되면 유지 관리해야합니다. 최종 솔루션의 품질은 팀이 기술에 투자 한 시간과 수준에 따라 좋거나 나쁠 것입니다. 여기서 좋은 점과 나쁜 점은 상황에 따라 고려됩니다. '완벽한'디자인은 잘못된 상황에서 적용될 경우 반 패턴으로 간주 될 수 있습니다.
더 큰 문제는 응용 프로그램이 생산에 들어가고 유지 관리 모드로 들어갈 준비가 된 후에 발생합니다. 이전에 응용 프로그램에서 작업하지 않은 시스템에서 작업하는 개발자는 실수로 프로젝트에 잘못된 디자인을 도입 할 수 있습니다. 나쁜 습관이 반 패턴으로 만들어지면 개발자는 이러한 사실을 미리 인식하여 발생할 수있는 일반적인 실수를 피할 수 있습니다. 이는 디자인 패턴이 우리에게 공통점을 인식 할 수있는 방법을 제공하는 것과 유사합니다 유용한 기술.
요약하면 반 패턴은 문서화 할 가치가있는 나쁜 디자인입니다. 자바 스크립트의 안티 패턴의 예는 다음과 같습니다.
글로벌 컨텍스트에서 많은 수의 변수를 정의하여 글로벌 네임 스페이스 오염
함수가 아닌 문자열을 setTimeout 또는 setInterval에 전달하면 내부적으로
eval()이 사용됩니다.Object클래스 프로토 타입 수정 (특히 나쁜 패턴입니다)자바 스크립트를 인라인 형식으로 사용하면 유연성이 떨어집니다.
document.createElement와 같은 네이티브 DOM 대안이 더 적합한 경우 document.write를 사용합니다. document.write는 오랜 동안 엄청난 오용을 해왔으며 페이지가로드 된 후에 실행되면 실제로 document.createElement가 아닌 페이지를 덮어 쓸 수 있다는 단점이 있습니다. 우리는 실제 상황에서 이것을 볼 수 있습니다. 또한 document.createElement와 같은 DOM 친화적 인 메소드를 선호하는 또 다른 이유 인 XHTML과 호환되지 않습니다.
반 패턴에 대한 지식은 성공에 중요합니다. 이러한 안티 패턴을 인식 할 수있게되면 코드를 리팩토링하여 코드를 무효화하여 솔루션의 전반적인 품질을 즉시 향상시킬 수 있습니다.