서브메뉴

본문

프로그래밍의 정석 (프로그래머가 반드시 알아야 할 101가지 원리 원칙)
프로그래밍의 정석 (프로그래머가 반드시 알아야 할 101가지 원리 원칙)
저자 : 우에다 이사오
출판사 : 프리렉
출판년 : 2017
정가 : 23000, ISBN : 9788965401964

책소개


좋은 프로그래머로 성장하기 위한 바른길이자 지름길

정석이란?
- 좋은 프로그래밍을 위한 보편적 지식이다.
- 프로그래밍의 가이드라인이 되는 전제, 원칙, 사상, 습관, 관점, 기법, 법칙이다.

정석을 이해하면?
- 구체적인 기술을 배울 때 기술의 존재 이유, 즉 해당 기술이 왜 필요한지 알 수 있다.
- 기술의 사용 방식도 매우 능숙해 진다.
- 프로그래밍이 지닌 본질적인 문제를 해결할 수 있다.
- 특정 기술에 특화되어 있지 않으면서도 구체적인 기술을 습득하고 사용할 수 있다.
- 한 번 익혀 두면 계속 사용할 수 있는 지식과 지혜가 된다.
- 프로그래머의 성장 토대를 쌓아주고, 바르게 성장시키며, 성장을 가속해 주는 역할을 한다.

목차



시작하며
0장 이 책을 읽는 방법
0.1 정석의 카테고리
0.2 정석의 설명 양식
0.3 정석 설명 상의 용어법
0.4 정석 설명 상의 주의점

1장 전제: 프로그래밍 불변의 사실
1.1 프로그래밍에 은제 탄환은 없다
1.2 코드는 설계서다
1.3 코드는 반드시 변경된다

2장 원칙: 프로그래밍의 가이드라인
2.1 KISS
2.2 DRY
2.3 YAGNI
2.4 PIE
2.5 SLAP
2.6 OCP
2.7 명명이 중요하다

3장 사상: 프로그래밍의 이데올로기
3.1 프로그래밍 이론
3.2 의사소통
3.3 단순함
3.4 유연성
3.5 결과의 국소화
3.6 반복의 최소화
3.7 로직과 데이터의 일체화
3.8 대칭성
3.9 선언형의 표현
3.10 변경 빈도
3.11 아키텍처 기본 기법
3.12 추상
3.13 캡슐화
3.14 정보 은닉
3.15 패키지화
3.16 관심의 분리
3.17 충족성, 완전성, 프리미티브성
3.18 정책과 구현의 분리
3.19 인터페이스와 구현의 분리
3.20 참조의 단일성
3.21 분할 정복
3.22 아키텍처 비기능 요구사항
3.23 변경 용이성
3.24 상호 운용성
3.25 효율성
3.26 신뢰성
3.27 테스트 용이성
3.28 재사용성
3.29 7가지 설계 원리
3.30 단순 원리
3.31 동형 원리
3.32 대칭 원리
3.33 계층 원리
3.34 선형 원리
3.35 명증 원리
3.36 안전 원리
3.37 UNIX 사상
3.38 모듈화의 원칙
3.39 명확성의 원칙
3.40 구성의 원칙
3.41 분리의 원칙
3.42 단순성의 원칙
3.43 절약의 원칙
3.44 투명성의 원칙
3.45 안정성의 원칙
3.46 표현성의 원칙
3.47 충격 최소의 원칙
3.48 침묵의 원칙
3.49 복구의 원칙
3.50 경제성의 원칙
3.51 생성의 원칙
3.52 최적화의 원칙
3.53 다양성의 원칙
3.54 확장성의 원칙
3.55 UNIX 철학
3.56 작은 것이 아름답다
3.57 한 번에 하나의 작업
3.58 즉시 프로토타입 진행
3.59 효율성보다 이식성
3.60 데이터는 텍스트로
3.61 레버리지 소프트웨어
3.62 셸 스크립트 활용
3.63 대화형 인터페이스 회피
3.64 필터화

4장 관점: 프로그래머가 보는 시각
4.1 응집도
4.2 결합도
4.3 직교성
4.4 가역성
4.5 코드의 구린내
4.6 기술적 부채

5장 습관: 프로그래머의 일상
5.1 프로그래머의 3대 미덕
5.2 보이 스카우트 규칙
5.3 성능 튜닝에 관한 금언
5.4 비자아적 프로그래밍
5.5 한 걸음씩 조금씩
5.6 TMTOWTDI

6장 기법: 프로그래머의 도구 상자
6.1 예광탄
6.2 계약에 의한 설계
6.3 방어적 프로그래밍
6.4 개밥 먹기
6.5 고무 오리
6.6 컨텍스트

7장 법칙: 프로그래밍의 안티패턴
7.1 브룩스의 법칙
7.2 콘웨이의 법칙
7.3 깨진 유리창 법칙
7.4 엔트로피 증가의 법칙
7.5 80:10:10의 법칙
7.6 조슈아 나무의 법칙
7.7 세컨드 시스템 증후군
7.8 수레바퀴의 재발명
7.9 야크의 털깎기

마치며
감사의 말
찾아보기