2012. 5. 18. 07:24

JavaScript Patterns - 웹 개발자 필독서

자바스크립트 코딩 기법과 핵심 패턴자바스크립트 코딩 기법과 핵심 패턴 - 10점
스토얀 스테파노프 지음, 김준기.변유진 옮김/인사이트

  웹 개발자 또는 프론트 엔드 개발자에게 있어서 JavaScript Patterns 는 Java 개발자의 이펙티브 자바와 비슷합니다.
JavaScript 를 작성하는 좋은 방법과 나쁜 방법에 대해 아주 잘 설명되어 있습니다. 책의 서문에 JavaScript 초보자를 위한 책은 아니라고 나와 있지만... JavaScript 입문자가 보기에도 괜찮을 정도의 친절을 자랑합니다. 물론 이론적인 책이기 때문에 무언가 실행 가능한 예제는 거의 없지만요 :)

* JSLint
- JavaScript 정적 분석 도구

* 유지보수 가능한 코드 작성
- 유지 보수 가능한 코드란? 읽기 쉽고, 일관되고, 예측 가능하며, 보기에 한 사람이 작성한 것 같고, 문서화가 되어 있는 코드

* 전역 변수 및 함수의 최소화
- 한 function 내에서 사용하는 모든 변수는 한 줄로 선언

* for 루프
- collection 의 length 는 변수로 선언해서 캐슁
- ++ 대신 += 1 사용
- max 에서 0 으로 감소하는 형태로 사용 또는 while(i--) 를 사용

 * for-in 루프
- hasOwnProperty() 사용

* built-in prototype 수정하지 말자

* Implied Typecasting 하지 말자
- ===, !== 사용
- eval() 사용하지 않기 new Function(parameter)(); 이 대안으로 사용될 수 있음

* parseInt()
- radix 명시 또는 Number() 사용

* Coding Conventions
- indentation 은 일관되게
- 중괄호는 항상 사용
- 괄호는 전 statement 끝에서 열기

* Naming Conventions
- 생성자는 대문자로 시작
- 함수는 camel, 변수는 소문자와 _, 상수(와 전역 변수)는 대문자와 _, private 은 _ 로 시작 또는 _ 로 종료  또는 protected 는 _로 시작하고 private 은 __ 로 시작

* 주석 작성

* JSDoc Toolkit 이나 YUIDoc 을 사용한 API 문서 작성

* 누군가 읽을 것이라는 가정 하에 문서 작성

* 코드 리뷰

http://mindasom.tistory.com2012-05-17T22:28:060.31010

 * 서버에 설치될 JavaScript 코드는 minification 필요
 - YUICompressor 나 Google Closure Compiler 를 사용하여 공백문자, 주석, 불필요한 코드를 삭제 

* JSLint 실행

* Object Literal
- new Object() 는 사용하지 말자 대신 {} 사용

* Self-Invoking Constructor
- function Waffle() {
    if (!(this instanceof Waffle)) {
      return new Waffle();

* Array Literal
- new Array() 대신 [] 사용

* Array 체크
- if (typeof Array.isArray === "undefined") {
      Array.isArray = function (arg) {
        return Object.prototype.toString.call(arg) === "[object Array]";
      };
    }

* JSON
- evel() 이 아니라 JSON.parse() 사용

* Regular Expression Literal
- new RegExp() 보다 /pattern/gmi 사용을 권장