소프트웨어 개발의 모범 사례 1 과 관련하여 많은 대화가 있습니다 . 나는 적어도 세 가지 주요 요점이 SE와 다른 곳에서 많은 토론을하는 것을 보았습니다.
- 모범 사례로 인정되는 대상은 무엇이며 왜 그런가요?
- 모범 사례는 "최상의"사례가 아니라고 주장하는 것이 합리적이므로 처음부터 논의 할 가치가 있습니까?
- 적용 할 수없는 것처럼 보이거나 트레이드 오프를 비실용적으로 만드는 외부 제약 (시간, 돈 등) 때문에 모범 사례 또는 가장 모범 사례를 언제 포기해야합니까?
훨씬 덜 자주 나오지만 결코 그렇지 않은 것들은 소프트웨어 개발에서 상식 이라는 개념입니다 . 최근의 경험은이 개념을 다시 내 마음의 앞에 가져 왔습니다.
저의 첫인상은 그것이 모범 사례와는 다른 토론이지만, 아마도 약간의 수분이 있다는 것입니다.
일반적으로 상식을 생각할 때, 당신이 선택하거나 배운 규칙 중 하나를 선택하여 추론하고 결정하는 기준을 제공합니다. 상식을 따르는 것이 다리 전체를 쏘지 않도록하는 좋은 방법입니다. 그러나 매우 낮은 기준을 넘어 상식은 교육적인 결정을 내릴 필요가 있으며, 교육 된 결정은 증거가 설득력이있을 때 상식을 무시할 수도 있습니다. 나는 여기서 정의와 함께 약간 느슨하게 놀고 있을지 모르지만, 나는 나의 모범을 선봉하기에 충분하다고 생각합니다.
소프트웨어 개발에서 상식을 생각할 때 코드베이스가 이해할 수없는 혼란으로 빠르게 붕괴되는 것을 막기위한 모든 기본 위생 규칙을 생각합니다. 예를 들어, 사소한 프로그램 내에서 상태를 유지하고 전달하기 위해 단일 전역 구조를 사용하지 않는 것; 임의의 횡설수설 인 변수 / 메소드 / 클래스 이름을 사용하지 않습니다. 반 패턴이라고하는 것과 매우 유사한 것들 일 것입니다. 모범 사례를 학습 패턴에 대한 실제 유사체를 적용하는 경우 상식을 적용하는 것은 반 패턴 학습의 실제 유사체로 볼 수 있습니다.
이것을 염두에두고, 나는 다른 사람들의 대답을 보는 것이 이것을 통해 나의 길을 추론하는 데 도움이 될 수있는 몇 가지 질문을하고 싶습니다.
다른 사람들은 소프트웨어 개발에 상식이라는 개념이 있다고 생각합니까? 어느 쪽이든 추론을 알고 관심이 있습니다.
그렇다면 논의 할 가치가있는 개념입니까? 모범 사례로 수행하는 것만 큼 추진해야 할 것이 있습니까? 더 열심히 추진할 가치가 있습니까?
안티 패턴에 대한 비유가 합리적으로 보인다면, 일반적으로 안티 패턴은 다른 방법이없는 경우에만 사용되며, 심지어 매우 제한된 상황에서만 사용됩니다. 코드베이스가 상식에서 벗어나는 데 얼마나 유연해야합니까? 때로는 편의가 편차를 요구하기 때문에 대답이 "아무것도 아닌"것은 부당한 것 같습니다. 그러나 "모범 사례"를 사용할 때와는 다른 종류의 논쟁처럼 보입니다. 어쩌면 그렇지 않을 수도 있습니다. 그렇게 생각하지 않으면 이유를 배우고 싶습니다.
이것은 훨씬 더 개방적이며 아마도 그 자체로 후속 질문에 합당 할 수 있습니다. 상식의 문제처럼 보이는 어떤 종류의 권장 사항을 지적 하시겠습니까?
다른 생각도 환영합니다.
1 아마도 "일반적으로 되풀이되는 도메인 패턴"이라고 부르는 것이 좋을지 모르지만 "모범 사례"라는 이름은 일반적으로 동의하지 않더라도 모든 사람이 자신이 무엇인지 알고있을 정도로 충분히 일반적입니다. "최고의"부분이 당신을 귀찮게한다면, "최고의 관행"을 덜 권위있는 소리로 대체했다고 상상해보십시오.