사상 - 프로그래밍 이데올로기아키텍처 기본 기법변경 용이성소프트웨어에 수명은 의외로 길다. 그래서 변경 용이성을 해야 된다.
보수성 - 오류가 발생한 코드 수정이 용이
확장성 - 신규 기능 추가, 모듈 교체, 모듈의 제거 작업의 용이함
재구축 - 모듈의 구현에는 영향 ...
사상 - 프로그래밍 이데올로기아키텍처 기본 기법인터페이스와 구현의 분리
인터페이스 - 기능 정의 및 모듈 사용 방법 정의(?)
구현 - 실제 기능을 실현하는 코드
클라이언트는 인터페이스만 알면 되서 기능이 바껴도 코드를 수정할일이 없다.‘구현이 아닌 인터페이스에 맞춰 ...
사상 - 프로그래밍 이데올로기아키텍처 기본 기법충족성 완전성 프리미티브성
충족성 - 추상이 그것을 전하기 충분한지(remove가 있는데 add가 없으면 불충분)
완전성 - 추상이 모든 특성을 가지고 있는지(콜렉션인데 size 구하는게 없으면 안됨)
프리미티브성 - 추상 ...
사상 - 프로그래밍 이데올로기아키텍처 기본 기법패키지화모듈을 의미있는 단위로 모운후 그룹핑 한다.
소프트웨어 전체가 패키지라는 작은 단위로 분활되므로 복잡도가 낮아진다
패키지 않에 관련 없는 모듈이 섞이지 않으므로 모듈을 관리하기 쉽다.
수정에 대한 영향도가 패키지 ...
사상 - 프로그래밍 이데올로기아키텍처 기본 기법좋은 코드의 기초원리
추상
캠슐화
정보 은닉
패키지화
관심의 분리
충족성, 완정성, 프리미티브성(원시성, 순수성)
정책과 구현의 분리
인터페이스와 구현의 분리
참조의 단일성
분활정복
좋은코드에는 패턴이 있다.
추상추상이 ...
원칙 프로그래밍 가이드 라인OCP(Open-Closed Principle)코드는 확장에 열려 있고 수정에 대해서는 닫혀있는 2가지 속성을 동시에 충족하도록 설계한다.확장에 대해서 열려있다는 말은 코드의 동작을 확장할 수있다는 의미이다.수정에 대해서 닫혀 있다는 말은 코 ...
원칙 프로그래밍 가이드 라인SLAP(Single Layer of Abstraction Principle)추상화 수준의 통일
코드수준을 맞춘다.
코드에서 추상화 수준을 분리할 때는 상하 2계층이 아니라 기능 복잡도에 따라서 여러계층으로 분리된다.각각의 계층에서 자신의 계 ...
원칙 프로그래밍 가이드 라인PIE(Program Intently and Expressively)의도를 표현해서 프로그래밍 해라.
코드는 컴파일러가 아닌 사람이 읽기 위한것이다. 그래서 어떻게 하면 다른사람이 잘 이해하게 직관적으로 코딩하자.
코드는 소프트웨어 동작을 정 ...