독서일지/클린 코드

클린 코드 독서일지 - Day 18

Sadie Kim 2023. 11. 13. 23:13

클래스

깨끗한 클래스가 깨끗한 코드를 만든다.

클래스 체계

표준 자바 관례에 따르면,

  1. 정적 공개 상수
  2. 정적 비공개 변수
  3. 비공개 인스턴스 변수
  4. 공개 함수
  5. 비공개 함수(자신을 호출하는 공개 함수 직후에 등장)
    순으로 정의되며 클래스를 구성한다.
    => 추상화 단계가 순차적으로 내려가 신문 기사처럼 읽힌다.

캡슐화

변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫다.

클래스는 작아야 한다!

클래스는 작게 만드는 것이 기본 규칙
-> 하나의 클래스는 하나의 책임만 맡아야 한다.

  • 클래스 이름은 해당 클래스 책임을 기술해야 한다. (클래스 이름이 모호하다면 클래스 책임이 너무 많아서일 확률 높음. Processor, Manager, Super 등과 같은 단어들)
  • 클래스 설명은 만일(if), 그리고(and), 또한(or), 하지만(but)을 사용하지 않고서 25단어 내외로 가능해야 한다.
    만일 클래스 설명에 위의 단어들이 사용된다면 책임이 너무 많다는 증거다.

단일 책임 원칙

클래스나 모듈을 변경할 이유가 단 하나뿐이어야 한다는 원칙.
단일 책임 클래스는 규모가 큰 시스템을 다루는 데 필수다.

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

응집도

일반적으로 메서드가 클래스의 인스턴스 변수를 더 많이 사용할수록 응집도가 높다고 한다.
응집도가 높은 클래스는 메서드와 변수가 서로 의존하며 논리적인 단위로 묶이게 된다. -> 응집도를 높이는 게 좋다.

응집도를 유지하면 작은 클래스 여럿이 나온다

“함수를 작게, 매개변수 목록을 짧게” 전략을 따르다 보면 몇몇 메서드만이 사용하는 인스턴스 변수가 많아지게 됨
-> 응집도가 높아지도록 작은 클래스 여럿으로 쪼갤 수 있다.
=> 프로그램이 체계가 잡히고 구조가 투명해짐.