클린코드 북클럽 - 10장 클래스

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

책에서 기억하고 싶은 내용

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

  • 소프트웨어를 돌아가게 만드는 활동과 소프트웨어를 깨끗하게 만드는 활동은 완전히 별개다. 우리들 대다수는 두뇌 용량에 한계가 있어 ‘깨끗하고 체계적인 소프트웨어’보다 ‘돌아가는 소프트웨어’에 초점을 맞춘다. (중략) 문제는 우리들 대다수가 프로그램이 돌아가면 일이 끝났다고 여기는 데 있다. ‘깨끗하고 체계적인 소프트웨어’라는 다음 관심사로 전환하지 않는다. (p.176)

  • 첫째, 리팩터링한 프로그램은 좀 더 길고 서술적인 변수 이름을 사용한다. 둘째, 리팩터링한 프로그램은 코드에 주석을 추가하는 수단으로 함수 선언과 클래스 선언을 활용한다. 셋째, 가독성을 높이고자 공백을 추가하고 형식을 맞추었다. (p.185)

  • OCP(Open-Closed Principle)란 클래스란 확장에 개방적이고 수정에 폐쇄적이어야 한다는 원칙이다. (p.188)

  • 새 기능을 수정하거나 기존 기능을 변경할 때 건드릴 코드가 최소인 시스템 구조가 바람직하다. 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장할 뿐 기존 코드를 변경하지는 않는다. (p.188)

오늘 읽은 소감

  • 모든 개발을 모듈로 한 나는 클래스가 필요한가? 라는 생각을 많이 했다. 그런데 예전에 강의에서 Fake API를 사용하다가 실제 API로 변경할 때 클래스를 사용하는 것을 보았다. 네트워크 내부 구현 사항을 private으로 만들어서 숨기고 동일한 인터페이스를 가지고 다른 구현사항을 만들어 주기 위해서라고 하셨다. 아직까지 정보 은닉 외에는 클래스를 사용하는 필요를 크게 느끼진 못했다. 그러나 저자가 코드의 표현력과 그 코드로 이루어진 함수에 아무리 신경 쓸지라도 좀 더 차원 높은 단계까지 신경 쓰지 않으면 깨끗한 코드를 얻기는 어렵다 라고 말한 것처럼 클래스를 사용하여 더 좋은 코드를 작성하는 것에도 열려 있도록 방법을 제한하지는 않아야겠다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용

  • 단일 책임 원칙에서 말하는 변경할 이유는 어떤 것이어야 하는지? 클래스나 모듈을 더 이상 줄일 수 없을 때까지 줄여야 하는지 (추상화를 어느 레벨까지..?)

#노개북 #노마드코더 #개발자북클럽

카테고리:

업데이트:

댓글남기기