서문
chapter 1 소개, 코드 포매팅과 도구
클린 코드의 의미
클린 코드의 중요성
클린 코드에서 코드 포매팅의 역할
프로젝트 코딩 스타일 가이드 준수
Docstring과 어노테이션
Docstring
어노테이션
어노테이션은 docstring을 대체하는 것일까?
기본 품질 향상을 위한 도구 설정
요약
chapter 2 파이썬스러운(pythonic 코드
인덱스와 슬라이스
자체 시퀀스 생성
컨텍스트 관리자(context manager
컨텍스트 관리자 구현
프로퍼티, 속성과 객체 메서드의 다른 타입들
파이썬에서의 밑줄
프로퍼티
이터러블 객체
이터러블 객체 만들기
시퀀스 만들기
컨테이너 객체
객체의 동적인 속성
호출형(callable 객체
매직 메서드 요약
파이썬에서 유의할 점
변경 가능한(mutable 파라미터의 기본 값
내장(built-in 타입 확장
요약
참고 자료
chapter 3 좋은 코드의 일반적인 특징
계약에 의한 디자인
사전조건(precondition
사후조건(postcondition
파이썬스러운 계약
계약에 의한 디자인(DbC - 결론
방어적(defensive 프로그래밍
에러 핸들링
파이썬에서 어설션 사용하기
관심사의 분리
응집력(cohesion과 결합력(coupling
개발 지침 약어
DRY/OAOO
YAGNI
KIS
EAFP/LBYL
컴포지션과 상속
상속이 좋은 선택인 경우
상속 안티패턴
파이썬의 다중상속
함수와 메서드의 인자
파이썬의 함수 인
견고하면서도 확장성이 뛰어난 파이썬 코드를 만드는 비법
파이썬은 누구나 쉽게 시작할 수 있는 프로그래밍 언어이다. 그러나 이 책에서 소개하는 다음 내용을 제대로 숙지하지 않고 개발을 하다보면 더 이상은 수정이 불가능한 코드를 마주하게 된다. 어디서부터 무엇이 잘못된 걸까? 이 책을 통해 파이썬의 철학을 따르는 파이썬스러운 클린 코드를 작성하는 방법에 대해 알아보자.
* 클린 코드란 무엇인가?
* 파이썬스러운(pythonic 코드란 무엇인가?
* 파이썬에서 밑줄의 의미
* yield와 return의 차이
* 이터러블과 이터레이터, 제너레이터의 차이
* 코루틴을 사용한 비동기 프로그래밍
* LBYL - 코드 실행 전에 문제를 검사해야 할까? 아니면 EAFP - 일단 실행 후 발생한 예외를 잡아야 할까?
* SOLID 원칙을 따르는 견고하고 확장성이 뛰어난 객체 만들기
* 파이썬의 덕 타이핑 (Duck Typing
* 데코레이터를 사용해 내 맘대로 객체 꾸미기
* 데이터 디스크립터와 비데이터 디스크립터의 차이
* 파이썬에서도 GoF의 디자인 패턴을 사용해야 할까?
* 몽키 패치는 왜 몽키 패치라 할까?
* "소프트웨어 공학의 사실과 오류" 부터 "성당과 시장"에 이르는 고서의 인사이트 엿보기
이 책의 대상 독자
이 책은 소프트웨어 디자인에 관심이 있거나 파이썬에 대해 보다 자세히 알고 싶은 모든 개발 실무자에게 적합하다.
파이썬의 관점에서만 보면 이 책은 모든 수준에 개발자에게 적합하다. 각 장의 내용은 점점 복잡해지는 구조이기 때문에 차례로 학습하기에 좋다. 숙련된 개발자에게도 도움이 된다. 데코레이터, 디스크립터와 비동기 프로그래밍 같은 파이썬 고급 주제를 다룬다. 일부 주제는 언어 내부의 동작 원리부터 분석하기 때문에 파이썬을 좀 더 깊이 이해하는데 도움이 될 것이다.