이미 소장하고 있다면 판매해 보세요.
|
규칙 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++ 코드 읽기 _타입 _배열 _클래스 _선언과 정의 _함수 오버로딩 _템플릿 _포인터와 참조 |
Chris Zimmerman
박상현의 다른 상품
|
창립 이후, 25년간 쌓아 올린 ‘서커펀치’의 프로그래밍 문화
세계적인 게임 제작사가 전하는, 프로그래밍의 규칙! 모든 분야에는 저마다의 규칙이 있습니다. 그 규칙의 대부분은 오랜 시간 수많은 실패와 좌절을 통해 얻은 교훈으로 만들어지죠. 따라서 그 규칙을 보면, 해당 팀 혹은 회사의 발자취를 볼 수 있습니다. 이 책은 전 세계적인 메가 히트 게임, 〈고스트 오브 쓰시마〉를 만든 ‘서커펀치 프로덕션’의 21가지 프로그래밍 규칙을 다룹니다. 이 규칙들은 ‘서커펀치’의 문화를 대변하며, 그들을 성공으로 이끈 비법을 뜻하기도 합니다. 총 21가지 규칙을 하나씩 설명하고, 해당 규칙 이면에 있는 인사이트를 확인할 수 있는 다양한 예제도 함께 제공합니다. 이를 통해 각 장을 마칠 때마다 해당 규칙이 장려하는 코딩 관습과 규칙을 적용할 수 있는 상황을 명확하게 이해할 수 있습니다. 또한 '파이썬', '자바스크립트' 개발자를 위한 C++ 코드 읽는 법을 부록으로 추가해 이 책을 이해할 수 있는 전반적인 지식도 수록했습니다. 주요 목차 ㆍ 최대한 단순하게, 그러나 너무 단순하지 않게 ㆍ 코드가 스스로 이야기하게 하라 ㆍ 복잡성을 격리하라 ㆍ 일반화에는 세 가지 사례가 필요하다 ㆍ 코드가 아닌 결과에서부터 작업하라 |
|
이 책의 조언을 따르면 코딩할 때 실수할 가능성이 줄어들고 ‘일이 되는’ 코드를 작성할 수 있어 프로그램의 품질과 생산성이 향상될 것입니다. - 이주영 (이브이알스튜디오)
|
|
이 책은 품질 높은 소프트웨어를 지향하는 개발자에게 귀중한 지침서입니다. - 윤명식 (메가존클라우드 아키텍트)
|
|
개발자라면 이 책을 곁에 두고 읽기를 추천합니다. - 유형진 (데브구루)
|
|
이 책은 코딩의 항상성을 위해 지켜야 할 규칙을 담고 있습니다. 저자의 말처럼 이 책에서 소개한 규칙이 진리는 아니지만, 프로그래머라면 곱씹어볼 만한 가치가 충분합니다. - 윤병조 (소프트웨어 개발자)
|
|
광활한 프로그래밍의 세계를 즐겁고 힘겹게 여행하고 있는 저를 비롯한 모든 개발자에게 이 책은 나침반과 같은 역할을 할 것입니다. - 최성욱 (삼성전자 VD사업부 Security Lab)
|
|
이 책의 저자는 오랫동안 개발자로 일하면서 경험한 실패 그리고 그러한 실패를 막을 수 있는 규칙을 통해 좌절을 최대한 피할 수 있는 길로 독자를 안내합니다. - 구인회 (테크 리더)
|
|
이 책은 자체적인 규칙을 갖추고 있지 않거나 보완해야 할 회사에는 가이드라인을 제시하고, 더 나은 코드를 작성하고자 하는 개발자에게는 이정표가 되어줄 것입니다. - 이태우 (현대오토에버)
|
|
저는 이 책을 우리 팀원들과 함께 읽고 싶습니다. 팀원들과 함께 규칙을 읽어보며 팀이 다루는 코드베이스에 어떻게 적용할 수 있을지 논의한다면, 팀원 모두가 성장하고 담당 코드의 완성도를 높이는 데 큰 도움이 될 것입니다. - 김기덕 (이스트시큐리티)
|