파이썬 클린 코드
도서명:파이썬 클린 코드
저자/출판사:마리아노,아나야,저자,글,·,김창수,번역/터닝포인트
쪽수:432쪽
출판일:2022-11-11
ISBN:9791161341330
목차
서문
chapter 1 코드 포매팅과 도구
서론
클린 코드의 의미
클린 코드의 중요성
예외 상황
클린 코드에서 코드 포매팅의 역할
프로젝트 코딩 스타일 가이드 준수
문서화(Documentation)
코드 주석(code comments)
Docstring
도구 설정
데이터 타입 일관성 검사
일반적인 코드 검증
자동 포매팅
자동 검사 설정
요약
참고자료
chapter 2 파이썬스러운(pythonic) 코드
인덱스와 슬라이스
자체 시퀀스 생성
컨텍스트 관리자(context manager)
컨텍스트 관리자 구현
컴프리헨션(comprehension)과 할당 표현식
프로퍼티, 속성(attribute)과 객체 메서드의 다른 타입들
파이썬에서의 밑줄
프로퍼티
보다 간결한 구문으로 클래스 만들기
이터러블 객체
컨테이너 객체
객체의 동적인 속성
호출형(callable) 객체
매직 메서드 요약
파이썬에서 유의할 점
변경 가능한(mutable) 파라미터의 기본 값
내장(built-in) 타입 확장
비동기 코드(asynchronous code)에 대한 간략한 소개
요약
참고 자료
chapter 3 좋은 코드의 일반적인 특징
계약에 의한 디자인
사전조건(precondition)
사후조건(postconditions)
파이썬스러운 계약
계약에 의한 디자인(DbC) - 결론
방어적(defensive) 프로그래밍
에러 핸들링
파이썬에서 어설션(assertion) 사용하기
관심사의 분리
응집력(cohesion)과 결합력(coupling)
개발 지침****어
DRY/OAOO
YAGNI
KIS
EAFP/LBYL
상속
상속이 좋은 선택인 경우
상속 안티패턴
파이썬의 다중상속
함수와 메서드의 인자
파이썬의 함수 인자 동작방식
함수 인자의 개수
소프트웨어 디자인 우수 사례 결론
소프트웨어의 독립성(orthogonality)
코드 구조
요약
참고 자료
chapter 4 SOLID 원칙
단일 책임 원칙
너무 많은 책임을 가진 클래스
책임 분산
개방/폐쇄 원칙(OCP)
개방/폐쇄 원칙을 따르지 않을 경우 유지보수의 어려움
확장성을 가진 이벤트 시스템으로 리팩토링
이벤트 시스템 확장
OCP 최종 정리
리스코프 치환 원칙 (LSP)
도구를 사용해 LSP 문제 검사하기
애매한 LSP 위반 사례
LSP 최종 정리
인터페이스 분리 원칙
너무 많은 일을 하는 인터페이스
인터페이스는 작을수록 좋다.
인터페이스는 얼마나 작아야 할까?
의존성 역전
강한 의존성을 가진 예
의존성을 거꾸로
의존성 주입(Dependency injection)
요약
참고 자료
chapter 5 데코레이터를 사용한 코드 개선
파이썬의 데코레이터
함수 데코레이터
클래스 데코레이터
다른 유형의 데코레이터
고급 데코레이터
데코레이터에 인자 전달
기본값을 가진 데코레이터
코루틴(coroutine)을 위한 데코레이터
데코레이터를 위한 확장 구문
데코레이터 활용 우수 사례
함수 서명 변경
파라미터 유효성 검사
코드 추적
데코레이터의 활용 - 흔한 실수 피하기
래핑된 원본 객체의 데이터 보존
데코레이터 부작용 처리
어느 곳에서나 동작하는 데코레이터 만들기
데코레이터와 클린 코드
상속보다 컴포지션(composition)
데코레이터와 DRY 원칙
데코레이터와 관심사의 분리
좋은 데코레이터 분석
요약
참고 자료
chapter 6 디스크립터로 더 멋진 객체 만들기
디스크립터 개요
디스크립터 메커니즘
디스크립터 프로토콜의 메서드 탐색
디스크립터의 유형
비데이터(non-data) 디스크립터
데이터 디스크립터
디스크립터 실전
디스크립터를 사용한 애플리케이션
다른 형태의 디스크립터
디스크립터에 대한 추가 고려사항
디스크립터 분석
파이썬 내부에서의 디스크립터 활용
데코레이터를 디스크립터로 구현하기
디스크립터 최종 정리
디스크립터의 인터페이스
디스크립터의 객체 지향 설계
디스크립터에 대한 타입 어노테이션
요약
참고 자료
chapter 7 제너레이터, 이터레이터 및 비동기 프로그래밍
기술적 요구사항
제너레이터 만들기
제너레이터 개요
제너레이터 표현식
이상적인 반복
관용적인 반복 코드
코루틴(coroutine)
제너레이터 인터페이스의 메서드
코루틴 고급 주제
비동기 프로그래밍
비동기 매직 메서드
비동기 반복
비동기 제너레이터
요약
참고 자료
chapter 8 단위 테스트와 리팩토링
디자인 원칙과 단위 테스트
자동화된 테스트의 다른 형태
단위 테스트와 애자일 소프트웨어 개발
단위 테스트와 소프트웨어 디자인
테스트의 경계 정하기
테스트를 위한 도구
단위 테스트 프레임워크와 라이브러리
리팩토링
코드의 진화
상용 코드만 진화하는 것이 아니다
단위 테스트에 대한 추가 논의
속성 기반(Property-based) 테스트
변형(mutation) 테스트
테스트의 일반적인 주제
테스트 주도 개발(TDD) 간략 소개
요약
참고 자료
chapter 9 일반적인 디자인 패턴
파이썬에 디자인 패턴 적용 시 고려사항
실전 속의 디자인 패턴
생성(creational) 패턴
구조(structural) 패턴
행동(behavioral) 패턴
Null 객체 패턴 디자인
디자인 패턴에 대한 최종 정리
디자인에 대한 패턴의 영향성
이론으로서의 디자인 패턴
모델의 이름
요약
참고 자료
chapter 10 클린 아키텍처
클린 코드에서 클린 아키텍처로
관심사의 분리
모놀리식(monolithic) 애플리케이션과 마이크로서비스
추상화
소프트웨어 컴포넌트
패키지
도커 컨테이너
아키텍처링 예제
서비스
요약
참고 자료