가장 먼저 직면 한 문제에 대해 생각하십시오. YAGNI 또는 SOLID의 원칙을 맹목적으로 적용하면 나중에 부상을 입을 수 있습니다. 우리 모두가 이해할 수 있기를 바라는 것은 모든 문제에 맞는 "하나의"설계 접근법이 없다는 것입니다. 상점에서 "모두에 맞는"크기로 광고 된 모자를 판매 할 때 머리에 맞지 않는다는 증거를 볼 수 있습니다. 너무 크거나 작습니다.
대신 SOLID가 해결하려는 원리와 문제를 이해하는 것이 좋습니다. YAGNI가 해결하고자하는 원칙과 문제점뿐만 아니라 하나는 응용 프로그램의 아키텍처와 관련이 있고 다른 하나는 전체 개발 프로세스와 관련이 있습니다. 경우에 따라 겹치는 부분이있을 수 있지만 분명히 다른 문제가 있습니다.
YAGNI (Youn Aon't Gonna Need It [정맥 한 미국 약어])는 더 단순한 목조 다리가 단지 3 피트 너비의 크릭에 걸쳐있는 다리에 철근 콘크리트 기초를 추가하여 개발자 시간을 절약하는 데 관심이 있습니다. 좋아. 우리가 1 마일 폭의 강을 가로 질러 여러 개의 트랙터 트레일러를지지해야하는 경우, 추가 기초 공사가 필요합니다. 본질적으로 YAGNI는 현재의 요구에 맞는 더 큰 그림과 디자인을 보라고 말합니다 . 고객이 아직 파악하지 못한 수많은 잠재적 요구를 예상하고 있기 때문에 무언가를 너무 복잡하게 만드는 문제를 해결하고 있습니다.
SOLID는 다리 조각들이 서로 잘 맞고 시간이 지남에 따라 유지 될 수있는 방법에 관심이 있습니다. 철근 콘크리트 교량뿐만 아니라 목조 교량에도 SOLID 원리를 적용 할 수 있습니다.
간단히 말해서이 두 개념이 반드시 서로 상충되는 것은 아닙니다. 그들이 있다고 믿는 상황을 접했을 때, 큰 그림을 볼 때입니다. 결론에 따라 SOLID 원칙의 일부를 제거하거나 실제로 필요하다고 결정할 수 있습니다.
SOLID principle vs YAGNI
?