좋은코드 나쁜코드: 프로그래머의 코드 품질 개선법(PART II 실전)
CHAPTER 5 가독성 높은 코드를 작성하라
가독성은 주관적인것
서술형 명칭 사용
- 서술적이지 않은 이름은 코드를 읽기 어렵게 만든다
- 주석문으로 서술적인 이름을 대체할수 없다
- 주석도 유지보수 해야된다
주석문의 적절한 사용
주석문의 목적
- 코드가 무엇을 하는지 설명
- 코드가 왜 그 일을 하는지 설명
- 사용 지침 등 기타 정보 제공
코드 기능을 설명하기 위해 주석문을 많이 추가해야 되면 가독성이 떨어진다는 신호
- 중복된 주석문은 유해할 수 있다
- 주석도 유지보수 해야 된다
- 코드를 지저분하게 만든다
- 주석문으로 가독성 높은 코드를 대체할 수 없다
- 주석문은 코드의 이유를 설명하는데 유용하다
- 주석문은 유용한 상위 수준의 요약 정보를 제공할 수 있다
- 책 읽을때 줄거리
코드 줄 수를 고정하지 말라
- 간결하지만 이해하기 어려운 코드는 피해라
- 많은줄이 필요하더라고 가독성 높은 코드를 작성하라
일관된 코딩 스타일을 고수하라
- 일관적이지 않은 코딩 스타일은 혼동을 일으킬 수 있다
- 스타일 가이드를 채택하고 따르라
깊이 중첩된 코드를 피하라
일반적인 코드가 갖는 중첩되는 블록
함수가 호출되면 그 함수가 실행되는 코드가 하나의 블록이 된다
if문의 조건이 참일 때 실행되는 코드는 하나의 블록이 된다
for루프의 각 반복시 실행되는 코드는 하나의 블록이 된다
깊이 중첩된 코드는 읽기 어려울 수 있다
- 중첩을 최소화하기 위한 구조 변경
중첩은 너무 많은 일을 한 결과물이다
- 더 작은 함수로 분리
함수 호출도 가독성이 있어야 한다
함수의 이름이 잘 명명되면 그함수가 무슨일을 하는지 분명하지만 인수가 무엇이고 무슨역활을 하지는 명롹하지 않다면 호출이 이해되지 않는다
- 매개변수는 이해하기 어려울 수 있다
- 명명된 매개변수 사용
- 서술적 유형 사용
- 열거형
- 클래스
- 때로는 훌륭한 해결책이 없다
- 주석?
- 세터 함수
- 빌더 패턴
- IDE는 어떤가?
- 가독성에는 의존하지 않는것이 좋다
- 모든 개발자가 사용하는게 아닐수 있다
- 가독성에는 의존하지 않는것이 좋다
설명되지 않은 값을 사용하지 말라
하드코드로 작성된 값이 필요한 경우
- 한 수량을 다른 수량으로 변환 할때 사용하는 계수
- 작업이 실패할 경우 재시도의 최대 횟수와 같이 조정 가능한 파라미터 값
- 어떤 값이 채워질 수 있는 템플릿을 나타내는 문자열
하드 코드로 작성된 모든 값에 있는 두가지 중요한 정보
값이 무엇인지
값이 무엇을 의미 하는지
설명되지 않은 값은 혼란스러울 수 있다
- 잘 명명된 상수를 사용하라
- 잘 명명된 함수를 사용하라
- 상수를 반환하는 공급자 함수
- 변환을 수행하는 헬퍼 함수
익명 함수를 적절하게 사용하라
- 익명 함수는 간단한 로직에 좋다
- 재사용 관점에서 명명함수가 유용할때가 있다
- 익명 함수는 가독성이 떨어질 수 있다
- 대신 명명 함수를 사용하라
- 익명 함수가 길면 문제가 될 수 있다
- 긴 익명 함수를 여러 개의 명명 함수로 나누라
프로그래밍 언어의 새로운 기능을 적절하게 사용하라
- 새 기능은 코드를 개선할 수 있다
- 불분명한 기능은 혼동을 일으킬 수 있다
- 작업에 가장 적합한 도구를 사용하라