책소개
코딩 가이드. 언어 창시자나 위대한 프로그래머들이 주장하는 꼭 필요한 좋은 코딩 습관을 15가지 주제별로 분류하여 제시한다. 설계, 띄어쓰기, 들여쓰기, 식별자 이름, 연산자 사용 등 다양한 상황을 위한 상식 수준의 128가지 코딩 가이드는 유지보수의 비극에서 헤어나올 수 있도록 도와줄 것이다.
목차
1장. 시작하기 전에
__코딩 스타일이란 무엇인가
__코딩 스타일 교육이 부족하다
__코딩 스타일을 익혀야 할 시기
__코딩 스타일을 배워야 하는 이유
__코딩 스타일은 수학이나 영어보다 더 중요하다
__모든 언어에 코딩 스타일이 필요하다
__C 언어로 코딩 스타일을 설명하는 이유
__코딩 스타일은 컴파일 방식과 하이브리드 방식에 유용하다
__컴포넌트 기반 개발 방식과 코딩 스타일
__코더의 역량이 중요하다
__코딩 관례를 문서화해 두고 통일되게 적용하라
2장. 프로그램 설계 시에 알아야 할 좋은 코딩 습관
__최신 표준을 따르라
__개발 인원을 적정한 규모로 한정하라
__프로그램을 새로 만드는 경우보다 유지보수하는 경우가 많다
__프로그램을 쉽게 수정할 수 있다는 생각을 버려라
__새로운 기법을 도입할 때는 신중하라
__‘Run and Fix’ 전략을 피하라
3장. 띄어 쓸 때 좋은 코딩 습관
__한 줄에 한 문장만 쓰라
__선언문과 실행문을 구분하라
__단락을 구분하라
__제어문들 사이를 구분하라
__함수들 사이를 구분하라
__연산자의 앞뒤로 빈 칸을 둬라
__단항 연산자를 피연산자와 띄어 쓰지 마라
__세미콜론 앞에 공백을 두지 마라
__탭을 남용하지 마라
__특히 쉼표 뒤에 빈 칸을 둬라
__쉼표 뒤에 너무 많은 빈 칸을 두지 마라
__변수 초기화 시 줄을 맞춰라
__한 줄에 변수 한 개만 선언하라
4장. 들여 쓸 때 좋은 코딩 습관
__중괄호 위치
__중괄호 위치를 통일시켜라
__내부 블록을 들여 써라
__피제어부를 들여 써라
__쓸데없는 들여쓰기를 하지 마라
__들여 쓰는 정도를 일정하게 하라
__들여 쓰는 깊이를 적당하게 하라
__내어쓰기를 하지 마라
5장. 주석을 작성할 때 좋은 코딩 습관
__다양한 주석 형태
__한 줄 주석과 주석 상자를 구분하라
__변수 사전 작성용 주석을 달아라
__의사코드를 프로그램에 기입하라
__프로그램의 목적을 주석으로 달아라
__프로그램의 앞부분에 머리 주석을 반드시 달아라
__상등 연산자 옆에 주석을 달아 두자
__닫는 중괄호에 주석을 달아라
__함수를 충분히 설명하는 주석을 함수 안에 달아라
__주석 표기의 원칙
6장. 식별자 이름을 지을 때 좋은 코딩 습관 I
__변수 이름을 체계적으로 지어라
__헝가리안 표기법으로 변수 이름을 지어라
__변수의 자료형을 변수 이름에 접두사로 표기하라
__기억 부류를 접두사로 활용하라
__함수의 역할을 접두사로 활용하라
__자신만의 접두사를 만들어 활용하라
7장. 식별자 이름을 지을 때 좋은 코딩 습관 II
__이름을 의미 있게 지어라
__비슷한 변수 이름을 사용하지 마라
__의미를 잃지 않는 범위에서 짧게 지어라
__이름이 길면 밑줄 또는 대소문자로 구분하라
__변수 이름을 밑줄로 시작하지 마라
__밑줄을 과도하게 사용하지 마라
__대소문자를 적절히 배합해 식별자 이름을 지어라
__대소문자 구분을 악용하지 마라 I
__대소문자 구분을 악용하지 마라 II
__클래스 이름과 변수 이름을 같게 하지 마라
__변수 이름 중 강조할 부분을 대문자로 처리하라
8장. 연산자를 사용할 때 좋은 코딩 습관
__조건 연산자도 때로는 가독성을 높인다
__연산자의 우선순위에 의존하는 식을 만들지 마라
__포인터 연산자를 변수 이름에 붙여서 써라
__시프트 연산을 지양하고 산술 연산을 하라
__극단적으로 효율성을 추구하지 마라
9장. 명료한 프로그램을 만드는 좋은 코딩 습관
__약삭빠른 코드 대신에 명료하고 이해하기 쉬운 프로그램을 작성하라
__while 문에서 관계/대입 연산자의 우선순위를 혼동하지 마라
__암시적인 ‘non zero test’를 하지 마라
__조건식에 대입문을 사용하지 마라
__부작용이 나타나지 않도록 주의하라
__함수 원형에도 인수 자료형을 표기하라
__가인수에도 이름을 기입하라
__반환 자료형을 반드시 표기하라
__결과값에 주의하라
__for 문 등의 조건에서 연산하는 일을 지양하자
__잉여 괄호를 아낌없이 사용하라
__else 문에 중괄호를 사용했으면 if 문에도 쓰라
__함수의 끝에 반드시 return 문을 적어 둬라
10장. 이식하기 쉬운 프로그램을 만드는 좋은 코딩 습관
__파일 이름의 길이를 14자로 제한하라
__파일 이름에 특수 문자를 사용하지 마라
__조건부 컴파일을 활용해 이식성을 높여라
__컴파일러의 한계를 인식하라
__자료형의 크기가 달라질 수 있다는 점을 고려하라
__절대 경로를 지정하지 마라
__이식성과 효율성 중 어느 한쪽을 선택하라
__포인터 대신 배열을 사용해 이식성을 높여라
__가독성을 고려해 이식성이 좋은 언어를 선택하라
__저수준 언어로 작성한 코드를 끼워 넣지 마라
11장. 정밀한 프로그램을 만드는 좋은 코딩 습관
__컴퓨터는 생각보다 정밀하지 않다
__정밀한 계산이 필요하다면 부동소수점 연산을 피하라
__정밀한 계산에는 float형보다 double형을 사용하라
__정수형의 크기를 확인하라
__계산 단위를 반드시 명시하라
__나눗셈 연산에는 주의를 기울여라
__자료형의 변환이 이루어지지 않도록 하라
__확실하게 문법을 익혀 둬라
__계산 결과가 선형으로 나오지 않을 수 있다는 점에 주목하라
12장. 성능 향상을 위한 좋은 코딩 습관
__성능이 중요하다면 출력을 자제하라
__연산을 단순한 형태로 바꿔라
__효율성이 요구되는 큰 파일을 다룰 때는 바이너리 파일을 사용하라
__팩키드 구조체와 언팩키드 구조체의 장단점을 인식하고 사용하라
__실행 환경을 고려해 언어를 선택하라
__상황에 맞는 수단을 선택하라
__더 나은 자료 구조를 선택하라
13장. 이해하기 쉬운 프로그램을 만드는 좋은 코딩 습관
__goto 문을 사용하지 마라
__C의 구성 요소를 치환하지 마라
__긴 자료형 이름을 짧게 바꿔 사용하라
__3항 연산자보다는 if 문을 사용하라
__배열의 차원을 3차원으로 한정하라
__구동 함수인 main 함수의 역할을 생각하라
__상수를 기호 상수나 const 형태의 상수로 대체해 사용하라
__변수 선언부를 배치할 때 순서를 고려하라
__될 수 있으면 전역 변수를 사용하지 마라
__KISS 원칙을 지켜라
14장. 사용자 인터페이스를 처리할 때 좋은 코딩 습관
__입력값을 저장할 변수의 크기를 충분히 확보하라
__변환 지정자와 매개변수의 개수를 일치시켜라
__scanf() 함수보다는 fgets()와 sscanf() 함수를 사용하라
__fflush() 함수를 사용해 표준 입출력 장치의 버퍼를 비워라
15장. 오류 없는 프로그램을 만드는 좋은 코딩 습관
__배열의 첨자는 0부터 시작한다는 것을 잊지 마라
__치환 문자열을 반드시 괄호로 씌워라
__파일을 열었다면 반드시 닫아 둬라
__컴파일러의 경고(warning error)를 무시하지 마라
__런타임 오류를 인식하고, 그것이 발생하지 않도록 코드를 작성하라
__배열이 큰 경우에는 정적 변수로 선언하라
__기억 공간을 충분한 크기로 정해 둬라
__메시지 교환에 의한 창발 효과에 주의하라
16장. 생산성 향상을 위한 좋은 코딩 습관
__상충 관계 중 어느 쪽을 추구할지를 미리 정해 둬라
__신중하게 최신 도구를 적용하라
__표준 라이브러리 정도는 모두 외워라
__코드 블록을 최대한 쪼개라
__용어를 명확히 구분하라
__구조체, 열거체, 공용체 용어를 명확히 하라
__개념을 명확히 구분하라
__객체, 클래스, 인스턴스를 확실히 구분하라
부록
__참고할 만한 웹 페이지와 검색 방법
__주요 참고 문헌
__후기I: 소프트웨어 ‘출판’이라는 관점에서 바라보기
__후기II: 코더를 지나 프로그래머로