상세정보
미리보기
파이썬 클린 코드
- 저자
- 마리아노 아나야 저/김창수 역
- 출판사
- 터닝포인트
- 출판일
- 2022-04-14
- 등록일
- 2022-07-26
- 파일포맷
- PDF
- 파일크기
- 9MB
- 공급사
- YES24
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
견고하면서도 확장성이 뛰어난 파이썬 코드를 만드는 비법파이썬은 누구나 쉽게 시작할 수 있는 프로그래밍 언어이다. 그러나 이 책에서 소개하는 다음 내용을 제대로 숙지하지 않고 개발을 하다보면 더 이상은 수정이 불가능한 코드를 마주하게 된다. 어디서부터 무엇이 잘못된 걸까? 이 책을 통해 파이썬의 철학을 따르는 파이썬스러운 클린 코드를 작성하는 방법에 대해 알아보자.
저자소개
파이썬으로 소프트웨어를 만들고 동료 프로그래머를 가르치는데 대부분의 시간을 보낸 소프트웨어 엔지니어이다. 파이썬 외에는 소프트웨어 아키텍처, 함수형 프로그래밍(functional programming), 분산 시스템과 컨퍼런스 발표에 관심을 가지고 있다. Euro Python 2016과 2017에서 연사로 활동했다. 저자에 대해 더 자세히 알기 원한다면 GitHub에서 rmariano 계정으로 검색할 수 있다.
발표 자료를 공유하는 http://speakerdeck.com 사이트의 사용자 이름은 rmariano이다.
목차
서문 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 컴포지션과 상속 상속이 좋은 선택인 경우 상속 안티패턴파이썬의 다중상속 함수와 메서드의 인자 파이썬의 함수 인자 동작방식 함수 인자의 개수 소프트웨어 디자인 우수 사례 결론 소프트웨어의 독립성(orthogonality) 코드 구조 요약 참고 자료 chapter 4 SOLID 원칙단일 책임 원칙 너무 많은 책임을 가진 클래스 책임 분산 개방/폐쇄 원칙 개방/폐쇄 원칙을 따르지 않을 경우 유지보수의 어려움 확장성을 가진 이벤트 시스템으로 리팩토링 이벤트 시스템 확장 OCP 최종 정리 리스코프 치환 원칙(LSP) 도구를 사용해 LSP 문제 검사하기 애매한 LSP 위반 사례 LSP 최종 정리 인터페이스 분리 원칙 너무 많은 일을 하는 인터페이스인터페이스는 작을수록 좋다. 인터페이스는 얼마나 작아야 할까? 의존성 역전 엄격한 의존의 예 의존성을 거꾸로요약 참고 자료 chapter 5 데코레이터를 사용한 코드 개선파이썬의 데코레이터 함수 데코레이터 클래스 데코레이터다른 유형의 데코레이터데코레이터에 인자 전달 데코레이터 활용 우수 사례 데코레이터의 활용 - 흔한 실수 피하기 래핑된 원본 객체의 데이터 보존데코레이터 부작용 처리 어느 곳에서나 동작하는 데코레이터 만들기 데코레이터와 DRY 원칙 데코레이터와 관심사의 분리 좋은 데코레이터 분석 요약참고 자료 chapter 6 디스크립터로 더 멋진 객체 만들기디스크립터 개요 디스크립터 메커니즘 디스크립터 프로토콜의 메서드 탐색디스크립터의 유형비데이터(non-data) 디스크립터데이터 디스크립터 디스크립터 실전디스크립터를 사용한 애플리케이션 다른 형태의 디스크립터 디스크립터에 대한 추가 고려사항 디스크립터 분석파이썬 내부에서의 디스크립터 활용 데코레이터를 디스크립터로 구현하기 요약참고 자료 chapter 7 제너레이터 사용하기기술적 요구사항 제너레이터 만들기 제너레이터 개요 제너레이터 표현식 이상적인 반복관용적인 반복 코드파이썬의 이터레이터 패턴 코루틴(coroutine) 제너레이터 인터페이스의 메서드 코루틴 고급 주제작은 코루틴에 위임하기 - yield from 구문 비동기 프로그래밍 요약참고 자료 chapter 8 단위 테스트와 리팩토링디자인 원칙과 단위 테스트 자동화된 테스트의 다른 형태 단위 테스트와 애자일 소프트웨어 개발단위 테스트와 소프트웨어 디자인 테스트의 경계 정하기 테스트를 위한 프레임워크와 도구 단위 테스트 프레임워크와 라이브러리 코드 커버리지 모의(mock) 객체 리팩토링 코드의 진화 상용 코드만 진화하는 것이 아니다. 단위 테스트에 대한 추가 논의 속성 기반 테스트변형 테스트테스트 주도 개발 간략 소개요약참고chapter 9 일반적인 디자인 패턴파이썬에 디자인 패턴 적용 시 고려사항 실전 속의 디자인 패턴 생성(creational) 패턴 구조(structural) 패턴행동(behavioral) 패턴 Null 객체 패턴 디자인 패턴에 대한 최종 정리 디자인에 대한 패턴의 영향성 모델의 이름 요약 참고 chapter 10 클린 아키텍처클린 코드에서 클린 아키텍처로 관심사의 분리 추상화 소프트웨어 컴포넌트패키지 컨테이너유스케이스코드서비스 분석 요약 참고