「Code Complete 제2판 상」을 읽었다

2313 단어 독서디자인
code complete

GW의 독서 감상문. 몸도 뚜껑도 없는 감상을 말해 버리면, 「레거시 코드 개선」 「리더블 코드 인상에 남은 부분을 메모.

고품질 설계에 바람직한 특성



최소한의 복잡성



"응집한"디자인은 대체로 이해하기 곤란하기 때문에 피한다. 대신 "단순"으로 "이해하기 쉬운"설계로 한다. 특정 부분에 집중하고 작업 할 때 프로그램을 쉽게 무시할 수없는 디자인은 그 목적을 달성하지 못합니다.

보수성



유지 보수의 용이성은 유지 보수 프로그래머를 위해 설계하는 것입니다. 유지 보수 플러그 라마를 고객으로 간주하고 보면 즉시 알 수있는 시스템을 설계합시다.

느슨하게 결합



느슨한 결합은 프로그램의 다양한 구성 요소 간의 연결을 최소화하는 설계입니다. 클래스 인터페이스의 추상화, 캡슐화, 정보의 은폐의 원칙에 근거해, 상호 결합의 가능한 한 적은 클래스를 설계한다. 연결이 적으면 그만큼 통합과 테스트 유지 보수 작업이 적어진다.

확장성



확장 성은 기본 구조에 영향을주지 않고 시스템의 기능을 확장 할 수 있다는 것입니다. 즉, 다른 부분에 전혀 영향을 미치지 않고 시스템의 일부를 변경할 수 있습니다.

재사용성



재사용성은 시스템의 일부를 다른 시스템에서 재사용 할 수 있도록 시스템을 설계하는 것입니다.

높은 팬인



높은 팬인은 그 클래스를 사용하는 클래스가 많이 있다는 것이다. 또한 시스템이 하위 레벨 유틸리티 클래스를 활용하도록 설계되어 있다는 것을 의미한다.

낮은 팬아웃



낮은 팬아웃은 한 클래스가 사용하는 다른 클래스의 수를 줄이는 것을 의미합니다. 높은 파운 아웃 (약 7 개 이상)은 클래스가 사용하는 다른 클래스의 수가 많기 때문에 너무 복잡해질 수 있음을 나타냅니다.

이식성



이식성은 시스템을 다른 환경으로 쉽게 이동할 수 있도록 설계하는 것입니다.

쓸데없는



낭비가 없다는 것은 시스템에 여분의 부분이 없도록 설계하는 것입니다. 코드를 변경할 때는 여분의 코드를 개발, 검토, 테스트, 검토해야 하기 때문이다. 소프트웨어의 향후 버전은 추가 코드와의 역호환성까지 유지되어야 한다.

계층화



계층화는 분해 수준을 계층화하여 시스템을 모든 레벨에서 참조 할 수있게하고 일관된 관점을 얻는 것입니다. 다른 레벨을 보지 않아도 한 레벨을 보면 알 수 있도록 설계한다.

표준화 기법



시스템이 일반적이지 않은 요소에 따라 달라질수록 시스템을 먼저 이해하는 것이 망설입니다. 표준화된 일반적인 방법을 사용하면 시스템 전체에 친숙한 인상을 갖게 된다.

좋은 웹페이지 즐겨찾기