"Pattern"-ity Testing, Proto-Patterns & The Rule Of Three

모든 알고리즘, 모범 사례 또는 솔루션이 완전한 패턴으로 간주 될 수있는 것은 아님을 기억하십시오. 여기에 몇 가지 중요한 요소가 빠져있을 수 있으며, 패턴 커뮤니티는 심하게 검열되지 않은 한 일반적으로 어떤 것으로 주장하는 것을 경계합니다. 패턴에 대한 기준을 충족시키는 것으로 보이는 항목이 우리에게 제시 되더라도 다른 사람에 의한 정밀 조사 및 테스트를 마칠 때까지 하나의 것으로 간주해서는 안됩니다.

알렉산더 (Alexander)의 연구를 다시 한번 살펴보면, 그 패턴은 과정과 "일"이어야한다고 주장한다. 이 정의는 "사물"을 만들어야 만하는 과정이라고 말하면서 목적에 부합하지 않습니다. 이것이 패턴이 일반적으로 시각적으로 식별 가능한 구조를 다루는 것에 초점을 맞추는 것, 즉 패턴을 실제로 배치하는 구조를 나타내는 그림을 시각적으로 묘사 (또는 묘화) 할 수 있어야하는 이유입니다.

디자인 패턴을 연구 할 때 "프로토 패턴"이라는 용어를 사용하는 것은 불규칙하지 않습니다. 이게 뭐야? 아직 "패턴"테스트를 통과하지 못했던 패턴은 일반적으로 프로토 패턴이라고합니다. 프로토 패턴은 지역 사회와 공유 할만한 가치가있는 특별한 해결책을 수립 한 사람의 작업으로 인해 생길 수 있지만 아직 어렸을 때 심하게 심사를받은 적이 없었을 수 있습니다.

대안으로, 패턴을 공유하는 개인 (들)은 "패턴"과정을 거치는 것에 대한 시간 또는 관심을 갖지 않을 수 있으며 대신 자신의 원형 패턴에 대한 간단한 설명을 발표 할 수 있습니다. 이 유형의 패턴에 대한 간략한 설명이나 단편을 patlet이라고합니다.

자격을 갖춘 패턴을 완벽하게 문서화하는 작업은 상당히 어려울 수 있습니다. 디자인 패턴 분야에서 초기 작업 중 일부를 되돌아 보면 패턴은 다음을 수행하면 "양호한"것으로 간주 될 수 있습니다.

  • 특정 문제를 해결합니다. 패턴은 원칙이나 전략을 포착하기위한 것이 아닙니다. 그들은 솔루션을 포착해야합니다. 이것은 좋은 패턴을위한 가장 필수적인 성분 중 하나입니다.

  • 이 문제에 대한 해결책은 분명하지 않을 수 있습니다. 우리는 문제 해결 기법이 종종 잘 알려진 첫 번째 원칙에서 유도하려고 시도한다는 것을 알 수 있습니다. 최상의 디자인 패턴은 일반적으로 간접적으로 문제에 대한 솔루션을 제공합니다. 이는 설계와 관련된 가장 까다로운 문제에 필요한 접근 방법으로 간주됩니다.

  • 서술 된 개념은 입증 된 것이어야한다. 설계 패턴은 설명 된대로 기능한다는 증거를 요구하며,이 증거가 없다면 설계를 심각하게 고려할 수 없다. 패턴이 본질적으로 매우 투기 적이라면 용감한 자만 그것을 사용하려고 시도 할 수 있습니다.

  • 관계를 설명해야합니다. 어떤 경우에는 패턴이 모듈 유형을 설명하는 것처럼 보일 수 있습니다. 구현이 이러한 방식으로 나타날 수도 있지만 패턴에 대한 공식 설명은 코드와의 관계를 설명하는 훨씬 더 심층적 인 시스템 구조와 메커니즘을 설명해야합니다.

우리는 가이드 라인을 충족시키지 못하는 원형 패턴이 배우는 가치가 없다고 생각하면 용서받을 수 있지만 진실과는 거리가 멀다. 많은 proto-patterns은 실제로 꽤 좋습니다. 나는 모든 원형 패턴을 살펴볼 가치가 있다고 말하지는 않지만 미래의 프로젝트에서 우리를 도울 수있는 유용한 것들이 아주 많이 있습니다. 위의 목록을 염두에두고 최선의 판단을 사용하면 선택 과정에서 문제가 없을 것입니다.

유효한 패턴의 추가 요구 사항 중 하나는 몇 가지 되풀이되는 현상을 표시한다는 것입니다. 이것은 종종 세 가지 규칙으로 언급되는 적어도 세 가지 주요 영역에서 자격을 얻을 수있는 것입니다. 이 규칙을 사용하여 재발을 표시하려면 다음을 입증해야합니다.

  1. 적합성 - 패턴은 어떻게 성공적으로 간주됩니까?
  2. 유용성 - 패턴이 성공적이라고 여겨지는 이유는 무엇입니까?
  3. 적용 가능성 - 적용 가능성이 더 크기 때문에 패턴이 될만한 가치가있는 디자인입니까? 그렇다면 설명해야합니다. 패턴을 검토하거나 정의 할 때 위의 사항을 명심해야합니다.

results matching ""

    No results matching ""