Today I Learn

[TIL] "클린코드" 10일 차

diligentCat 2024. 7. 9. 04:17

DAY 10

오늘 읽은 범위 : 10장, 클래스

 

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

  1. 클래스를 정의하는 표준 자바 관례에 따르면, 가장 먼저 변수 목록이 나온다. (p.172)
  2. 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다. (p.172)
  3. 클래스를 만들 때 첫 번째 규칙은 크기다. 클래스는 작아야 한다. 두 번째 규칙도 크기다. 더 작아야 한다. (p.172)
  4. 클래스 이름은 해당 클래스 책임을 기술해야 한다. 실제로 작명은 클래스 크기를 줄이는 첫 번째 관문이다. 간결한 이름이 떠오르지 않는다면 필경 클래스 크기가 너무 커서 그렇다. (p.175)
  5. 클래스 설명은 만일("if"), 그리고 ("and"), -(하)며 ("or"), 하지만 ("but")을 사용하지 않고서 25단어 내외로 가능해야 한다. (p.175)
  6. 단일 책임 원칙은 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는 원칙이다. (p.175)
  7. 우리들 대다수는 두뇌 용량에 한계가 있어 '깨끗하고 체계적인 소프트웨어'보다 '돌아가는 소프트웨어'에 초점을 맞춘다. (p.176)
  8. 규모가 어느 수준에 이르는 시스템은 논리가 많고도 복잡하다. 이런 복잡성을 다루려면 체계적인 정리가 필수다. (p.177)
  9. 클래스는 인수턴스 변수 수가 작아야 한다. 각 클래스 메서드는 클래스 인스턴스 변수를 하나 이상 사용해야 한다. 메서드가 변수를 더 많이 사용할수록 메서드와 클래스는 응집도가 더 높다. (p.177)
  10. 응집도를 유지하면 작은 클래스 여럿이 나온다. (p.178)
  11. 깨끗한 시스템은 클래스를 체계적으로 정리해 변경에 수반하는 위럼을 낮춘다. (p.185)
  12. 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장할 뿐 기존 코드를 변경하지는 않는다. (p.188)
  13. 결합도가 낮다는 소리는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미다. (p.190)

오늘 읽은 소감은? 떠오른 생각을 가볍게 적어보세요

  • 클린코드는 Java를 기준으로 작성된 코드가 많아 그리고 나의 프로그램 공부가 깊지 않아 많은 단어가 이해가 가지않고, 이로인해 바로바로 와닿는 부분이 없고 여러번 읽으면서 체득해 가야 할 것 같다. 사실 겪어본 언어가 JS 뿐이라 Java의 기준으로 설명할 때 잘 이해가 되지않는다. 그렇다고 내가 JS를 마스터 한 것은 아니기에 연관지어 생각하기도 쉽지 않았다. 물론 지금 세상에 하나의 언어만 배워 살 수는 없기 때문에 Java를 꼭 배워보고 싶은 마음이 든다. 

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

'Today I Learn' 카테고리의 다른 글

[Python] 챌린지 1일차  (0) 2024.08.08
[TIL] "클린코드" 11일차  (0) 2024.07.12
[TIL] "클린코드" 9일차  (2) 2024.07.05
[TIL] "클린코드" 8일차  (1) 2024.07.03
[TIL] "클린코드" 7일차  (1) 2024.07.01