CHAPTER 1 프로그래밍 배우기
01 프로그래밍을 배우는 안 좋은 방법
02 도구를 고르는 안 좋은 방법
CHAPTER 2 구성과 구조
01 일관성 없고 엉망으로 띄어쓰기 하기
02 코드에 쓸모없는 것 더하기
03 형편없는 주석 달기
CHAPTER 3 변수
01 불명확한 이름 사용하기
02 변수 선언을 시간 낭비로 여기기
03 변수의 적용 범위를 최대화하기
04 타입 체계를 완전히 악용하기
05 NULL - 종말의 신호
CHAPTER 4 조건문
01 대안은 잊기
02 표현을 악용하기
03 범위상에 공백을 넣거나 범위 겹치기
CHAPTER 5 반복문
01 잘못된 타입 선택하기
02 무한 루프 즐기기
03 잘못된 반복문 종료 만들기
04 반복문을 길고 복잡하게 만들기
CHAPTER 6 서브루틴
01 서브루틴의 사이즈를 아주 크게 하기
02 이해하기 힘들게 만들기
03 매개 변수를 악용하기
04 반환값으로 골탕먹이기
CHAPTER 7 오류 처리
01 모든 것이 문제없이 잘 될 거라고 가정하기
02 문제를 기억의 저편으로 보내 버리기
03 해결 미루기
04 어지럽히기
CHAPTER 8 모듈
01 혼란스럽게 불러오기
02 재사용 막기
03 강한 의존성 만들기
CHAPTER 9 클래스와 객체
01 알 수 없는 목적의 클래스 만들기
02 객체를 유연하지 않게 만들기
03 다형성 피하기
04 상속을 남용하거나 오용하기
CHAPTER 10 테스트
01 코드 보호하기
02 테스트 코드에 함정 파기
CHAPTER 11 디버깅
01 비체계적으로 수사하기
02 디버깅 어렵게 하기
03 제대로 된 수정 피하기
CHAPTER 1 프로그래밍 배우기
이 챕터는 코딩을 하기 위한 준비 과정으로 프로그래밍을 배우는 방법과 개발 도구를 선정하는 방법부터 시작한다. 나쁜 개발자가 되고 싶은 당신을 위해, 이 챕터는 이런 과정을 엉망으로 만들도록 도와줄 것이다.
CHAPTER 2 구성과 구조
코드 배치는 그 코드가 얼마나 이해하기 쉬운지에 영향을 미치는데, 이 챕터에서는 코드 배치를 이용해 알아볼 수 없는 코드를 만드는 방법을 배운다. 또한, 코드 배치와 구조는 어떻게 주석을 다는가에 따라서 더욱 끔찍한 결과를 만들어낼 수도 있다. 당연히 주석이 프로젝트 전체에 해를 끼치는 방법도 알아본다.
CHAPTER 3 변수
변수가 없다면 프로그램이 작동하는 과정에서 정보를 기록하고 추적할 방법은 없다. 변수는 프로그래밍에서 아주 기본적인 부분이기 때문에, 변수를 악용하는 수많은 방법을 배우는 것은 매우 즐거운 일이 될 것이다. 이번 챕터에서는 그중에서도 정말 악명 높고 딱 봐도 안 좋은 예제들을 살펴본다.
CHAPTER 4 조건문
이 챕터에서는 조건문을 잘못 사용하여 잘못된 조치를 취하거나 심지어 어떤 조치도 취하지 못하는 방법을 보여 줄 것이다. 또한 엉성하고 혼란스러운 코드 사이에 어떻게 자신의 흔적을 감추고 버그를 숨길 수 있는지 알게 될 것이다.
CHAPTER 5 반복문
조건문처럼 반복문도 프로그래밍의 기본적인 제어 구조다. 반복문은 조건문보다 더 복잡하며, 프로그램에 혼란과 파괴를 가져올 가능성이 더 크다. 이번 챕터에서는 이러한 잠재력을 활용하는 몇 가지 기본 방법에 대해 설명한다.
CHAPTER 6 서브루틴
서브루틴의 목적은 도움을 주는 것이다. 각각의 기능 단위에 해당하는 서브루틴을 작성해야 한다. 그러기 위해서 서브루틴은 논리적이며, 작고, 단순해야 한다. 하지만 단지 돕기 위함이 서브루틴이 존재하는 이유는 아니다. 이 챕터를 마칠 때쯤이면 서브루틴을 약하고, 비논리적이고, 답답할 정도로 복잡하게 만드는 방법을 배우게 될 것