좋은 코드, 나쁜 코드 : 프로그래머의 코드 품질 개선법
Description
이 책의 가장 큰 특징은 나쁜 코드가 왜 나쁜 코드인지 설명하고, 나쁜 코드를 좋은 코드로 바꿔가는 과정을 직접 보여주는 것이다. 이를 통해 독자는 좋은 코드와 나쁜 코드를 구분할 줄 알고, 이론으로 배운 코드 작성 방법을 실제로 어떻게 적용하는지 알게 된다. 이 책을 통해 나쁜 코드를 좋은 코드로 개선하는 법을 배우고 누구나 함께 일하고 싶어 하는 좋은 개발자가 되어보자.

저자

톰롱

저자:톰롱
구글의소프트웨어엔지니어다.모바일디스플레이광고의자동화및최적화기술팀의테크리드이자팀장으로일하며초급소프트웨어엔지니어들에게전문적인코딩모범사례에대해정기적으로멘토링하고있다.

역자:차건회
현재미국로스앤젤레스의ShellRechargeSolutions에서자바백엔드테크리드로일하고있다.자바,스프링부트,메시지큐,일래스틱서치,레디스등자바백엔드의전반적인기술스택및성능향상에관심이있다.

목차

옮긴이머리말xiii
베타리더후기xv
머리말xviii
감사의글xix
이책에대하여xx
장별요약xxv
표지에대하여xxvi

PARTI이론
CHAPTER1코드품질3
1.1코드는어떻게소프트웨어가되는가5
1.2코드품질의목표8
1.3코드품질의핵심요소12
1.4고품질코드작성은일정을지연시키는가?23
요약25

CHAPTER2추상화계층27
2.1널값및의사코드규약28
2.2왜추상화계층을만드는가?29
2.3코드의계층33
2.4마이크로서비스는어떤가?54
요약56

CHAPTER3다른개발자와코드계약57
3.1자신의코드와다른개발자의코드58
3.2여러분이작성한코드의사용법을다른사람들은어떻게아는가?61
3.3코드계약64
3.4체크및어서션73
요약77

CHAPTER4오류79
4.1복구가능성80
4.2견고성vs실패84
4.3오류전달방법93
4.4복구할수없는오류의전달108
4.5호출하는쪽에서복구하기를원할수도있는오류의전달108
4.6컴파일러경고를무시하지말라116
요약118

PARTII실전
CHAPTER5가독성높은코드를작성하라123
5.1서술형명칭사용123
5.2주석문의적절한사용127
5.3코드줄수를고정하지말라132
5.4일관된코딩스타일을고수하라134
5.5깊이중첩된코드를피하라137
5.6함수호출도가독성이있어야한다141
5.7설명되지않은값을사용하지말라146
5.8익명함수를적절하게사용하라150
5.9프로그래밍언어의새로운기능을적절하게사용하라157
요약159

CHAPTER6예측가능한코드를작성하라161
6.1매직값을반환하지말아야한다162
6.2널객체패턴을적절히사용하라169
6.3예상치못한부수효과를피하라177
6.4입력매개변수를수정하는것에주의하라183
6.5오해를일으키는함수는작성하지말라186
6.6미래를대비한열거형처리191
6.7이모든것을테스트로해결할수는없는가?197
요약198

CHAPTER7코드를오용하기어렵게만들라201
7.1불변객체로만드는것을고려하라202
7.2객체를깊은수준까지불변적으로만드는것을고려하라213
7.3지나치게일반적인데이터유형을피하라219
7.4시간처리226
7.5데이터에대해진실의원천을하나만가져야한다233
7.6논리에대한진실의원천을하나만가져야한다237
요약242

CHAPTER8코드를모듈화하라243
8.1의존성주입의사용을고려하라244
8.2인터페이스에의존하라251
8.3클래스상속을주의하라253
8.4클래스는자신의기능에만집중해야한다265
8.5관련있는데이터는함께캡슐화하라268
8.6반환유형에구현세부정보가유출되지않도록주의하라272
8.7예외처리시구현세부사항이유출되지않도록주의하라275
요약280

CHAPTER9코드를재사용하고일반화할수있도록하라281
9.1가정을주의하라282
9.2전역상태를주의하라287
9.3기본반환값을적절하게사용하라295
9.4함수의매개변수를주목하라300
9.5제네릭의사용을고려하라303
요약306

PARTIII단위테스트
CHAPTER10단위테스트의원칙309
10.1단위테스트기초310
10.2좋은단위테스트는어떻게작성할수있는가?313
10.3퍼블릭API에집중하되중요한동작은무시하지말라319
10.4테스트더블325
10.5테스트철학으로부터신중하게선택하라344
요약346

CHAPTER11단위테스트의실제347
11.1기능뿐만아니라동작을시험하라348
11.2테스트만을위해퍼블릭으로만들지말라353
11.3한번에하나의동작만테스트하라361
11.4공유설정을적절하게사용하라367
11.5적절한어서션확인자를사용하라380
11.6테스트용이성을위해의존성주입을사용하라384
11.7테스트에대한몇가지결론388
요약389

APPENDIXA초콜릿브라우니레시피391
APPENDIXB널안전성과옵셔널393
APPENDIXC추가예제코드397

찾아보기401

출판사 서평

주요내용
■문장처럼읽히는함수작성법
■버그없는코드작성법
■나쁜코드를알아내는방법
■자신과팀을위한시간절약법

대상독자
■소프트웨어개발경험이있는주니어개발자
■초급개발자들을가이드해야하는시니어개발자

추천평
“당신의도구를날카롭게해줄지식의보고”
-조아이번스(캘리포니아지역MLS)

“소프트웨어개발자를위한실용적조언과유용한팁”
-조지토머스(맨해튼어소시에이츠)

“개발자가고품질의효과적인코드를작성하는데실질적으로도움이되는책”
-크리스토퍼빌라누에바(컨설턴트)