머리말
좋은 JavaScript 작성 습관의 장점은 자명합니다. 오늘날 Bingo는 모든 사람에게 Dojo Javascript 프로그래밍 사양을 권장합니다. 이는 모든 사람이 이 사양에서 Javascript를 작성하는 방법을 배울 수 있도록 권장됩니다. 번역해주신 i.feelinglucky님께 감사드립니다.
서문
가독성을 향상시키는 경우 본 가이드를 위반하는 것은 허용됩니다.
모든 코드는 다른 사람이 쉽게 읽을 수 있도록 작성되어야 합니다.
빠른 읽기 참고자료
핵심 API 다음 스타일을 사용하세요.
结构 | 规则 | 注释 |
模块 | 小写 | 不要使用多重语义(Never multiple words) |
类 | 骆驼 | |
公有方法 | 混合 | 其他的外部调用也可以使用 lower_case(),这样的风格 |
公有变量 | 混合 | |
常量 | 骆驼 或 大写 |
규칙
댓글
结构 | 规则 |
私有方法 | 混合,例子:_mixedCase |
私有变量 | 混合,例子:_mixedCase |
方法(method)参数 | 混合,例子:_mixedCase, mixedCase |
本地(local)变量 | 混合,例子:_mixedCase, mixedCase |
개인 변수 | 혼합, 예: |
메소드 매개변수 | 혼합, 예: _mixedCase, MixedCase |
로컬(로컬) 변수 | 혼합, 예: _mixedCase, MixedCase
|
명명 규칙
1. 변수 이름은 소문자여야 합니다.
2. 클래스 이름 지정은 낙타 이름 지정 규칙을 사용합니다. 예:
계정, 이벤트 핸들러
3. 상수는 객체(클래스) 또는 열거형 변수 앞에 선언되어야 합니다. 열거형 변수는 실제 의미를 가지고 이름을 지정해야 하며 해당 멤버는 낙타식 명명 규칙을 사용하거나 대문자를 사용해야 합니다.
4. 약어는 대문자 이름을 변수 이름으로 사용할 수 없습니다.
getInnerHtml(), getXml(), XmlDocument
5. 메소드의 명령은 동사 또는 동사구여야 합니다:
obj.getSomeValue()
6. 공용 클래스의 이름은 혼합 이름(mixedCase)을 사용하여 지정해야 합니다.
7. CSS 변수는 해당 변수와 동일한 공개 클래스 변수를 사용하여 이름을 지정해야 합니다.
8. 전용 클래스의 변수 속성 멤버는 혼합 이름(mixedCase)으로 명명되어야 하며 앞에 밑줄(_)이 와야 합니다. 예:
9. 변수가 비공개로 설정된 경우 앞에 밑줄을 추가해야 합니다.
this._somePrivateVariable = 진술;
10. 범용 변수는 해당 이름과 일치하는 유형 이름을 사용해야 합니다.
setTopic(topic) // 변수 topic은 Topic 유형의 변수입니다
11. 모든 변수명은 반드시 영문명을 사용해야 합니다.
12. 변수의 범위가 더 넓은 경우(큰 범위) 전역 변수를 사용해야 하며 이 경우 클래스의 멤버로 설계할 수 있습니다. 반면, 범위가 작거나 변수가 비공개인 경우 간결한 단어 명명을 사용하세요.
13. 변수에 자체적인 암시적 반환 값이 있는 경우 유사한 방법을 사용하지 마세요.
getHandler(); // getEventHandler() 사용을 피하세요
14. 공용 변수는 모호한 단어 의미를 피하기 위해 자체 속성을 명확하게 표현해야 합니다. 예:
마우스이벤트 핸들러
, MseEvtHdlr이 아닙니다.
이 규칙에 다시 한 번 주의를 기울이시기 바랍니다. 그렇게 하면 얻을 수 있는 이점은 매우 분명합니다. 표현이 정의하는 의미를 명확하게 표현할 수 있습니다. 예:
dojo.events.mouse.Handler // dojo.events.mouse.MouseEventHandler 대신
15. 기본 클래스의 이름을 확장하여 클래스/생성자의 이름을 지정할 수 있으므로 기본 클래스의 이름을 정확하고 빠르게 찾을 수 있습니다.
이벤트핸들러
UIEventHandler
마우스이벤트핸들러
기본 클래스는 해당 속성을 명확하게 설명한다는 전제 하에 이름을 짧게 지정할 수 있습니다.
MouseUIEventHandler와 반대되는 MouseEventHandler.
특수 명명 규칙
"get/set"이라는 용어는 개인 변수로 정의되지 않는 한 필드와 연결되어서는 안 됩니다.
"is" 앞에 오는 변수 이름은 부울 값이어야 하며 마찬가지로 "has", "can" 또는 "should"일 수 있습니다.
변수 이름으로 "계산"이라는 용어는 계산된 변수를 참조해야 합니다.
변수명에서 "찾기"라는 용어는 검색이 완료된 변수를 의미합니다.
변수 이름으로 "초기화" 또는 "초기화"라는 용어는 인스턴스화된(초기화된) 클래스 또는 기타 유형의 변수를 참조해야 합니다.
UI(사용자 인터페이스) 제어 변수는 이름 뒤에 제어 유형이 있어야 합니다(예: leftComboBox, TopScrollPane).
컬렉션의 이름을 지정하려면 복수형을 사용해야 합니다.
"num" 또는 "count"로 시작하는 변수 이름은 일반적으로 숫자(객체)입니다.
반복되는 변수에는 "i", "j", "k" 등의 이름을 가진 변수를 사용하는 것이 좋습니다.
보충 용어에는 가져오기/설정, 추가/제거, 생성/삭제, 시작/중지, 삽입/삭제, 시작/종료 등과 같은 보충 단어를 사용해야 합니다.
축약 가능한 이름에는 약어를 사용합니다.
모호한 부울 변수 이름을 사용하지 마세요. 예:
isNotError, isNotFound는 불법입니다
오류 클래스의 경우 변수 이름 뒤에 "Exception" 또는 "Error"를 추가하는 것이 좋습니다.
메서드가 클래스를 반환하는 경우 이름은 반환하는 내용을 나타내야 하며, 프로시저인 경우 수행하는 작업을 나타내야 합니다.
파일
들여쓰기에는 공백 탭 4개를 사용하세요.
편집기가 파일 태그를 지원하는 경우 코드를 더 쉽게 읽을 수 있도록 다음 줄을 추가하세요.
// vim:ts=4:noet:tw=0:
번역 참고 사항: 외국인은 VIM 편집기를 더 많이 사용하므로 이 기사를 따르도록 선택할 수 있습니다.
코드 접기는 완전하고 논리적으로 보여야 합니다.
var o = someObject.get(
식1,
표현식2,
식3
);
참고: 표현식과 변수 선언의 들여쓰기는 일관되어야 합니다.
참고: 함수 매개변수는 명시적으로 들여쓰기되어야 하며 들여쓰기 규칙은 다른 블록과 일치해야 합니다.
변수
레이아웃
차단
일반적인 코드 조각은 다음과 같습니다.
IF 문은 다음과 같아야 합니다.
FOR 문은 다음과 같아야 합니다.
WHILE 문은 다음과 같아야 합니다.
DO … WHILE 문은 다음과 같아야 합니다.
SWITCH 문은 다음과 같아야 합니다.
TRY … CATCH 문은 다음과 같아야 합니다.
한 줄 IF – ELSE, WHILE 또는 FOR 문에도 괄호가 있어야 하지만 다음과 같이 작성할 수 있습니다.
if(조건){문 }
while(조건){문 }
for(초기화; 조건; 업데이트){ 문 }
공백
메모
문서화
다음은 몇 가지 기본 기능 또는 개체 설명 방법을 제공합니다.요약: 이 기능이나 개체의 목적을 간략하게 설명하세요
설명: 이 함수 또는 클래스에 대한 간략한 설명
반환: 이 함수가 반환하는 내용을 설명합니다(반환 유형은 포함하지 않음)
기본 기능 정보
반환 값 설명 없음
함수 선언
어떤 경우에는 함수 호출과 선언이 보이지 않습니다. 이 경우 함수에 명령을 추가할 수 있는 방법이 없습니다(프로그램이 호출할 수 있도록). 이러한 상황이 발생하면 클래스를 사용하여 함수를 캡슐화할 수 있습니다.
참고: 이 방법은 함수에 초기화된 매개변수가 없는 경우에만 사용할 수 있습니다. 그렇지 않은 경우 무시됩니다.
변수
인스턴스 변수, 프로토타입 변수, 외부 변수의 선언이 일관되므로 변수를 선언하고 수정하는 방법은 다양합니다. 구체적인 정의와 위치 지정은 처음 나타나는 변수의 이름, 유형, 범위 및 기타 정보를 나타내야 합니다.
객체의 변수 주석
은 객체 값 및 메소드와 동일한 방식으로 표시되어야 합니다. 예를 들어 선언할 때
반환값
함수는 동시에 여러 가지 (유형) 값을 반환할 수 있으므로 각 반환 값 뒤에 반환 유형 설명을 추가해야 합니다. 라인 내에서 주석을 작성할 수 있습니다. 모든 반환 값이 동일한 유형인 경우 반환 유형을 표시하고, 다른 반환 값이 여러 개 있는 경우 반환 유형을 "혼합"으로 표시합니다.
의사 코드(논의 예정)
함수나 클래스에 이 함수나 클래스에 대한 기능 프로세스 설명을 추가해야 하는 경우가 있습니다. 이렇게 할 계획이라면 /*========(= 문자는 5번 이상 나타나는 것이 바람직함)을 사용할 수 있는데, 이는 코드에 이런 것들을 추가하지 않아도 된다는 장점이 있습니다(주석: 원저자의 아마도 코드 관리 시스템을 의미할 것입니다).
/*======, =====*/에 아주 긴 댓글이 있을 것으로 보입니다. 기능 조정이 완료된 후 삭제 여부를 고려하시면 됩니다.
함수(/*module.pseudo.kwArgs*/ kwArgs){
dojo.debug(kwArgs.url);
dojo.debug(kwArgs.mimeType);
}
원본 링크: http://dojotoolkit.org/developer/StyleGuide
번역자: i.feelinglucky{at}gmail.com, http://www.gracecode.com