Clean Code #10

안성은·2022년 3월 9일
0

Clean Code

목록 보기
10/10

10장. 클래스


1. 책에서 기억하고 싶은 내용을 써보세요.

  • 변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫지만 반드시 숨겨야한다는 법칙도 없다. 하지만 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다.
  • 클래스는 작게 또 작게, 매우 작게 만들어야한다.
  • 클래스 이름은 해당 클래스의 크기를 결정한다.
  • SRP(Single Responsibility Principle)는 클래스나 모듈을 변경해야 하는 이유가 단, 하나뿐이어야한다.
  • 단일 책임 클래스가 많아지면 큰 그림이 어려워진다고 하지만 필요없는 내용까지 알아야하고 결과적으로 작은 클래스로 나누는 것이 시스템적으로도 더 바람직하다.
  • 클래스는 인스턴스 변수가 작아야한다. 클래스에 속하는 변수와 메서드가 서로 의존할 수록 논리적인 단위로 묶이기 때문이다. -> 응집도가 높아진다.
  • 응집도가 높다면 변수와 메서드를 적절히 분리해 새로운 클래스로 쪼개야한다.
  • 클래스를 분리하면 코드의 양은 몇 배나 많아질수도 있지만 지속적인 변경에는 더 좋은 대응이 가능하다.
  • 새 기능을 수정하거나 기존 기능을 변경할 때 건드릴 코드가 최소인 시스템 구조가 바람직하다.
  • 이상적인 시스템은 새 기능을 추가할 때 기존 코드를 변경하지 않는 것이다. 그래서 우리는 인터페이스와 추상 클래스를 사용해서 구현에 의존하는 것을 낮춘다
  • 작은 단위로 클래스를 분리하면 테스트를 하기에도 용이하고 유연성과 재사용성도 더욱 높아진다. 결과적으로 DIP도 만족하게 된다.

2. 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요.

3. 궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

세줄 요약

  1. 클래스는 작게, 그리고 작게, 마지막으로 작게 만드는 것이 좋다.
  2. 클래스를 분리하면 코드의 양이 많아지지만 유지 보수 및 재사용성에 용이해진다.
  3. 클래스를 작게 만들수록 SRP, OCP, DIP처럼 더욱 객체지향에 가까워진다.

0개의 댓글