i-no.log
로그인
i-no.log
로그인
[클린 코드 읽고 정리해두고 다시 보기] 창발성
inho ha
·
2024년 9월 22일
팔로우
0
클린 코드
0
클린 코드 읽고 정리해두고 다시 보기
목록 보기
11/16
창발적 설계로 깔끔한 코드를 구현하자
켄트 벡이 제시한 단순한 설계 규칙 4가지는 소프트웨어 설계 품질을 크게 높여준다.
모든 테스트를 실행한다.
중복을 없앤다.
프로그래머 의도를 표현한다.
클래스와 메서드 수를 최소로 줄인다.
단순한 설계 규칙 1: 모든 테스트를 실행하라
모든 테스트를 실행하기 위해서는 테스트 케이스를 작성해야한다.
테스트가 가능한 시스템을 만들려고 애쓰면 설계 품질이 높아진다.
SRP를 준수하여 하나의 책임만 가지만 클래스가 테스트 하기 쉽다.
DIP, DI, 인터페이스, 추상화 등과 같은 도구로 결합도를 낮춘 클래스가 테스트 하기 쉽다.
테스트 케이스를 작성하고 실행하다보면 낮은 결합도와 높은 응집력이라는 객체 지향 방법론이 지향하는 목표를 달성할 수 있다.
단순한 설계 구칙 2~4: 리팩터링
작성한 테스트 케이스를 사용해서 기존 기능을 깨뜨리지 않는지 확인하면서 리팩토링을 진행한다.
중복을 없애라
공통적인 코드를 새 메서드로 뽑아내고, 클래스가 SRP를 위반하면 메서드를 다른 클래스로 옮겨라.
TEMPLATE METHOD 패턴으로 고차원 중복을 제거하라.
표현하라
코드를 작성하는 동안에는 코드를 이해하고 있지만, 유지보수시에 다른 사람이 보거나 오랜 시간 뒤에 보면 이해하기 어렵다.
좋은 이름을 선택하라.
함수와 클래스 크기를 가능한 줄여라. 작으면 이름 짓기 쉽고, 구현하기 쉽고, 이해하기 쉽다.
표준 명칭을 사용하라. 표준 패턴 사용시에 클래스 이름에 패턴 이름을 넣어 설계 의도를 이해하기 쉽게 하라
단위 테스트 케이스를 꼼꼼하게 작성하라. 테스트 케이스는 일종의 기능 명세 역할을 해준다.
클래스와 메서드 수를 최소로 줄여라
클래스와 메서드의 크기를 줄이기 위해 과도하게 많은 클래스와 메서드를 만들면 이득보다 손해가 클 수 있다.
inho ha
inho ha / ian(swatchon) / iha(42seoul)
팔로우
이전 포스트
[클린 코드 읽고 정리해두고 다시 보기] 시스템
다음 포스트
[클린 코드 읽고 정리해두고 다시 보기] 동시성
0개의 댓글
댓글 작성