문제

나는 누군가에게 그의 코드가 여러 목적으로 작용한다는 의미에서 "일관된"것이 아니라고 말하려고 노력하고 있습니다. 나는 그것을 잘 설명 할 수 있다고 생각하지 않으므로 좋은 참조 및/또는 정의를 찾고 있습니다.

도움이 되었습니까?

해결책

나는 올바른 용어라고 생각합니다 응집력.

컴퓨터 프로그래밍에서 응집력 소프트웨어 모듈의 다양한 책임이 얼마나 강력하고 초점을 맞추 었는지에 대한 척도입니다. 응집력은 서수 유형의 측정이며 일반적으로 논의 될 때 "높은 응집력"또는 "낮은 응집력"으로 표현됩니다.

높은 응집력이 높은 모듈은 높은 응집력이 견고성, 신뢰성, 재사용 가능성 및 이해 성을 포함한 소프트웨어의 몇 가지 바람직한 특성과 관련이 있기 때문에 바람직한 경향이있는 반면, 낮은 응집력은 유지하기 어려운 것과 같은 바람직하지 않은 특성, 테스트하기 어려운 재사용 어려움과 관련이 있기 때문입니다. 이해하기 어렵습니다.

다른 팁

나는 컴퓨터 옆에있는 Steve McConnell이 코드를 완성했습니다 (예 : 프로그래머 성경)는 응집력을 설명하는 페이지를 열었으므로 공유 할 것이라고 생각했습니다.

응집력은 구조화 된 설계에서 발생했으며 일반적으로 커플 링과 동일한 맥락에서 논의됩니다. 응집력은 클래스의 모든 루틴 또는 일상의 모든 코드가 클래스에 집중된 중심 목적을 얼마나 밀접하게 지원하는지를 말합니다. 강력하게 관련된 기능을 포함하는 클래스는 강력한 응집력을 가진 것으로 설명되며, 휴리스틱 목표는 가능한 한 강하게 응집력을 만드는 것입니다.

나는“우려의 분리”라는 용어를 사용하여 리팩토링하는 동안 이것을 설명합니다. 종종 코드가 상당히 새로운 경우, 처음에는 별도의 관심사가 명확하지 않기 때문에 상황이 함께 시작됩니다.

이를 공동 작업자에게 설명하는 쉬운 방법 중 하나는 코드에 대한 테스트 케이스를 작성하도록 요청하는 것입니다. 이것은 코드가 명확하지 않거나 일관성이 없음을 설명해야합니다.

사용해야 할 또 다른 좋은 문구는 함수/객체가“한 가지를 수행하고 잘 수행해야한다”는 것입니다. 이것은 객체/메소드 이름부터 시스템의 전체 아키텍처에 이르기까지 모든 것에 영향을 미칩니다.

지금까지 주어진 답변 외에도 높은 응집력을 생각하는 간단한 방법은 기능의 복제가 부족하고 관련 기능이 별개의 모듈, 구성 요소 또는 클래스로 명확하게 분리됩니다. 따라서 다른 함수와 유사한 기능을 원하고 코드의 사본을 자르고 붙여 넣고 수정하면 응집력을 줄입니다. 새 사례가 기존 기능과 명확하게 관련된 새 사례를 처리하도록 원본을 수정하면 응집력이 증가하고 있습니다. 다른 방법으로, 프로그램이 주어진 일을해야한다면, 시간이나 장소에 상관없이, 최대 응집력을 위해서는 그 일을하는 코드가 한 번만 있어야합니다. 마찬가지로, 주어진 클래스, 모듈 또는 구성 요소에는 단일 책임 영역이 있어야합니다. 관련없는 기능을 단일 클래스 또는 구성 요소로 묶으면 응집력이 줄어 듭니다.

Codewiki가 말했듯이, 응집력은 일반적으로 커플 링과 논의되며, 두 사람은 특히 엄격한 인터페이스가 신중하게 계획되지 않은 경우 서로 반대하여 작용할 수 있습니다. 응집력에 관한 많은 구글 기사는 OO 디자인과 관련이 있지만 응집력과 커플 링은 OO로 제한되지 않습니다.

부분의 질서 정연하고 논리적이며 미적으로 일관된 관계로 표시됩니다. "일관된 주장" -에서 http://www.websters-online-dictionary.org/definition/coherent

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top