클린코드

7장~10장

달팽이포뇨 2022. 6. 2. 20:53

7장 - 예외처리

오류가 발생하면 예외를 던져라!

try문에서 실행하는 메소드를 정의할 때 예외를 throws하는 형식으로 코드를 작성한다.

try-catch-finally문을 작성하여 프로그램 안에다 범위를 정의하자.

강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장한다.

예외를 던질 때 로깅을 하는 것이 좋다.

외부API를 사용할 때 감싸기 기법(Wrapper 사용)를 쓰는 것이 좋다.

null을 반환/전달하지 말아라.

 

8장 - 경계

외부 코드를 내 코드에 깔끔하게 통합하는 방법

Generics 사용하는 것도 좋지만 사용자에게 불필요한 기능까지 제공한다는 단점이 있다.

경계 인터페이스를 다른 클래스 안으로 숨겨서 공개 API의 인수로 넘기거나 반환값으로 사용하지 않는 것이 좋다.

이때, 경계 인터페이스를 담는 클래스는 사용자에게 필요한 기능만을 제공해야한다.

 

외부 코드 테스트 필요

일단 공식문서대로 작성하여 예상대로 동작하는지 확인

테스트 케이스를 작성하여 외부 코드 익히기 - log4j 이용 - 실제 코드와 동일한 방식으로 인터페이스를 사용하는 테스트 케이스 필요 - 낡은 버전을 필요 이상으로 오래쓰지 않기

 

아직 존재하지 않는 코드(모르는 코드)와 아는 코드를 분리하는 것이 테스트하기에 좋다.

 

깨끗한 경계

경계가 깔끔하다면 코드를 변경하는데 많은 노력과 시간이 필요하지 않다. 경계에 위치하는 코드를 깔끔하게 분리하여 통제 가능한 내가 만든 코드에 의존하도록 만든다. 외부 패키지를 호출하는 코드를 가능한 줄여 경계를 관리하고 일정한 패턴으로 관리하면 코드 가독성이 높아지고 변경할 코드도 줄어든다.

 

9장 - 단위 테스트

애자일과 TDD -  테스트 주도 개발로 CS분야가 눈부시게 성장을 이뤘다. 더욱 더 성장하기 위해서는 정말 제대로 된 테스트 케이스를 작성하는 것이 중요하다!

 

TDD 법칙 3가지

1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.

2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.

3. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.

 

'지저분해도 빨리'

 

10장 - 클래스

깨끗한 클래스 만들기

 하나의 변경을 위해 하나의 클래스만 변경해야한다. 즉, 클래스를 작게 쪼개야한다. 쪼갤수록 구조가 명확해진다.

클래스의 크기가 작고 클래스 간에 의존도를 줄여서 클래스의 책임이 줄어들게 만든다. 그래야 변경하기 쉬워진다.

 깨끗한 클래스는 가독성이 높아야하며 코드 간에 일정한 형식을 가져야한다.

 클래스 구성 순서

-정적 공개 상수

-정적 비공개 변수

-비공개 인스턴스 변수

-공개 함수

-비공개 함수(자신을 호출하는 공개 함수 직후에 위치)

'클린코드' 카테고리의 다른 글

15장~16장  (0) 2022.06.30
14장  (0) 2022.06.30
11장~13장  (0) 2022.06.27
4장-6장  (0) 2022.04.06
1주차 1장~3장  (0) 2022.03.30