클린코드

H Kim·2022년 2월 26일
0

TIL

목록 보기
5/72
post-thumbnail

클린코드란?

"읽기 쉬운 코드가 클린코드이다."
by. 로버트 C.마틴 'Clean Code'


  • 전체적으로 고려할 사항
    • 단일 책임 원칙: 하나의 인터페이가 하나의 역할을 수행해야 한다.

  • 변수명
    • 의도가 분명한 이름 짓기.
    • 검색하기 쉬운 이름 사용.
    • 명료한 이름 사용.
    • 한 개념에 한 단어 사용. ex. fetch, retrieve, get 등 중 하나만 선택
    • 의미있는 맥락 추가. ex. state 보다 address

  • 함수
    • 동사, 동사구가 적합.
      • 함수가 하는 일을 서술적으로 표현하기.
    • 인자의 개수
      • 이상적인 인수 개수는 0개이며 3개 이상은 가능한 피해야 한다. 4개 이상은 금물.
    • 부수효과를 일으키지 말 것.
    • 명령과 조회를 분리.
      • 뭔가를 수행 or 뭔가에 답하기 둘 중 하나만 하게 하기
      • 객체 상태를 변경 or 객체 정보를 반환하거나

  • 주석
    • 주석은 나쁜 코드를 보완하지 못한다.
      • 코드에 주석을 추가하는 이유가 코드 품질이 나빠서가 되어서는 안 된다.
      • 주석을 달 바에야 코드를 깔끔하게 정리하기.
    • 나쁜 주석
      • 코드 내용을 그대로 중복하는 주석
      • 편집 이력을 기록하는 주석
      • 근처에 있는 코드만 기술해야 하며 시스템의 전반적인 정보 기술하는 것은 좋지 않음.

  • 형식 맞추기
    • 적절한 행 길이 유지.
    • 변수는 사용하는 위치에 최대한 가까이 선언.
    • 한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치. 또한 가능하다면 호출하는 함수를 호출되는 함수보다 먼저 배치.
    • 개념적인 친화도가 높은 코드일 수록 서로 가까이 배치

  • 리팩토링
    • 중복을 없애기.

Code Style Guide

  • Indentation (들여쓰기)
    • 들여쓰기 할 때는 탭이 아닌 스페이스를 사용하기!(혼용이 제일 최악!)

  • Naming (이름 짓기)
    • Variable names - 변수명
      : 한 단어로 표현하기.
    • Boolean names - Boolean 이름
      : 관련 변수 이름 앞에 is 또는 are를 붙임.
    • Function names - 함수명
      : 동사로 짓기.

  • Symbols / punctuation (기호 / 구두점 찍기)
    • 중괄호 생략하지 말기.
    • Quoting - 인용
      : 작은따옴표나 큰따옴표 하나만으로 쓰기.
    • Semicolons - 세미콜론
      : 항상 쓰기
      : if, for, while 구문의 끝에는 쓰지 않지만 함수 표현식처럼 선언될 때는 쓰기.

  • Operators and keywords (연산자와 키워드)

    • 엄격한 비교연산자 사용하기 (===!==를 사용)

    • 3항 연산자 (x ? y :z)는 짧고 명확한 코드를 쓸 때만 사용하기(코드 가독성이 낮기 때문).

    • not 연산자(!) 사용시에는 부정하는 대상 코드의 바로 앞에 붙여서 사용

    • switch 구문은 break 구문 누락으로 인해 오류가 발생하기 쉬우므로 사용하지 말기.


  • 짧게 쓰기

    • 되도록 부정을 사용하지 말기.

    • Boolean 결과값을 바로 return 하기.


  • 코드 문장과 구문 사이 공간

    • 줄 바꿈을 최소로 사용하여 한 화면에서 더 많은 코드를 볼 수 있게 하기.

    • 콤마(,) 사이, 연산자 사이에 띄어쓰기


  • 자바스크립트에서는 camelCase 사용하기


0개의 댓글