본문 바로가기

Clean code

(3)
Clean Code 9장 - 단위테스트 Clean Code - 단위테스트실제 코드를 작성하기 전에 단위 테스트를 작성하라첫번째 법칙 : 실패하는 단위 테스트를 작성하기 전에 실제 코드를 작성하지 않는다.두번째 법칙 : 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위테스트를 작성한다.세번째 법칙 : 현재 실패하는 테스트를 통과할 정도로만 코드를 작성한다. 위의 법칙대로 작성을 하면 테스트 코드와 실제 코드가 빠른 주기로 묶인다. 이렇게 되면, 실제 코드와 맞먹는 정도의 방대한 테스트 코드가 나와 심각한 관리 문제가 생긴다. 깨끗한 테스트 코드 유지하기테스트 코드는 메인 코드와 다르게 대충 짜도 된다는 의식을 많이 가지고 있다. 테스트 코드를 대충 짜면 어떠한 문제가 생길까?메인 코드 버전업 -> 테스트 실패테스트 코드를 수정해야 하지만..
Clean Code 12장 - 우수한 설계를 위한 규칙 우수한 설계를 위한 규칙켄트 백이 제시한 다음 규칙을 따르면 설계는 '단순하다'고 우리는 믿고 있다. 모든 테스트를 실행한다.중복을 없앤다.프로그래머의 의도를 표현한다.클래스와 메소드 수를 최소로 줄인다.이 순서는 중요도 순이다! 하나하나씩 살펴보자~우수한 설계를 위한 규칙 1 - 모든 테스트를 실행한다.모든 테스트를 실행한다가 왜 우수한 설계를 위한 규칙일까? 모든 테스트 케이스를 만들려면 결합도가 높아서는 안된다. 한 클래스 함수에서 하나 이상의 책임을 가지고 있으면 테스트 케이스를 만들기 어려워진다. 그러면 자연스럽게 단일 책임 원칙을 지키게 된다. 또한, 다른 클래스와 결합도가 높으면 테스트가 힘들어지기 때문에 자연스럽게 의존성 주입을 사용하게 된다. 결국, 테스트 케이스를 모두 실행 시키다보면 ..
Clean Code - 클래스 클래스 이름은 클래스의 책임을 기술해야 한다. 만약, 클래스 이름을 짓기가 애매하다면 내가 클래스에 너무나도 많은 기능을 넣고 있다는 것이다. EX : Manager, Processor등과 같이 모호한 단어가 좋지 않은 예이다. 클래스 메서드가 클래스 인스턴스 변수를 더 많이 사용하도록 짜라. 단지, 인스턴스 변수가 많아야 한다는 소리가 아니다. 모든 인스턴스 변수를 각 클래스 메소드마다 쓰면 좋다. => 결국 이게 응집도가 높다는 말이다. 응집도를 높이려면 어떻게 해야할까?변수가 아주 많은 큰함수를 찾아보자. 큰함수를 작은함수 단위로 쪼개보자. 그러다보면, 빼내려는 작은함수에서 변수 넷을 사용해야 한다. 인수만 많아지고 더러워지자나... 인수 X, 클래스 인스턴스 변수 O 여기까지만 보면 응집도가 낮아..