유지보수에 '대부분의' 시간과 비용을 쓰는, '거의 모든' 개발자를 위한 책
"우리는 자신만을 위해서가 아니라 다음에 그 코드를 보게 될 사람도 고려하여 코드를 작성해야 한다."
저자 니콜라스 자카스가 전하는 핵심 메시지다. 이 책을 읽고 자신만의 코딩이 아닌, 협업 개발환경에 적합한 코딩 기법을 익힌다면 그동안 많은 개발자를 괴롭혀온 유지보수의 악몽에서 벗어날 수 있다.
코드의 좋은 예 vs 나쁜 예도 비교해주는 친절한 가이드
좋은 예와 나쁜 예의 차이점을 한눈에 알아볼 수 있다.
------/* * 각 줄은 단 한 개의 문장만 있어야 하며 * 모든 간단한 문장은 세미콜론으로 마쳐야 합니다.*/// 좋은 예count++;a = b;// 나쁜 예: 한 줄에 여러 문장이 있음count++; a = b------
어떤 독자를 위한 책인가?
PART 1 스타일 가이드라인01장 기본 포맷 1.1 들여쓰기 1.2 문장 종료 1.3 줄 길이 1.4 줄 바꿈 1.5 빈 줄 넣기 1.6 이름 규칙 1.6.1 변수와 함수 1.6.2 상수 1.6.3 생성자 1.7 리터럴 값 1.7.1 문자열 1.7.2 숫자 1.7.3 null 1.7.4 undefined 1.7.5 객체 리터럴 1.7.6 배열 리터럴 02장 주석 2.1 한 줄 주석 2.2 여러 줄 주석 2.3 주석 쓰기 2.3.1 이해하기 어려운 코드 2.3.2 오해하기 쉬운 코드 2.3.3 특정 브라우저 핵 2.4 문서화 주석 03장 문장과 표현식 3.1 중괄호 넣기 3.2 복합문에서의 공백 3.3 switch 문 3.3.1 들여쓰기 3.3.2 다음 case 문까지 실행하는 switch 문 3.3.3 default 절 3.4 with 문 3.5 for 반복문 3.6 for...in 반복문 04장 변수, 함수, 연산자 4.1 변수 선언 4.2 함수 선언 4.3 함수 호출문에 공백 넣기 4.4 함수 선언하고 바로 호출하기 4.4.1 strict 모드 4.5 동등 연산자 4.6 eval() 4.7 기본 래퍼 타입 PART 2 프로그래밍 프랙티스05장 UI 레이어 느슨하게 연결하기 5.1 느슨한 연결이란? 5.2 CSS에서 자바스크립트 분리하기 5.3 자바스크립트에서 CSS 분리하기 5.4 HTML에서 자바스크립트 분리하기 5.5 자바스크립트에서 HTML 분리하기 5.5.1 방법 1. 서버에서 가져오기 5.5.2 방법 2. 간단한 클라이언트 사이드 템플릿 5.5.2 방법 3. 복잡한 클라이언트 사이드 템플릿 06장 전역 선언 방지 6.1 전역의 문제점 6.1.1 이름 충돌 문제 6.1.2 변경에 취약한 문제 6.1.3 테스트하기 어려워지는 문제 6.2 실수에 의한 전역 선언 6.2.1 실수를 방지하는 방법 6.3 One-Global 접근법 6.3.1 네임스페이스 6.3.2 모듈 6.4 Zero-Global 접근법 07장 이벤트 처리 7.1 고전적인 방법 7.2 규칙 1. 애플리케이션 로직을 분리한다 7.3 규칙 2. 이벤트 객체를 바로 전달하지 않는다 08장 null 비교 금지 8.1 기본 데이터 타입 알아내기 8.2 객체 참조 타입 알아내기 8.2.1 함수 알아내기 8.2.2 배열 알아내기 8.3 프로퍼티 알아내기 09장 코드에서 구성 데이터 분리하기 9.1 구성 데이터란? 9.2 구성 데이터 분리하기 9.3 구성 데이터 저장하기 10장 사용자 에러 던지기 10.1 에러의 본질 10.2 에러 던지기 10.3 에러를 던지면 좋은 점 10.4 에러는 언제 던져야 할까 10.5 try...catch 문 10.5.1 throw를 쓸 것인가 try...catch를 쓸 것인가 10.6 에러 타입 11장 객체의 변경 권한 11.1 변경 권한이 있는 객체란? 11.2 객체 변경 금지 규칙 11.2.1 메서드 오버라이드 금지 11.2.2 새로운 메서드 추가 금지 11.2.3 메서드 삭제 금지 11.3 더 나은 접근법 11.3.1 객체 기반 상속 11.3.2 타입 기반 상속 11.3.3 퍼사드 패턴 11.4 폴리필이란? 11.5 객체 변경을 방지하는 방법 12장 브라우저 탐지 12.1 사용자 에이전트 탐지 12.2 기능 탐지 12.3 기능 추론 금지 12.4 브라우저 추론 금지 12.5 무엇을 사용해야 할까? PART 3 자동화13장 파일과 디렉터리 구조 13.1 좋은 습관 13.2 기본 디렉터리 구조 14장 앤트 14.1 설치 14.2 빌드 파일 14.3 빌드 실행하기 14.4 타겟 의존성 14.5 프로퍼티 14.6 Buildr 15장 유효성 검사 15.1 파일 위치 지정하기 15.2 태스크 15.3 타겟 향상시키기 15.4 기타 향상 방법 15.5 Buildr 태스크 16장 파일 합치기와 굽기 16.1 태스크 16.2 줄 바꿈 16.3 헤더와 푸터 16.4 파일 굽기 17장 최소화와 압축 17.1 최소화 17.1.1 YUI Compressor를 이용한 최소화 17.1.2 Closure Compiler를 이용한 최소화 17.1.3 UglifyJS를 이용한 최소화 17.2 압축 17.2.1 실시간 압축 17.2.2 빌드 시간 압축 18장 문서화 18.1 JSDoc 툴킷 18.2 YUI Doc 19장 테스트 자동화 19.1 YUI Test Selenium Driver 19.1.1 Selenium 서버 설정하기 19.1.2 YUI Test Selenium Driver 설정하기 19.1.3 YUI Test Selenium Driver 사용하기 19.1.4 앤트 타겟 19.2 Yeti 19.3 PhantomJS 19.3.1 설치와 사용법 19.3.2 앤트 타겟 19.4 JsTestDriver 19.4.1 설치와 사용법 19.4.2 앤트 타겟 20장 통합하기 20.1 다루지 않았던 것들 20.2 빌드 계획하기 20.2.1 개발 빌드 20.2.2 통합 빌드 20.2.3 릴리즈 빌드 20.3 CI 시스템 사용하기 20.3.1 젠킨스 20.3.2 그 외 CI 시스템APPENDIX A 자바스크립트 스타일 가이드 A.1 들여쓰기 A.2 줄 길이 A.3 기본 리터럴 A.4 연산자에 공백 넣기 A.5 괄호에 공백 넣기 A.6 객체 리터럴 A.7 주석 A.7.1 한 줄 주석 A.7.2 여러 줄 주석 A.7.3 주석 어노테이션 A.8 변수 선언 A.9 함수 선언 A.10 이름 규칙 A.11 strict 모드 A.12 할당 A.13 동등 연산자 A.14 삼항 연산자 A.15 문장 A.15.1 간단한 문장 A.15.2 return 문 A.15.3 복합문 A.15.4 if 문 A.15.5 for 문 A.15.6 while 문 A.15.7 do 문 A.15.8 switch 문 A.15.9 try 문 A.16 공백 A.17 유의 사항 APPENDIX B 자바스크립트 툴 B.1 빌드 툴 B.2 문서 생성기 B.3 린트 툴 B.4 최소화 툴 B.5 테스트 툴
자료명 | 등록일 | 다운로드 |
---|---|---|
예제소스 | 2016-04-15 | 다운로드 |
오즈 모리하루
읽기 좋은 코드가 좋은 코드다: 더 나은 코드를 작성하는 간단하고 실전적인 테크닉
더스틴 보즈웰 , 트레버 파우커
마틴 파울러