본문 바로가기

Clean Code

13, 14일차 TIL 클래스

DAY 13, 14

오늘의 책 읽기: 10장. 클래스 까지

🤓 책에서 기억하고 싶은 내용

정적 공개 상수가 맨 처음에 나온다. 다음으로 정적 비공개 변수가 나오며, 이어서 비공개 인스턴스가 나온다. 공개 변수가 필요한 경우는 거의 없다.
변수 목록 다음에 공개 함수가 나온다. 비공개 함수는 자신을 호출하는 공개 함수 직후에 넣는다.

 

클래스를 설계할 때도 함수와 마찬가지로, '작게'가 기본 규칙이라는 의미다.
얼마나 작아야 하는가? ... 클래스가 맡은 책임을 센다.

 

클래스 이름은 해당 클래스 책임을 기술해야 한다.
간결한 이름이 떠오르지 않는다면 필경 클래스 크기가 커서 그렇다.

 

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

 

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

 

클래스는 인스턴스 변수 수가 작아야 한다.
각 클래스 메서드는 클래스 인스턴스 변수를 하나 이상 사용해야 한다.
일반적으로 메서드가 변수를 더 많이 사용할수록 메서드와 클래스는 응집도가 더 높다.

 

큰 함수 일부를 작은 함수 하나로 빼내고 싶은데 빼내려는 코드가 큰 함수에 정의된 변수 넷을 사용한다.
그렇다면 변수 네 개를 새 함수에 인수로 넘겨야 옳을까?
네 변수를 클래스 인스턴스 변수로 승격한다면 새 함수는 인수가 필요없다.

 

시스템의 결합도를 낮추면 유연성과 재사용성도 더욱 높아진다.
결합도가 낮다는 소리는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미다.
시스템 요소가 서로 잘 격리되어 있으면 각 요소를 이해하기도 더 쉬워진다.

 

🥰 오늘의 소감

클래스를 구현할 때 객체 지향 프로그래밍을 지향하기 위해 인터페이스,추상 클래스를 사용해 구현이 미치는 영향을 격리하는 것이 중요하다는 것을 다시금 느꼈다. 코드를 많이 짜봐야 클래스의 크기, 책임에 대한 이해가 커질 것 같다.

 

🤔 궁금한 내용

없음

'Clean Code' 카테고리의 다른 글

Clean Code 챌린지 완주  (0) 2024.03.22
11, 12일차 TIL 단위 테스트  (0) 2024.03.16
9, 10일차 TIL 오류처리  (0) 2024.03.14
8일차 TIL 객체와 자료 구조  (0) 2024.03.11
7일차 TIL 형식 맞추기  (0) 2024.03.10