품목정보
발행일 | 2012년 04월 10일 |
---|---|
쪽수, 무게, 크기 | 252쪽 | 578g | 188*235*20mm |
ISBN13 | 9788979149142 |
ISBN10 | 897914914X |
발행일 | 2012년 04월 10일 |
---|---|
쪽수, 무게, 크기 | 252쪽 | 578g | 188*235*20mm |
ISBN13 | 9788979149142 |
ISBN10 | 897914914X |
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. 역사적 사례를 담고 있는 책들 __찾아보기 |
한빛미디어에서 출간된 더스틴 보즈웰, 트레버 파우커 공동 저자(임백준 역)의 읽기 좋은 코드가 좋은 코드다 더 나은 코드를 작성하는 간단하고 실전적인 테크닉이라는 책을 읽고 작성하는 리뷰입니다. 제목이 굉장히 공감이 되어서 구매했었는데, 너무 장황하게 설명하지 않고 핵심만 간단하게 설명되어 있어서 이게 어떤 분에게는 더 좋을 수도 있지만 기본베이스가 없는 분들에게는 좀 어려울 수도 있다고 생각이 됩니다.
수십년 프로그래밍을 해 왔지만 이 책을 보고 반성했다.
너무 짧은 코드를 지향하지 않았는가?
너무 나 자신 위주로 코딩을 해오지는 않았는가?
보통 초보 시절에는 코드가 장황해지고 읽기 어려운 경우가 발생하기 쉽지만,
경력이 쌓여가며 반대로 너무 언어나 코딩에 익숙해지면서 기교섞인 코드를 많이 사용하게 되면서 읽기 어려워지는 경향이 있다.
이 책의 예제 스타일이 꼭 정답은 아니겠지만,
책이 지향하는 방향은 맞다고 생각된다.
- 이 책은 깔끔하게 작성하는 거 외에도 작명시 타인의 생각까지도 염두해야 한다는 부분이 인상깊었다.
- 클린 코드와 비교해서 좀 더 기초에 집중한 느낌. 변수명 작성이라던가 주석 내용 구체화라던가.
- 일단 설명 언어가 자바말고 다른 언어(C(++), python)도 있어서 좋았다.
- 그 외에도 예제 코드의 강조 부분을 볼드로 칠했다던가, 코드 개선 before after를 비교한다던가 이해하기 쉬운 점이 많아서 좋았다.
- 제일 좋은 건 맨 뒤에 유용한 레퍼런스들을 많이 적어 놨다는 거. 클린 코드 포함 모 출판사의 소프트웨어 공학 관련 책들이 많이 있었다.
- 사족으로, 일반적인 엔지니어가 하루 평균 10줄 정도의 코드를 작성한다는 통계가 어디서 나온 건지 궁금하다.