지키면 좋은 개발 원칙

2019년 3월 18일, 17시 32분 42초

https://isme2n.github.io/devlog/2019/01/10/dev-convention/

 

 

코드 컨벤션

  • 기본적으로 네이밍은 로어케이스카멜로한다.
  • 클래스명은 어퍼케이스카멜로 작성한다.
  • 상수의 경우 대문자와 언더바로 한다.
  • 함수 하나가 30 줄이 넘어가면 함수를 분리한다.
  • 들여쓰기가 두 단계 이상 넘어가면 함수를 분리한다.(for, if 문 마찬가지)
  • 주석을 적어야 하면 함수로 분리한다.(이름만으로도 알 수 있게해야한다.)
  • 다루는 데이터의 종류가 추가되면 모듈(파일) 또는 클래스로 분리(데이터와 그 데이터를 다루는 알고리즘을 결합한 것이 한 묶음)
  • lint, format 도구 반드시 사용(현재는 prettier 사용 중)
  • 기능 추가/수정하기 전에 리팩토링을 한 줄이라도 하고 시작한다.
  • 한번 만든게 전부가 아니다. 반복해서 만들어라. 필요하다면 부수고 새로만들어라.

우리팀의 기본언어는 타입스크립트이고 프론트엔드는 리액트 또는 리액트네이티브, 백엔드는 노드를 이용한다.

기본적으로 네이밍은 로어케이스카멜로한다.

balanceOf(address: string), 이런식으로 첫글자가 소문자인 카멜표기법을 사용한다.

클래스명은 어퍼케이스카멜로 작성한다.

class UserService, 이처럼 첫글자가 대문자인 카멜표기법을 사용한다.

상수의 경우 대문자와 언더바로 한다.

TEXT_COLOR, 이처럼 대문자와 언더바로 상수를 정의한다.

함수 하나가 30 줄이 넘어가면 함수를 분리한다.

함수가 30줄이 넘어가면 가능하면 분리하도록 한다. 팀으로 짜는 코드는 무조건 가독성을 높여야한다.

들여쓰기가 두 단계 이상 넘어가면 함수를 분리한다.(for, if 문 마찬가지)

들여쓰기가 들어갔다는건 제어문이나 반복문을 사용했다는 말이된다. 제어문과 반복문이 여러번 있으면 코드를 읽기에 어려운 점이 많다.

주석을 적어야 하면 함수로 분리한다.(이름만으로도 알 수 있게해야한다.)

함수의 이름만으로도 코드의 내용을 알 수 있어야한다. 주석을 적어야할 것 같다면 좀 더 네이밍과 사용처를 고민하는게 좋다.

isOdd(value)처럼 명확하게 이름을 지으면 좋다.

if(isOdd(value)){
    ...
}

다루는 데이터의 종류가 추가되면 모듈(파일) 또는 클래스로 분리(데이터와 그 데이터를 다루는 알고리즘을 결합한 것이 한 묶음)

관심사 분리를 명확히 하자. 뷰에서 데이터를 조작하려하지 말자.

lint, format 도구 반드시 사용(현재는 prettier 사용 중)

우리는 린트나 각자의 스타일 때문에 코드리뷰에서 시간을 낭비하지 않는다. 그건 프리티어에게 맡기자.

기능 추가/수정하기 전에 리팩토링을 한 줄이라도 하고 시작한다.

내가 방문한 곳은 조금이라도 좋게 만들고 나간다., 이건 현실에서도 마찬가지인게 내가 버리지 않았어도 회의실에 쓰레기가 있었으면 나갈때 들고나가는 것과 같다.

한번 만든게 전부가 아니다. 반복해서 만들어라. 필요하다면 부수고 새로만들어라.

내가 엊그제 만든 코드보다, 동료가 지난주에 만든 코드보다 더 낫게 만들 수 있다면 백번이고 부수고 다시 만들어라. 완벽한 코드는 없을 뿐더러 처음에 만든 코드가 완벽에 가까울 가능성은 아주 낮다.

추가