이에 대한 대답은 간단합니다.
일관성이 가장 중요합니다.
그러나 경고가 있습니다 ...
당신과 당신의 동료는 잘못된 종류의 일관성에 집착하고있을 것입니다
구현은 일회용입니다. 테스트 스위트의 품질과 종합성에 따라 다양한 정도의 편의로 완전히 점검 할 수 있습니다. "이것은 속성이어야합니까?", "얇은 코드는 하위 레벨 구조 대신 LINQ를 사용하지 않습니까?" 모호한 가치가 있습니다. 구현 수준에서 모든 측정 값을 일관성 값에 연결하기가 어렵습니다. 이 수준에서 물어 보는 것이 더 좋은 질문은 "이 코드가 광고 된대로 작동합니까?"입니다. TL; DR 구현 일관성은 "작은 마음"이 홉 고블린을 얻는 곳입니다.
여기서 일관성이 중요하지 않은 이유는 무엇입니까? 구현에는 일반적으로 적은 수의 기고자가 있습니다. 대부분의 방법은 작성되고 다시는 손대지 않습니다. 나머지 코드 중에서 거의 두 가지 기여자가있는 메소드 수입니다. 이 패턴은 광고 무한대로 계속 됩니다. 이러한 맥락에서 일관성은 그다지 중요하지 않습니다. 코드의 저장 수명이 꽤 작은 경우 ( 몇 년 ) 공격적인 일관성으로 인한 이익은 중요하지 않습니다.
이것은 당신이 당신의 구현에 열중해야한다고 말하는 것이 아닙니다. 오히려 멋지고 깨끗하며 단순한 디자인은 어리석은 보일러 판 일관성 방법보다 방법으로 미래의 미래 유지 보수 자에게 훨씬 가치 있다고 말할 것입니다. 이것은 우리를 진짜 요점으로 데려갑니다 ...
API는 일회용이 아닙니다.
이것은 모든 API 코드 수준, 웹 서비스, SDK 등입니다. 일관성이 있어야합니다. 이러한 다양한 일관성으로 인한 생산성 이점은 여러 가지 이유로 막대합니다.
통합 테스트 :
API의 일관성을 유지하면 일련의 통합 테스트를 작성할 수 있습니다. 이를 통해 개발자는 구현 세부 사항을 자유롭게 교환하고 즉시 검증 할 수 있습니다. 공동 작업 쓰레기를 LINQ로 바꾸고 싶습니까? 통합 테스트가 실행됩니까? 또한 생산 준비를 할 때의 검증도 제공합니다. 컴퓨터가 빠르기 때문에 하나의 랩탑이 일상적인 작업을 수행하는 수천 명의 테스터의 작업을 수행 할 수 있습니다. 조직의 직원 수를 크게 늘리는 데 큰 도움이됩니다.
생산력
API가 일관된 경우 API의 다른 부분을 사용하여 배운 내용을 따르면 API 사용 방법에 대해 추측 할 수 있습니다. API가 자연스럽고 일관된 "모양과 느낌"을 제공하기 때문입니다. 이는 고객이 문서를 선별하는 데 더 적은 시간을 소비한다는 것을 의미합니다. 온 보딩이 더 쉽고 저렴합니다. API를 개발 한 사람들에게 적은 질문이 있습니다. 일관성은 모든 사람을 승자로 만듭니다
이 시나리오에서 일관성이 중요한 이유는 무엇입니까? API는 구현과 정확히 반대되는 문제가 있기 때문입니다. 그것들을 사용하는 사람들의 수는 일반적으로 그들의 구현에 기여하는 사람들의 수보다 훨씬 많습니다. 약간의 일관성에서 작은 이익이 배가되고 일관성을 유지하는 비용이 상각됩니다.
결론
일관성은 비싸다. 얼굴은 생산성을 떨어 뜨립니다. 개발자를 제한하고 삶을 어렵게 만듭니다. 문제를 해결할 수있는 방법에 제한이있어 때로는 최적화되지 않은 방식으로 문제를 해결해야합니다. 이것은 종종 그들이 이해하지 못하거나 이해가 잘 안되거나 특권이없는 이유 (계약, 더 큰 조직 또는 조직 간 정책)입니다.
Raymond Hettinger는 Pycon 2015에서 파이썬 프로그래머 팀을위한 PEP8 스타일 가이드를 사용하는 것에 대해 몇 가지 훌륭한 지적을했습니다. 그는 코드 조각에 대한 스타일 일관성에 대한 집착으로 인해 코드 검토자가 심각한 논리와 디자인 결함을 놓칠 수 있음을 보여주었습니다. 그의 가설은 문체 적 불일치 를 찾는 것이 쉽다고 요약 될 수있다 . 코드의 실제 품질을 결정하는 것은 어렵다
여기서 요점은 중요합니다. 일관성이 중요한 부분을 식별하고 적극적으로 보호하십시오. 중요하지 않은 곳에서 시간을 낭비하지 마십시오. 일관성 값을 측정하기위한 객관적인 방법을 제공 할 수없는 경우 (위의 경우 "유효 인력 수", 생산성의 함수로서 비용) 수익이 상당하다는 것을 입증 할 수없는 경우 당신의 조직.