본문 바로가기

Programming

[책 리뷰] Clean Code _ 완벽한 코드 작성을 위한 클린 코드

1.  의미 있는 이름

- 의도가 분명하게 이름을 지어야 한다. (변수, 함수, 클래스 이름 모두 존재 이유와, 수행 기능, 사용 방법까지 나타내어야 한다)
- 그릇된 정보를 피해라. 
- 의미있게 이름을 구분해라.
- 발음하기 쉬운 이름을 사용해라.
- 클래스의 이름은 명사나 명사구가 적합하다.
- 메소드의 이름은 동사나 동사구가 적합하다.
- 개념하나에 단어 하나를 쓸 것. (controller, manager / fetch, get, retrieve)같은 무분별한 이름 사용은 혼동을 준다.

2.  함수

- 작게 만들어라
- 더 작게 만들어라
(블록과 들여쓰기에 들어가는 블록은 한 줄이어야 한다.)
- 함수는 한 가지만 해야한다.
- 서술적인 이름을 사용하라.
- 이상적인 함수 인수 개수는 0개이다. 3개 이상은 피하는 것이 좋다.
- 부수효과를 일으키지 마라.
(checkPassword 함수 안에 sessionInintialize() 함수가 존재한다면, checkPasswordAndInitializeSession이라고 이름 지어라.
- 오류코드보다 예외를 사용해라. (Try/Catch block은 따로 뽑아내어 함수화하는 것이 좋다.)
- 반복하지 마라.
- 함수는 글짓기다.

3. 주석

- 주석은 나쁜 코드를 보완하지 못한다.
- 코드로 의도를 표현하자.
- 좋은 주석
  - 법적인 주석
  - 정보를 제공하는 주석
  - 의도를 설명하는 주석
  - 의미를 명료하게 하는 주석
  - 결과를 경고하는 주석
  - TODO 주석
  - 중요성을 강조하는 주석
- 나쁜 주석
  - 주절거리는 주석
  - 같은 이야기를 중복하는 주석
  - 그냥 코드로 표현할 수 있으면 가급적 쓰지 말자!
  - 주석으로 처리한 코드

4. 형식

신문기사처럼 작성할 것.
ex. 독자는 위에서 아래로 기사를 읽는다. 가장 상단에 요약하는 표제가 나온다. 첫 문단은 전체 기사 내용을 요약한다. 세세한 사실 보다는 커다란 그림을 우선 보여준다. 읽다보면 세세한 사실이 드러난다. 이름은 간단하면서도 설명적으로 짓는다. 이름만 보고도 판단할 수 있도록.

5. 객체와 자료구조

변수를 사적으로 정의하는 이유는, 남들이 변수에 의존하지 않았으면 싶어서다.
충동이든 변덕이든, 변수타입이나 구현을 맘대로 바꾸고 싶기 때문이다. 그렇다면 왜 수많은 프로그래머는 get, set 함수를 public화 하여 사적 변수를 노출하는 걸까?
- 자료 추상화 (아무 생각없이 조회/설정 함수 추가하는 방법이 가장 나쁨)
객체는 동작을 공개하고 자료를 숨긴다. 

'Programming' 카테고리의 다른 글

SWIFT UI study #2 기초 문법  (0) 2023.01.14
SWIFT UI study #1 기초 문법  (0) 2023.01.14
쿠키란?  (0) 2020.03.28
네트워크 기초 (1) _ 인터넷이란? 네트워크란?  (0) 2020.03.26