클린 코드 9장 : 단위 테스트
이중 표준의 본질이란? 상황에 따라 좋은 코드는 다르다.
운영 환경에서는 메모리나 CPU 효율을 고려하는 것이 좋은 코드겠지만, 테스트 환경에서는 고려할 필요 없이 테스트하기 쉬운 코드가 좋은 코드이다.
테스트 코드를 작성하면 최대한 운영코드와 비슷하게 작성하려고 했었는데, 그럴 필요가 없다는 것을 알게 되었다. 테스트 코드의 목적을 우선적으로 고려하는 것이 더 중요하다.
깨끗한 테스트의 다섯 가지 규칙 : F.I.R.S.T
Fast, Independent, Repeatable, Self-Validating, Timely
테스트와 관련해서 의사소통할 때 대화를 시작할 수 있는 규칙들인 것 같다.
클린코드 10장 : 클래스
단일 책임원칙 : SRP(Single Responsibility Principle)
클래스나 모듈을 변경할 이유가 하나뿐이어야 한다는 원칙이다.
클래스의 경우 '책임'이라는 기준으로 나눈다는 게 요점이다. 이 부분은 단기간에 습득하기는 어렵기 때문에 많은 시도를 해봐야 할 것 같다.
응집도
클래스는 인스턴스 변수 수가 작아야 한다.
일반적으로 메서드가 변수를 더 많이 사용할수록 메서드와 클래스는 응집도가 높다.
몇몇 메서드만이 사용하는 인스턴스 변수가 많아진다면 새로운 클래스로 쪼개야 한다는 신호다.
큰 함수를 작은 함수 여럿으로 쪼개다 보면 종종 작은 클래스 여럿으로 쪼갤 기회가 생긴다.
응집도를 높이기 위한 좋은 팁이라고 생각한다. 또한 응집도를 올리다 보면 단일 책임원칙에도 도움이 될 것 같다는 생각을 했다.
변경으로부터 격리
Concrete 클래스에 의존하면 변화에 취약하기 때문에 Absctract 클래스에게 의존해야 한다.
특히 외부 API를 사용할 떄 Absctract 클래스를 만들어서 사용하는 것이 좋다.
인터페이스가 필요한 이유에 대해 하나 더 알게 되었습니다.
'TIL' 카테고리의 다른 글
2022/01/17 TIL (0) | 2022.01.17 |
---|---|
2022/01/16 TIL (0) | 2022.01.17 |
2022/01/14 TIL (0) | 2022.01.14 |
2022/01/13 TIL (0) | 2022.01.14 |
2022/01/12 TIL (0) | 2022.01.13 |