서평

[서평] Good Code, Bad Code(좋은 코드, 나쁜 코드)

2022. 8. 5. 11:03

개요

이 책은 크게 이론/실전/단위 테스트로 총 3개 파트로 나뉘어 있습니다.

1부 이론 편에서는 코드품질, 추상화 계층, 다른 개발자와의 코드 계약, 오류에 대한 내용을 다룹니다. 좀 더 자세하게는

1. 고품질의 소프트웨어를 만들기 위해서 코드를 어떻게 작성해야 하는지

2. 추상화 수준을 어떻게 가져가면 코드를 이해하기 쉽고, 재활용하기 쉽고, 테스트를 쉽게 할 수 있는지

3. 자신이 작성한 코드를 다른 개발자가 사용하려면 어떻게 코드 계약을 맺어야 하는지

4. 문제가 어떻게 발생하고 어떻게 대처해야 하는지에 대해서 배웁니다.

2부 실전 편에서는 가독성 높은 코드 작성, 예측 가능한 코드 작성, 코드를 오용하기 어렵게 만들라, 코드를 모듈화 하라, 코드를 재사용하고 일반화하라에 대한 내용을 다룹니다. 세부 사항으로는

1. 다른 개발자가 오해하지 않도록 코드 작성하고, 의도치 않게 오류를 발생시키는 코드를 예방하는 방법

2. 코드가 오용하기 않도록 작성하는 방법

3. 코드를 모듈화 하는 방법

4. 같은 코드를 재사용하는 방법에 대해서 배웁니다.

3부 단위 테스트 편에서는 단위 테스트의 원리, 단위 테스트의 실제에 대해서 배웁니다.

코드에 대한 상세 설명

예상 독자

이 책을 이해하려면 정적 타입의 객체 지향 언어(자바, C#, TypeScript, C++, Swift, Kotlin 등등) 중 하나 정도는 잘 알아야 이해하기 쉬울 것 같습니다. (코드를 이해하기 위해서) 이제 막 프로그래밍 입문을 하신 분들께는 추천드리지 않습니다.

코드에 대한 상세 설명2

총평

프로그래밍 언어에 익숙한 사람이 좀 더 좋은코드를 작성하기 위해서 어떻게 해야 될지 고민하시는 분들께 추천드립니다. 다시 한번 말씀드리지만 프로그래밍에 익숙하지 않으신 분들께는 추천드리지 않습니다.

책에 대한 아쉬운 부분이 조금 있다면 이론 부분이 굉장히 지루할 수 있다고 생각합니다. 책에 나와 있는 코드량이 많기는 하지만 그 많은 코드에 대한 더 많은 이론적이 내용이 오히려 책에 대한 흥미를 떨어 뜨릴 수 있다는 생각이 들었습니다. 책이 생각보다 두껍고 내용이 방대해서 모든 내용을 이해하려고 한다면 시간이 걸릴 것 같다는 생각도 들었습니다. 책의 내용을 이해하기 위한 보조 지식도 많이 필요하다고 느꼈습니다. 의존성 주입, 디자인 패턴(널 객체 패턴, 팩토리 메서드 패턴, 빌더 패턴 등등), 함수형 프로그래밍 등등.

반면 책의 장점에 대해서 말씀드리자면 책의 구성이 괜찮고, 어떤 특정 문제가 주어지는 코드를 보여주며 이 코드에 대한 문제는 무엇이고 이것을 어떻게 개선해 나갈 수 있는지 해결책을 제시하고 있는 부분이 좋았습니다. 그리고 어떤 문제가 있는데 그것들이 왜 문제가 되는지 나열해 주는 것도 좋았습니다. 예를 들면 7.1에서 "불변 객체로 만드는 것을 고려하라"라 부분에서 가변 객체가 왜 문제가 되는지 설명하고 있는데 그 이유는 가변 객체는 추론하기 어렵고, 가변 객체는 다중 스레드에서 문제가 발생할 수 있다는 것을 이유 1, 이유 2 이런 식으로 설명해 주고 있어서 매우 좋았습니다. 마지막으로  flow-chart와 코드에 대한 상세 주석이 이 책의 장점이라 할 수 있을 것 같습니다.

flow-chart를 활용하여 이해를 돕고 있다.

"제이펍의 [믿고 보는 제이펍 IT 전문서 리뷰어]_2기 활동을 통해 작성된 서평입니다. "

'서평' 카테고리의 다른 글

[서평] AWS로 시작하는 인프라 구축의 정석  (0) 2022.06.20
[서평] 쏙쏙 들어오는 함수형 코딩  (1) 2022.05.02
[서평] 프로그래머의 뇌 (The Programmer's Brain)  (0) 2022.04.03
가상 면접 사례로 배우는 대규모 시스템 설계 기초  (0) 2021.07.31
나는 LINE 개발자입니다.  (0) 2021.03.28
'서평' 카테고리의 다른 글
  • [서평] AWS로 시작하는 인프라 구축의 정석
  • [서평] 쏙쏙 들어오는 함수형 코딩
  • [서평] 프로그래머의 뇌 (The Programmer's Brain)
  • 가상 면접 사례로 배우는 대규모 시스템 설계 기초
향찡
향찡
백엔드 개발자
향찡
Dev Story
향찡
전체
오늘
어제
  • 분류 전체보기 (97)
    • Java (42)
      • design pattern (7)
      • JavaCafe Study (4)
    • Kotlin (2)
    • Spring (4)
    • TypeScript (1)
    • DevOps (2)
      • AWS (1)
    • DB (4)
      • Real Mysql (2)
      • Redis (1)
    • OS (3)
      • Linux (3)
    • Algorithm (7)
    • Clean Code (1)
    • Git (5)
    • 환경 설정 (2)
    • 그냥 생각 (1)
    • 서평 (12)
      • 한빛미디어, 나는리뷰어다 2022 (4)
    • 세미나 (11)
    • 기타 (0)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 유스콘
  • 패스트캠퍼스
  • 자바스크립트
  • 한빛미디어
  • java
  • 패스트캠퍼스후기
  • Kotlin
  • 스터디
  • OKKY
  • 백준
  • fastcampus
  • 제이펍
  • 코딩교육
  • 파이썬
  • 알고리즘
  • Real MySQL
  • 자바스터디
  • 백기선
  • 패캠
  • 깃 #깃허브
  • 스터디올래
  • java #study
  • 코딩테스트
  • 자바카페
  • 인프런
  • git #github #doit #형상관리
  • 자바
  • 코딩자격증
  • 스터디할래
  • LeetCode

최근 댓글

최근 글

hELLO · Designed By 정상우.
향찡
[서평] Good Code, Bad Code(좋은 코드, 나쁜 코드)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.