읽기 좋은 코드가 좋은 코드다 pdf 다운

읽기 좋은 코드가 좋은 코드다 더스틴 보즈웰 pdf 다운로드를 무료로 제공합니다 이 책은 코드를 작성할 때 언제나 적용할 수 있는 기본적인 원리와 실전적인 기술에 초점을 맞추고 있다. 누구나 쉽게 이해할 수 있는 코드를 예제로 사용하고, 각 장은 코딩과 관련한 다양한 측면을 파고든다

관련 교재 pdf 모음

앨런 튜링, 지능에 관하여 pdf 다운

책 소개

여러분이 어떻게 이해하기 쉬운 코드를 작성할 수 있는지를 보여준다. 딱 맞는 이름 짓기, 주석 달기, 포맷팅 등을 어떤 코드에도 적용할 수 있는 도움말과 함께 설명한다. 프로그램의 루프, 논리, 그리고 변수를 정리해서 복잡성과 혼동을 감소시킨다. 한 번에 하나의 일을 처리하도록 코드의 블록을 정리하는 등, 문제를 함수 수준에서 공략한다. 철저하고 간결하면서 동시에 읽기 쉬운, 효과적인 테스트 코드를 작성한다. 이 책은 매우 읽기 편한 코드를 작성하는 방법을 설명한다. 이 책을 관통하는 핵심 아이디어는 ‘코드는 이해하기 쉬워야 한다’는 것이다. 자신의 코드를 다른 사람이 읽고 이해할 때 걸리는 시간을 최소로 만들어야 한다. 그렇다고 어려운 기법을 장황히 설명하지 않는다. 실전적인 간단한 기법만으로도 코드를 훨씬 읽기 편하게 만들 수 있게 이끌어준다. 프로그래머인 우리는 너무 엉망인데다가 버그투성이라서 머리가 지끈거리는 코드를 만나곤 한다. 이 책의 저자인 더스틴 보즈웰과 트레버 파우커는 지난 5년 동안 (자신들의 코드를 포함한) 수백 개의 ‘나쁜 코드’를 분석하고, 그러한 코드가 ‘왜 나쁜지’, 그리고 코드를 ‘어떻게 개선할 수 있는지’를 연구했다. 그들이 내린 결론은 무엇일까? 그것은 바로 다른 사람들이 코드를 읽고 이해하는 데 걸리는 시간이 최소한이 되도록 작성해야 한다는 것이다. 여기에서 다른 사람이란 자기 자신도 포함된다!

읽기 좋은 코드가 좋은 코드다 pdf

읽기 좋은 코드가 좋은 코드다 pdf

1장. 코드는 이해하기 쉬워야 한다
__01. 무엇이 코드를 ‘더 좋게’ 만드는가?
__02. 가독성의 기본 정리
__03. 분량이 적으면 항상 더 좋은가?
__04. 이해를 위한 시간은 다른 목표와 충돌하는가?
__05. 어려운 부분

PART I. 표면적 수준에서의 개선

2장. 이름에 정보 담기
__01. 특정한 단어 고르기
__02. tmp나 retval 같은 보편적인 이름 피하기
__03. 추상적인 이름보다 구체적인 이름을 선호하라
__04. 추가적인 정보를 이름에 추가하기
__05. 이름은 얼마나 길어야 하는가?
__06. 이름 포메팅으로 의미를 전달하라
__요약

3장. 오해할 수 없는 이름들
__01. 예: Filter()
__02. 예: Clip(text, length)
__03. 경계를 포함하는 한계값을 다룰 때는 min과 max를 사용하라
__04. 경계를 포함하는 범위에는 first와 last를 사용하라
__05. 경계를 포함하고/배제하는 범위에는 begin과 end를 사용하라
__06. 불리언 변수에 이름 붙이기
__07. 사용자의 기대에 부응하기
__08. 예: 이름을 짓기 위해서 복수의 후보를 평가하기
__요약

4장. 미학
__01. 미학이 무슨 상관인가?
__02. 일관성과 간결성을 위해서 줄 바꿈을 재정렬하기
__03. 메소드를 활용하여 불규칙성을 정리하라
__04. 도움이 된다면 코드의 열을 맞춰라
__05. 의미 있는 순서를 선택하고 일관성 있게 사용하라
__06. 선언문을 블록으로 구성하라
__07. 코드를 ‘문단’으로 쪼개라
__08. 개인적인 스타일 대 일관성
__요약

5장. 주석에 담아야 하는 대상
__01. 설명하지 말아야 하는 것
__02. 생각을 기록하라
__03. 코드를 읽는 사람의 입장이 되어라
__04. 마지막 고찰 – 글 쓰는 두려움을 떨쳐내라
__요약

6장 명확하고 간결한 주석 달기
__01. 주석을 간결하게 하라
__02. 모호한 대명사는 피하라
__03. 엉터리 문장을 다듬어라
__04. 함수의 동작을 명확하게 설명하라
__05. 코너케이스를 설명해주는 입/출력 예를 사용하라
__06. 코드의 의도를 명시하라
__07. 이름을 가진 함수 파라미터 주석
__08. 정보 축약형 단어를 사용하라
__요약

PART II. 루프와 논리를 단순화하기

7장. 읽기 쉽게 흐름제어 만들기
__01. 조건문에서 인수의 순서
__02. if/else 블록의 순서
__03. (삼항 연산자로 알려진)?:를 이용하는 조건문 표현
__04. do/while 루프를 피하라
__05. 함수 중간에서 반환하기
__06. 악명 높은 goto
__07. 중첩을 최소화하기
__08. 실행 흐름을 따라올 수 있는가?
__요약

8장. 거대한 표현을 잘게 쪼개기
__01. 설명 변수
__02. 요약 변수
__03. 드모르간의 법칙 사용하기
__04. 쇼트 서킷 논리 오용하기
__05. 예: 복잡한 논리와 씨름하기
__06. 거대한 구문 나누기
__07. 표현을 단순화하는 다른 창의적인 방법들
__요약

9장. 변수와 가독성
__01. 변수 제거하기
__02. 변수의 범위를 좁혀라
__03. 값을 한 번만 할당하는 변수를 선호하라
__04. 마지막 예
__요약

PART III. 코드 재작성하기

10장. 상관없는 하위문제 추출하기
__01. 소개를 위한 예: findClosestLocation()
__02. 순수한 유틸리티 코드
__03. 일반적인 목적의 코드
__04. 일반적인 목적을 가진 코드를 많이 만들어라
__05. 특정한 프로젝트를 위한 기능
__06. 기존의 인터페이스를 단순화하기
__07. 자신의 필요에 맞춰서 인터페이스의 형태를 바꾸기
__08. 지나치게 추출하기
__요약

11장. 한 번에 하나씩
__01. 작업은 작을 수 있다
__02. 객체에서 값 추출하기
__03. 더 큰 예제
__요약

12장. 생각을 코드로 만들기
__01. 논리를 명확하게 설명하기
__02. 라이브러리를 알면 도움이 된다
__03. 논리를 쉬운 말로 표현하는 방법을 더 큰 문제에 적용하기
__요약

13장. 코드 분량 줄이기
__01. 그 기능을 구현하려고 애쓰지 마라 – 그럴 필요가 없다
__02. 요구사항에 질문을 던지고 질문을 잘게 나누어 분석하라
__03. 코드베이스를 작게 유지하기
__04. 자기 주변에 있는 라이브러리에 친숙해져라
__05. 예: 코딩 대신 유닉스 도구를 활용하기
__요약

PART IV. 선택된 주제들

__14장. 테스트와 가독성
__01. 읽거나 유지보수하기 쉽게 테스트를 만들어라
__02. 이 테스트는 어떤 점이 잘못되었을까?
__03. 이 테스트를 더 읽기 쉽게 만들기
__04. 읽기 편한 메시지 만들기
__05. 좋은 테스트 입력값의 선택
__06. 테스트 함수에 이름 붙이기
__07. 이 테스트 코드는 무엇이 잘못되었는가?
__08. 테스트에 친숙한 개발
__09. 지나친 테스트
__요약

15장. ‘분/시간 카운터’를 설계하고 구현하기
__01. 문제
__02. 클래스 인터페이스 정의하기
__03. 시도1: 순진한 해결책
__04. 시도2: 컨베이어 벨트 설계
__05. 시도3: 시간-바구니 설계
__06. 3가지 해결책 비교하기
__요약

Appendix 추가적인 도서목록
__01. 높은 수준의 코드를 쓰는 방법을 다루는 책들
__02. 다양한 프로그래밍 주제에 대한 책들
__03. 역사적 사례를 담고 있는 책들
__찾아보기

Leave a Comment