본문 바로가기

Study/디자인 & 설계

코드 품질 최적화 전략 및 기법

반응형

구현 선행 작업

 

factory method 패턴

-> 의존성을 최소한으로 줄이기 위해. 객체의 생성과 사용을 분리하자 (Spring framework의 DI, IoC)

 

Controller와 Business Layer의 분리

-> 인터페이스와 상속을 이용.

 

AOP

-> 공통 모듈과 업무 로직 처리 코드를 분리하자.

 

구현 상세 설계 작업

 

추상화 (Abstract, Interface class)

-> 외부 요청에 대한 스펙만을 정의. 

-> 이는 다른 클래스(implements class)에서 실제 구현을 담당

-> 내부적으로 변경 작업이 있더라도, 클라이언트나 이 모듈을 사용하는 다른 곳에서의 수정을 최소화할 수 있다.

-> 다른 모듈과의 완충 작용

 

캡슐화/정보은닉

-> 속성과 행위를 하나로 묶어 캡슐화, 

-> 속성을 변경하는 부분은 상속관계의 객체들만 가능하도록하여 외부에서 접근하지 못하도록 은닉화

 

상속 & 다형성

-> 자식클래스가 부모 클래스의 속성과 매소드를 상속받아 반복되는 코드를 최소화

-> 클래스를 구조화

 

클래스 분할 & 배치

-> 가능한 작게 (단일 책임 원칙 SRP)

-> 일관성 있는 추상화

-> 속성들과 클래스의 캡슐화 (같은 개념 선상의 것들에 대해 (높은 응집도))

-> 속성들과 내부 클래스의 정보 은닉화 (protected, private 로 선언)

-> 적절한 상속 (다향성)

-> 잦은 변경 부분은 분리 (다른 곳에 영향을 최소화)

-> 느슨한 결합을 유지 (인터페이스 클래스)

 

/*

팩토리 패턴, 어뎁터 패턴, 인터페이스, 상속에 대한 실습

*/

 

 

주석도 줄여라. 코드만이 유일한 산출물이다.

-> 주석과 코드의 100% 일치는 불가능하다. 주석 만들 시간에 코드에 집중하라

-> 대신, 형상 관리 (commit) 시에 상세히 기술할 것

-> 이름을 잘 지으면 주석은 필요 없다.

-> 개발에 필요한 주석은 테스트와 검증 후에 정리하는 습관을 길러야 할 것

 

그렇다면 정말 필요한 주석은? 

-> 저작권 정보 및 소유권 정보

-> 코드의 구현 의도 사술

-> 개발 시의 주의 사항, 중요 점

-> TODO

-> 공개 API일 경우 javadocs 작성

 

메소드 작성 시의 유의점

-> 역할을 이해할 수 있는 이름으로 생성

-> 메소드의 목적 달성에 필요한 파라미터만 인자로 받을 것

-> 매개변수는 메서드 내에서 변경하지 않는 것이 원칙

-> 값에 대한 유효성 체크

-> 하드코딩은 제거

-> 변수는 앞단에 선언

 

메서드의 분할 ( 클린코드 즉, 단순하고 이해하기 쉬운 코드를 위해 인지하기 쉬운 단윌 분할 작업이 필요. )

->Master Method / Sub Methods의 분할 

   Master Method → Sub Method 

                ↘                         ↘                       코드 중복의 최소화

            Method  Sub Method  Sub Method

-> 추상화 수준을 일치시킨다. 

반응형

'Study > 디자인 & 설계' 카테고리의 다른 글

strategy pattern  (0) 2019.08.08
TDD  (0) 2019.05.25