JS 코딩 컨벤션 외않되?
코딩컨벤션 ?
- 코딩컨벤션이란 쉽게 설명해 내가 작성한 코드를 다른 사람들도 쉽게 이해하기 위해 개발자들간 서로 정해놓은 코드 작성법 or 일종의 코딩 스타일 규약이다 !
외 코딩컨밴션 지켜야 헤 ?ㅠ
- 결국 개발자의 모든 업무에서 많은 영역을 차지하는 것이 바로 유지보수!
- 또한 그 유지보수를 그 소프트웨어를 개발한 담당자가 직접 하는 경우도 있지만 다른 누군가가 하는 경우도 있음
- 따라서 코드를 작성 할 때 정해진 표준의 규칙과 방법이 있다면 누군가가 해당 소스코드를 보았을 때 가독성이 좋아 더 빠르게 코드를 이해 할 수 있고, 완벽히 이해할 수 있다는 장점이 있다!
코딩 컨벤션은 절대적인가 ?
- 코딩 컨벤션에는 각 언어별 표준이 있고, 작게는 회사 표준, 더 작게는 부서 by 부서의 코딩 컨벤션이 있다고 한다 !
- 따라서 코드 작성에는 완벽한 포맷이 없고 함께 협업하는 사람들과 코딩컨벤션을 맞추면 된다 !
자바스크립트의 코딩 컨벤션
-
자바스크립트는 타 언어들에 비해 동적인 문법을 가지기 때문에 개발자간 통일된 규약이 없다면 코드의 의도를 파악하기 힘들다
-
아래에서는 내가 새롭게 알게 되었거나 자주 놓쳤던 코딩 컨벤션에 대해서 설명하려 한다.
1. 맴버변수 or private 변수는 _ (언더바)로 시작한다
- 맨처음 코드를 공부 할 때 어디에는 _가 붙어있고, 또 어디에는 안 붙어있는 변수나 함수를 보고 뭐지 ? 라는 생각 후 아무렇게나 _ 를 붙이면서 코드를 막 작성했더니 팀장님께서 친절하게_(언더바)의 코딩 컨벤션을 알려주셨던 기억이 .. ㅎㅎ
let _privateValue;
let _privateFunction();
// object의 경우
_privateObject = {}
// object 내부 프로퍼티
_privateObject._privateProperty;
2. 선언과 할당
- 자바스크립트에서는 더더욱이나 중요한 개념일텐데 값이 변하지 않는 상수의 값은
const
값은 변하나 재선언이 불가능한 값은let
그리고 재선언과 재할당이 가능한var
const
와let
은 사용 시점에 선언 및 할당을 진행한다- 또한
const
와let
을 동시에 선언 해야할 때는const
를 먼저 선언한다. 이렇게 되면 재할당이 되지 않는 변수를 쉽게 파악 할 수 있음으로 코드를 읽기에 더욱 편하다 var
사용 시 블록스코프 안에서 변수를 선언하지 않는다
3. 배열과 객체
- 배열과 객체를 생성 할 때 리터럴 표기법으로 선언한다
- 리터럴 표기법은 짧고 명확하며 실수를 줄일 수 있다
// good
const goodObj = {}
const goooArr = []
// bad
const badObj = new Object()
const badArr = new Array()
4. 개행
- 객체의 프로퍼티가 1개인 경우에만 한 줄 정의를 허용하며, 2개 이상일 때는 개행을 강제 한다
- 매번 코드가 짧아보이려고 2~3개의 프로퍼티를 가진 객체를 생성할 때 한줄로 적고는 했는데 강제 라는 말을 보고는 큰 충격을 받았다 ... (정말 마음대로 코딩했던 나...)
const obj = {
a: 1,
b: 2
}
- 매서드 문법을 사용시 매서드 사이에 개행을 추가한다
5. 함수
- 함수 생성자를 사용하여 선언하지 않는다
// Bad
const badFunc = new Function()
// good
const goodFunc = function() {
return 1
}
- 함수표현식 보다는 화살표 함수를 사용한다
- 함수 중간에 예외처리가 있을 때 예외처리에 사용되는 변수는 선언만 진입부에 하고 할당은 사용 시점에 수행한다
6. 배열 복사 시 순환문을 사용하지 않는다
- 복잡한 객체를 복사 할 때는 전개 연산자를 사용하면 좀 더 명확하고 가독성이 좋은 코드를 작성 할 수 있다.
기타
return
문 바로 위는 한칸 비워 놓는다- 삼중등호 연산자 (
!=
,===
)만 사용한다 - 주석은 설명하려는 구문에 맞춰 들여쓰기 한다
- 키워드, 연산자, 다른 코드 사이에는 공백이 있어야한다
마치며..
코딩컨벤션을 조금을 알게 된 후 나의 코드를 다시보니.. 코드를 작성 할 떄 일관성도 없고 어떤 의미를 내포하는지 쉽게 파악하지 못하는 것이 눈에 막 보이기 시작한다.. 얼른 기본적인 부분들에 대해서 리펙토링해야겠다.. 매번 제 코드를 봐주시는 팀장님 감사합니다 ..ㅠ!
Author And Source
이 문제에 관하여(JS 코딩 컨벤션 외않되?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ryu_log/JS-코딩-컨벤션저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)