[개발]가능한 지키려하는 개발 원칙


컨벤션

나는 혼자 개발하는 것도 좋아하지만. 팀으로 일하는 것을 더 좋아한다. 팀으로 일하면 더 커다랗고 규모있는 프로젝트를 만들 수 있고, 다른 사람들의 지혜를 빌릴 수 있다. 그리고 내 목표 중에 한가지가 최고의 팀을 갖추는 것이기 때문이기도 하다.

팀으로써 일하는 건 아주 좋지만 사실 혼자 할 때 보다 어려운점이 많다. 혼자 할 때는 나만 설득하면 되지만. 팀으로 활동할 때는 팀원들을 모두 설득해야한다. 자신이 맡을 부분을 정하고, 겹치는 부분이 있다면 서로 맞추는 커뮤니케이션 등이 필요하다.

우리 팀에도 일하는 방식에 대한 문서가 준비되어있고, 새로 들어오시는분들마다 읽게 되어있다. 그 중에 코드 협약에 대해 이야기 해보려한다.

코드 컨벤션

  • 기본적으로 네이밍은 로어케이스카멜로한다.
  • 클래스명은 어퍼케이스카멜로 작성한다.
  • 상수의 경우 대문자와 언더바로 한다.
  • 함수 하나가 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 사용 중)

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

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

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

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

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

끝내며

이 외에도 언제 클래스를 만들어야하는지, 데이터베이스, 디자인패턴에 대한 내용 등도 있고 정리해야할 여러가지 협약들이 있다. 내용이 중요하다고 생각할 수도 있지만, 더 중요한건 팀이 함께 맞춰서 작업해야 한다는 것이다.

건강한 팀문화가 있어야 더 좋은 프로덕트를 만들 수 있다.




© 2017. by isme2n

Powered by aiden