개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫지만 반드시 숨겨야 한다
는 법칙도 없다.
가독성을 높이고자 공백을 추가하고 형식을 맞추었다.
OCP란 클래스는 확장에 개방적이고 수정에 폐쇄적이어야
한다는 원칙이다.
TIL (Today I Learned) 날짜
2022. 05. 12
오늘 읽은 범위
10장. 클래스
책에서 기억하고 싶은 내용을 써보세요.
변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫지만 반드시 숨겨야 한다
는 법칙도 없다. (p.172)
단일 책임 원칙Single Responsibility Principle, SRP2은 클래스나 모듈을 변경할 이유가
하나, 단 하나뿐이어야 한다는 원칙이다. (p.175)
소프트웨어를 돌아가게 만드는 활동과 소프트웨어를 깨끗하게 만드는 활동
은 완전히 별개다. (p.176)
큰 클래스 몇 개가 아니라 작은 클래스
여럿으로 이뤄진 시스템이 더 바람직하다. 작은 클래스는 각자 맡은 책임이 하
나며, 변경할 이유가 하나며, 다른 작은 클래스와 협력해 시스템에 필요한 동작
을 수행한다. (p.176)
첫째, 리팩터링한 프로그램은 좀 더 길고 서술적인 변수 이름을 사용한다. 둘째,
리팩터링한 프로그램은 코드에 주석을 추가하는 수단으로 함수 선언과 클래스
선언을 활용한다. 셋째, 가독성을 높이고자 공백을 추가하고 형식을 맞추었다.
(p.185)
update 문을 추가할 때 기존 클래스를 변경할 필요가 전혀 없다는 사실 역시
중요하다! update 문을 만드는 논리는 Sql 클래스에서 새 클래스 UpdateSql을
상속받아 거기에 넣으면 그만이다. update 문을 지원해도 다른 코드가 망가질
염려는 전혀 없다. (p.188)
OCP란 클래스는 확장에 개방적이고 수정에 폐쇄적이어야
한다는 원칙이다. (p.188)
시스템 요소가 서로 잘 격
리되어 있으면 각 요소를 이해하기도 더 쉬워진다. (p.190)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
클래스를 작게 한다는 의미가 처음에는 와닿지 않았지만 예시문들을 보면서 조금 이해한듯 하다. 결국 클래스 단위의 코드에서 확장에 개방적이고 수정에 폐쇄적으로 하려면 클래스를 작게 만들어야 관리가 쉽고 클린 코드의 길로 갈 수 있다는 것이 핵심인 것 같다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
오늘 읽은 다른사람의 TIL