클린코드
코드를 짬에 있어서 클린 코드란 무엇일까?
Clean Code(2013) 책을 보고 한 줄 씩 나열하면서 클린코드
란 무엇인지 생각해보도록 하자
1. 클린코드
- 코드 = 요구사항을 표현하는 언어
- 처음부터 좋은 코드를 짜는 것이 좋다
- 좋은 코드는 생산성을 상승시킨다.
클린코드란?
- 보기에 즐겁고 우아한 코드 (논리를 이해하기 쉽고 구조가 깔끔한 코드) ⇒ 가독성
- 반드시 필요한 내용만 담아야 하며 다른 사람이 이해하기 쉽고 고치기 쉬워야한다.
- 오류 처리가 철저한 코드 ,
- 한가지 목적인 코드
- 좋은 코드들의 예시를 보고 연습을 하는 것을 중요
2. 의미있는 이름
- 의도가 분명하게 드러나도록 이름을 지어야한다.
- 발음하기 쉽게 작명하자
- 특정 상수 같은 경우에도 이름을 지어주면 좋다 (3600 ⇒ SECOND_FOR_HOUR)
- 루프문에서도 변수를 잘 짓자
- 메소드 이름은 동사가 좋다
- 개념 하나 당 단어 하나를 쓰자 ( 다른 맥락인데도 일관성을 고려한다고 하나로 쓰면 곤란)
3. 함수
- 함수는 작을 수록 좋다.
- if 문에 들어가는 블록은 한줄이어야 한다.
- 그 한줄에서 다른 함수를 호출한다
- 한 함수는 한가지 일을 해야한다.
- 서술적인 함수 이름을 사용하자 (길어도 괜찮다.)
- 함수의 인수는 최대한 사용하지 않는 것이 좋다
- return break continue 를 여러차례 사용하는 것이 의도를 표현하기 쉬울 수 있다.
4. 주석
- 주석을 최대한 줄이자
- 주석을 달기보다는 설명 필요없이 명확한 코드로 고치면 된다.
- 함수를 분리 하거나 이름을 잘 붙여서 코드만 봐도 의미가 파악되도록 한다.
5. 코드 규칙
- 당장 돌아가는 코드를 짜는 것보다 가독성 좋은 코드를 짜는 것이 중요하다.
- 각 개념을 빈 행으로 분리하자.
- 연관성 있는 코드( 비슷한 동작을 하는 코드) 를 가까이 붙여주자.
6. 오류
- 함수를 호출한 즉시 오류를 확인하는 것은 번거로우니 오류가 발생하면 예외를 던지는 것이 깔끔하다
- try-catch-finally문부터 작성한다.
- 오류 메세지에 정보를 담는다
- 외부 API를 사용하면서 오류를 캐치해야 할 때는 해당 클래스를 감싸는 클래스를 만들어 예외들을 잡아 하나로 묶어서 던져준다.
- 메소드가 null을 반환하지 않도록 하자.
7. 테스트
- 프로그램에서 사용하려는 방식대로 외부 API를 호출해보고 테스트한다.
- 아직 존재하지 않는 API를 사용하기 위해 우리가 필요한 인터페이스를 미리 정의하고, 나중에 어댑터 패턴을 사용해 간극을 메우고 API가 바뀔 때 수정할 코드를 모아둔다.
- 외부 패키지를 직접 호출하는 코드를 줄여서 경계를 관리하자.
8. TDD 법칙 테스트 주도 개발
- 싫패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
- 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.
- 테스트 코드는 가독성이 가장 중요하다.
- 테스트 함수마다 개념 하나만 테스트해야한다.