프로그래밍의 규칙 : 더 나은 코드를 작성하는 21가지 개발 비법
Description
고스트 오브 쓰시마, 슬라이 쿠퍼 등 세계적인 게임의 제작사,
‘서커펀치’의 프로그래밍 기술을 엿보다!
* 파이썬, 자바스크립트 개발자를 위한 C++ 코드 읽기 가이드 수록

이 책은 전 세계적으로 천만 장 가까이 판매된 메가 히트 게임, 〈고스트 오브 쓰시마〉와 〈슬라이 쿠퍼〉 시리즈로 유명한 ‘서커펀치’의 프로그래밍 모범 사례를 21가지로 엮은 책입니다. 총 21개의 ‘규칙’으로 구성된 이 책에는 모든 프로그래머가 알아야 할 필수 지식과 개발 아이디어를 자극하는 인사이트가 가득 담겨 있습니다. 또한, 코드를 작성할 때뿐만 아니라, 디버깅과 최적화 관련 지식도 함께 다루고 있어서 게임 분야에 국한되지 않고, 모든 분야의 프로그래머에게 유용한 지식을 제공합니다. 이 책에 담긴 ‘서커펀치’만의 프로그래밍 비법을 익혀 프로그래밍 전문가에 한 발짝 더 다가가세요.
저자

크리스짐머만

저자:크리스짐머만
세계적으로유명한서커펀치프로덕션의공동설립자이자스튜디오책임자입니다.<슬라이쿠퍼>시리즈,<인퍼머스>시리즈,<고스트오브쓰시마>를제작했습니다.

역자:박상현
반도체공정자동화,통신장비,방공무기체계,사이버시큐리티,SaaS분야에서소프트웨어를개발해왔으며,현재캘리포니아소재스타트업에서소프트웨어엔지니어로일하고있습니다.대학원에서우연히인공지능을만나깊이공부하고,그지식을살려『그로킹딥러닝』(2020세종학술부문우수도서)을번역했습니다.대표저서로『이것이C#이다(3판)』(2023),『이것이자료구조+알고리즘이다withC언어』(2022)등이있습니다.

목차


규칙1최대한단순하게,그러나너무단순하지않게
_단순성측정하기
_그러나너무단순하지않게
_문제를단순화하는것이솔루션보다나을때가있다
_단순한알고리즘
_흐름을놓치지말라
_모든규칙을지배하는단하나의규칙

규칙2버그는전염된다
_사용자를믿지말라
_자동화테스트는까다롭다
_상태를유지하지않는코드는테스트하기쉽다
_제거할수없는상태는감사하라
_내코드를사용하는동료를믿지말라
_코드를건강하게

규칙3좋은이름은최고의문서다
_글자수를줄이는것은최적화가아니다
_코딩컨벤션을믹스앤드매치하지말라
_제무덤을파지말라
_생각하게하지말라

규칙4일반화에는세가지사례가필요하다
_필요하지않으면구현하지말라
_이의있다고요?저는아주확고합니다
_섣부른일반화는정말나쁘다
_이것이성공은아니다

규칙5첫번째최적화교훈:최적화하지말라
_첫번째최적화교훈
_두번째최적화교훈
_두번째최적화교훈시험해보기
_다섯단계최적화과정적용하기
_세번째최적화교훈은없다

간주규칙5에대한비판을중심으로

규칙6코드리뷰의세가지장점
_코드리뷰는지식공유다
_금지된코드리뷰
_코드리뷰의진정한가치
_코드리뷰는본질적으로사회적활동이다

규칙7실패케이스를제거하라
_잘못사용하면제무덤파기쉬운함수
_나도모르게내무덤파기
_컴파일러의도움받기
_타이밍이전부다
_더복잡한예제
_순서실수를불가능하게만들기
_메서드체이닝대신템플릿사용하기
_상태제어조율하기
_실수를발견하는것도좋지만,실수를방지하는것이더좋다

규칙8실행되지않는코드는작동하지않는다
_1단계:단순한시작
_2단계:대표적인패턴일반화하기
_3단계:위장추가하기
_4단계:뿌린대로거둔다
_책임따지기
_테스트의한계

규칙9요약가능한코드를작성하라
_실패란이런느낌이다
_단기기억의역할
_경계선을그어야하는곳
_추상화의비용
_이해하기쉽도록추상화를사용하라
_장기기억의역할
_상식은공짜지만새로운지식은비싸다
_단기기억과장기기억을함께활용하라

규칙10복잡성을격리하라
_간단한예제
_내부세부사항숨기기
_상태분산과복잡성
_능력복원?
_안개가끼기시작하다
_접근법다시생각해보기
_격리된복잡성,단순한상호작용

규칙11두배좋은가
_앞으로전진하는세가지길:무시,미세조정,리팩터링
_점진적진화vs지속적재발명
_간단한기준하나
_애매한혜택다루기
_재작업은작은문제를정리할좋은기회다

규칙12큰팀에는강력한컨벤션이필요하다
_형식화컨벤션
_언어사용컨벤션
_문제해결컨벤션
_효율적인팀은같은방식으로생각한다

규칙13산사태를일으킨조약돌을찾으라
_버그의생애주기
_상태의가짓수최소화하기
_제거할수없는상태다루기
_피할수없는지연다루기

규칙14네가지맛의코드
_쉬운문제와단순한솔루션
_쉬운문제와세가지복잡한솔루션
_복잡성에따르는비용
_프로그래머의네가지(실제로는세가지)유형
_어려운문제와작동하지않는약간복잡한솔루션
_어려운문제와약간복잡한솔루션
_어려운문제와단순한솔루션

규칙15잡초를뽑으라
_잡초식별하기
_코드는어떻게잡초로덮이는가

규칙16코드가아닌결과에서부터작업하라
_한가지예제
_짜증나는일
_골짜기의끝선택하기
_뒤로작업해나가기
_완전히다른무언가를위해
_앞으로작업하기와거꾸로작업하기

규칙17더쉽게해결되는큰문제도더러있다
_제대로착지하기
_올바른방향찾기
_기회포착하기

규칙18코드가스스로이야기하게하라
_사실이아닌이야기는하지말라
_이야기에는목적이있어야한다
_좋은스토리텔링

규칙19평행재작업
_뜻밖의문제
_평행시스템을구축하라
_구체적인예시
_실전에서의스택할당
_불안요소
_좀더영리하게스택컨텍스트만들기
_이전스택컨텍스트를새스택컨텍스트로마이그레이션하기
_StackVector마이그레이션준비하기
_마이그레이션할시간
_평행재작업전략을적용하기좋은상황

규칙20계산하라
_자동화할것인가,하지않을것인가,그것이문제로다
_절대적한계조사하기
_계산이달라질때
_계산문제가다시MS워드문제로바뀔때

규칙21때로는못질을해야한다
_새로운인수추가하기
_버그가하나뿐일리없다
_자동화의경고음
_파일크기관리하기
_지름길은없다

결론자신의규칙을만들라
_자신의판단을믿으라
_토의하라
_끝맺음

부록A파이썬프로그래머를위한C++코드읽기
_타입
_형식화와주석
_클래스
_가시성
_선언과정의
_함수오버로딩
_템플릿
_포인터와참조

부록B자바스크립트프로그래머를위한C++코드읽기
_타입
_배열
_클래스
_선언과정의
_함수오버로딩
_템플릿
_포인터와참조

출판사 서평

고스트오브쓰시마,슬라이쿠퍼등세계적인게임의제작사,‘서커펀치’의프로그래밍기술을엿보다!
*파이썬,자바스크립트개발자를위한C++코드읽기가이드수록

이책은전세계적으로천만장가까이판매된메가히트게임,<고스트오브쓰시마>와<슬라이쿠퍼>시리즈로유명한‘서커펀치’의프로그래밍모범사례를21가지로엮은책입니다.총21개의‘규칙’으로구성된이책에는모든프로그래머가알아야할필수지식과개발아이디어를자극하는인사이트가가득담겨있습니다.또한,코드를작성할때뿐만아니라,디버깅과최적화관련지식도함께다루고있어서게임분야에국한되지않고,모든분야의프로그래머에게유용한지식을제공합니다.이책에담긴‘서커펀치’만의프로그래밍비법을익혀프로그래밍전문가에한발짝더다가가세요.

창립이후,25년간쌓아올린‘서커펀치’의프로그래밍문화
세계적인게임제작사가전하는,프로그래밍의규칙!

모든분야에는저마다의규칙이있습니다.그규칙의대부분은오랜시간수많은실패와좌절을통해얻은교훈으로만들어지죠.따라서그규칙을보면,해당팀혹은회사의발자취를볼수있습니다.이책은전세계적인메가히트게임,<고스트오브쓰시마>를만든‘서커펀치프로덕션’의21가지프로그래밍규칙을다룹니다.이규칙들은‘서커펀치’의문화를대변하며,그들을성공으로이끈비법을뜻하기도합니다.

총21가지규칙을하나씩설명하고,해당규칙이면에있는인사이트를확인할수있는다양한예제도함께제공합니다.이를통해각장을마칠때마다해당규칙이장려하는코딩관습과규칙을적용할수있는상황을명확하게이해할수있습니다.또한'파이썬','자바스크립트'개발자를위한C++코드읽는법을부록으로추가해이책을이해할수있는전반적인지식도수록했습니다.