창발적 설계로 깔끔한 코드를 구현하자
몇가지 설계 규칙으로 우수한 설계를 이끌어내자
켄트 백이 제시한 단순한 설계 규칙 4가지를 소개하고있다.
1. 모든 테스트를 실행하라
다양한 테스트 코드를 작성하는 시스템을 만드려 애쓰면 설계 품질이 높아진다.
개발자는 테스트 코드를 많이 작성하고 쉽게 테스트를 진행하려하기에 SRP , DIP와 같은 원칙을 지키려 추상화, 인터페이스, 의존성 주입등의 기술을 사용해 결합도를 낮춘다.
이에따라 자연스럽게 테스트 코드를 많이 작성하려 노력할수록 프로덕션코드의 설계 품질또한 같이 높아진다.
2. 리팩토링
테스트 케이스를 작성후 안전하게 코드와 클래스를 정리할 수 있다. ( 테스트라는 안전망이 존재하기때문에 )
리팩토링 단계에서는 응집도를 높이고, 결합도를 낮추고, 관심사를 분리하고, 함수와 클래스 크기를 줄이고, 더 나은 이름을 붙여주자
리팩토링은 프로그래머의 의도를 표현하고 클래스와 메서드 수를 줄이는 단계
3. 중복을 없애라
공통적인 코드를 메서드로 추출한뒤 SRP에 따라 새로운 클래스를 만들어 설계의 품질을 높이자
또한 템플릿 메서드패턴을 통해 고차원 중복을 제거하자.
4. 표현하라
개발자의 의도를 분명히 표현하는 코드를 작성하자
1. 좋은 이름을 선택하자
2. 함수와 클래스 크기를 줄이자
3. 표문 명칭을 사용하자 (ex. 디자인 패턴사용시 클래스에 디자인 패턴이름을 넣어 설계의도를 명확히해주자 )
4. 단위 테스트를 꼼꼼히 작성하자
클래스와 메서드 수를 최소로 줄여라
클린코드란 책의 문장검색을 진행하면 아마 "클래스와 메서드 크기를 줄여라" 가 제일 많을것이다.
귀가닳도록 밥아저씨가 하는 이야기니 명심하자.
동시성
13장인 동시성에서는 멀티 스레드를 실행하는 코드를 작성할 때 어려움과 그 어려움에 대처하는 방법과 문제점을 적고있다.
동시성이 필요한 이유?
서블릿을 예로들어 동시성에 대해 설명한다.
수많은 웹 사이트 사용자들이 있을때 사용자들은 기다리지않고 한꺼번에 요청을 처리해주길 원한다.
어떤 사용자도 웹사이트를 이용하며 자신의 차례가 올때까지 기다리는 사람은 없다.
동시성 방어 원칙
1. 동시성 관련 코드는 다른 코드와 분리되어 있어야 한다.
동시성 코드는 독자전인 개발, 변경, 조율 주기가 있다.
잘못 구현한 동시성 코드는 별의별 방식으로 실패하기때문에 주변에 다른 코드가 발목을 잡지 않더라도 동시성 하나만으로도 충분히 어렵다.
2. 자료를 캡술화 하라
공유필드가 많을 수록 버그를 찾아내기 어려워진다.
3. 쓰레드는 가능한 독립적으로 구성하라
'책 > CleanCode' 카테고리의 다른 글
10장 클래스 (0) | 2024.01.04 |
---|---|
8장 경계, 9장 단위테스트 (0) | 2024.01.01 |
7장 오류처리 (0) | 2023.12.31 |
6장 객체와 자료 구조 (0) | 2023.12.16 |
5장 형식 맞추기 (0) | 2023.12.14 |