지키면 좋은 개발 원칙
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 사용 중)
우리는 린트나 각자의 스타일 때문에 코드리뷰에서 시간을 낭비하지 않는다. 그건 프리티어에게 맡기자.
기능 추가/수정하기 전에 리팩토링을 한 줄이라도 하고 시작한다.
내가 방문한 곳은 조금이라도 좋게 만들고 나간다.
, 이건 현실에서도 마찬가지인게 내가 버리지 않았어도 회의실에 쓰레기가 있었으면 나갈때 들고나가는 것과 같다.
한번 만든게 전부가 아니다. 반복해서 만들어라. 필요하다면 부수고 새로만들어라.
내가 엊그제 만든 코드보다, 동료가 지난주에 만든 코드보다 더 낫게 만들 수 있다면 백번이고 부수고 다시 만들어라. 완벽한 코드는 없을 뿐더러 처음에 만든 코드가 완벽에 가까울 가능성은 아주 낮다.