clean-code-javascript

 

변수

  • 의미있고 발음이 쉬운 변수

  • 이해가 필요한 값은 변수로 등록

    • 86400000->MILLISECONDS_IN_A_DAY 변수로 등록

  • 의도를 나타내는 변수 사용

  • 나만 알아볼 수 있는 작명하지말 것

    • 반복문의 n, l, k 등..

  • 객체 키 값에 중복되는(필요없는) 네이밍 사용 금지

    • car = { carMake : '' };

  • 매개변수 기본 값 등록

 

함수   

  • 2개 이하의 인자 값

    • 많아 질 경우 객체로 매개변수 전달하여 명확하게

  • 함수는 하나의 행동만

    • 매개변수를 조건 플래그로 사용하지 말 것

  • 함수명만으로 행동을 알 수 있도록  

  • 중복코드, 안쓰는 코드 주의

  • object는 assign으로 기본 객체를 생성해 처리

  • 사이드 이펙트 주의

    • 전역 변수 주의 수정이 필요할 경우 새로운 변수로 생성

    • 전역 함수 사용 금지

    • 객체 수정 시 새로운 객체로 만들어 리턴

  • 함수형 프로그래밍 지향

  • 조건문 캡슐화

  • 부정 조건문 사용 지양

    조건문을 되도록 피하라

  • 일관성있는 API

  • 타입이 필요하면 타입스크립트

  • 과도한 최적화 금지

 

 

객체, 자료구조

  • getter, setter 사용

  • private

  • 프로토타입보단 클래스 사용

  • 메소드 체이닝

    • return this

  • 상속보다는 조합

    • 상속 시 같은 타입인지, 상속이 맞는지 체크

  • 단일책임원칙

  • 개방/폐쇄 원칙

  • 리스코프 치환 원칙

  • 인터페이스 분리 원칙

  • 의존성 역전 원칙

  • 테스트

  • 동시성

    • callback 지양, promise

    • es2017/es8에서는 async와 await

  • 에러처리, 단순히 log를 찍지 말고 처리를 해라(promise도 마찬가지)

  • 포맷(일관된 컨벤션)

  • 함수 호출자, 피호출자는 가깝게

    • 책 읽듯 흐름에 따라

 

주석

  • 로직이 복잡한 곳만 사용

  • 주석으로 버전관리하지말 것

  • 주석으로 된 코드 삭제

  • 코드 위치 설명하지 말 것

    • ===============액션 영역==============

 


 

원본 

https://github.com/qkraudghgh/clean-code-javascript-ko

+ Recent posts