새로운 강의는 이제 https://memi.dev 에서 진행합니다.
memi가 Vue & Firebase로 직접 만든 새로운 사이트를 소개합니다.
Variable definition
프로그래밍 변수 작성법 by memi
일반
- eslint standard 규격에 일반적으로 맞춘다.
- 전역변수,함수 외에는 대문자(Uppercase)를 사용하지 않는다
- 전역변수는 충분히 검토 후, 꼭 필요한 곳에만 사용한다(가급적 사용하지 않는다)
- 영어, 숫자, 언더바로 구성
- 최대한 별도의 문서를 사용하고 주석은 사용하지 않는다.
eg) 사용 금지 예/****** author : XXX date : 1999.11.11 ******/
- 용도에 맞는 형을 사용한다.
eg) const, let, long, double, etc.. - Array type 변수 뒤에는 복수를 의미하는 ‘s’를 넣는다.
전역변수 : global
단어의 첫글자만 대문자를 사용한다. 이니셜 대문자도 예외가 아님
eg) TCPhandle X, TcpHandle O- 단어의 첫글자는 소문자를 사용한다.
- 두단어 이상일 경우 단어마다 대문자로 구분
eg) memberCountReset - 비슷한 단어가 두개 이상일 경우 객체 생성 후 소문자(Lowercase) 멤버로 넣는다
eg) rawCount, rawSize -> raw.count, raw.size
지역변수 : local
두단어 이상일 경우 언더바로 구분
eg)member_cnt_rst- 가능하다면 단어 길이를 알아 볼 수 있을 만큼 줄임
eg) count -> cnt, length -> len - 비슷한 단어가 두개 이상일 경우 객체 생성 후 멤버로 넣는다
eg) rawCount, rawSize -> raw.count, raw.size - 컴파일러가 지원된다면 휘발성 변수는 행위 바로 위에 놓는다
eg)// X double abc,bbc,dde=3.0; short ss,cc=4; String kk="",gg=""; char cc[4] = {0,}; int i,j; for(i=0;i<3;i++) kk += "a"; //...
// O let vals = [], add = ''; for (let f = 0; f < 10; f++) { let b = GetData(f); vals.push(b); add += b; } let j = 0, k = 3; let x = j+k; let val = foo(x); //...
함수 : function
- 함수선언 다음의 괄호는 공백이 앞뒤로 한칸씩 추가된다.
- 파라메터는 소문자를 사용한다.
- 파라메터가 여러개일 경우 콤마 뒤에 한칸씩 공백이 추가된다.
- parameter는 소문자를 사용한다
eg)function foo (a, b, c) {} //javascript
int foo(int a, short b, unsigned char* c) {} //c
- parameter의 입력, 출력은 달라야한다.
eg)
함수const foo = (a, b) => { return a + b; }
잘못된 예: 입력 변수명과 함수 인자 변수명이 같다
const a = 3, b = 4;
foo(a, b);
수정: 다르게 변경
const ai = 3, bi = 4;
foo(ai, bi);
주석 : description
- 코드 스니펫(조각)의 경우 시작과 끝을 명시한다.
eg)// start copy doc let d = {a:3,b:4} b.copyof(d) // end copy doc
- 나중에 참고 해야할 내용의 경우 ‘todo:’를 사용한다
eg)if(c > 0.0) // todo : 다음 버전에서 삭제, 다음 버전에서는 c는 항상 0보다 크다 a = b/c;
데이터베이스 : database
데이터베이스에서 가져온 값은 시작 문자를 언더바로 구분한다.
eg) _member._id, _params[3]._set._max_payment
NoSQL
- _id 값을 참고 할 경우 언더바를 포함한 값을 가진다.
company = {
_id: 1,
name: 'n',
_dv: device._id
}
device = {
_id: 54321,
name: '장치1',
_cp: company._id
}
- gps 좌표값은 구글 객체와 같게 한다.(그래야 변환이 필요 없다.)
pos = {
lat: 37.1,
lng: 127.1
}