#3_Clean Code(클린 코드)를 읽고(7,8,9,10장 정리) :: 개발/일상_Mr.lee

#3_Clean Code(클린 코드)를 읽고(7,8,9,10장 정리)

Posted by Mr.mandu.
2019. 4. 22. 08:16 개발/서적

주확색 배경으로 처리해둔 글자는 필자가 따로 공부해야 하는 부분을 체크해둔 것입니다.

7. 오류처리

   ○ 오류 코드보다 예외를 사용하라

 

   ○ 호출자를 고려해 에외 클래스를 정의하라

 

   ○ 코드 감싸기(wrapper)클래스 136p 공부

 

   ○ null 전달, 반환하지마라

 

8. 경계

   ○ 경계 살피고 익히기  

      - 곧바로 우리쪽 코드를 작성해 외부 코드를 호출하는 대신  먼저 간단한 테스트 케이스를 작성해 외부 코드를 익히면 어떨까?

         이를 학습테스트라 부른다.

 

   ○ 아직 존재하지 않는 코드를 사용하기  

      - Adapter 패턴으로 API사용을 캡슐화해 API가 바뀔 때 수정할 코드를 한곳에 모아서 테스트 했다(Adapter 패턴 공부)

 

9. 단위테스트

   ○ 깨끗한 테스트 코드 유지하기  

      - 잡다하고 세세한 코드를 거의다 없앰(중복제거 포함)

 

   ○ 테스트 당 assert 하나  

      - 하나로 안될때는 코드를 나누면 된다. 그러면 중복되는 코드가 많을 수도 있다.  이때 Template Method 패턴 을 이용하면 중복을 

         제거 할 수 있다.  

      - 때로는 주저 없이 함수 하나에 여러 assert 문을 넣기도 한다. 단지 assert 문 개수는 최대한 줄여야 좋다는게 생각이다.

 

10.클래스

   ○ 클래스 체계  

      - 변수 목록 다음에는 공개 함수가 나온다. 

      - 비공개 함수는 자신을 호출하는 공개 함수 직후에 넣는다. 즉, 추상화 단계가 순차적으로 내려간다.

 

   ○ 클래스는 작아야한다!  

      - 작명은 클래스 크기를 줄이는 첫 번째 관문이다.  

      -  클래스 설명은 if, and, or, but을 사용하지 않고서 25단어 내외로 가능해야 한다.  

      - 단일 책임 원칙(Single Responsibility Principle)은 클래스나 모듈을 변경할 이유가 단 하나뿐이어야 한다는 원칙이다.  

      - 큰 클래스 몇개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다.

      - 응집도    

        ☞ 클래스는 인스턴스 변수 수가 작아야 한다. 

        ☞ 각 클래스 메서드는 클래스 인스턴스 변수를 하나 이상 사용해야 한다. 

        ☞ 일반적으로 메서드가 변수를 더 많이 사용할수록 메서드와 클래스는 응집도가 높다.

        ☞ 모든 인스턴스 변수를 메서드마다 사용하는 클래스는 응집도가 높다.

        ☞ 응집도가 높다는 말은 클래스에 속한 메서드와 변수가 서로 의존하며 논리적인 단위로 묶인다는 의미이다.   

        ☞ 응직도가 높아지도록 변수와 메서드를 적절히 분리해 새로운 클래스 두세 개로 쪼개준다.  

             (설명 : 인스턴스변수 : 클래스 내부에 위치  )

 

   ○ 변경하기 쉬운 클래스  

      - OCP(Open-Closed Principle) 확장에 개방적이고 수정에 폐쇄적이어야한다는 원칙  

      - 결합도가 낮다 : 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미

      - DIP(Dependency Inversion Principle) : 상세한 구현이 아니라 추상화에 의존해야 한다는 원칙