파이썬 클린 코드 2nd Edition

파이썬 클린 코드 2nd Edition

$28.81
저자

마리아노아나야

파이썬으로소프트웨어를만들고동료프로그래머를가르치는데대부분의시간을보낸소프트웨어엔지니어이다.파이썬외에는소프트웨어아키텍처,함수형프로그래밍(functionalprogramming),분산시스템과컨퍼런스발표에관심을가지고있다.EuroPython2016과2017에서연사로활동했다.저자에대해더자세히알기원한다면GitHub에서rmariano계정으로검색할수있다.발표자료를공유하는http://speakerdeck.com사이트의사용자이름은rmariano이다.

목차

서문
chapter1코드포매팅과도구
서론
클린코드의의미
클린코드의중요성
예외상황
클린코드에서코드포매팅의역할
프로젝트코딩스타일가이드준수
문서화(Documentation)
코드주석(codecomments)
Docstring
도구설정
데이터타입일관성검사
일반적인코드검증
자동포매팅
자동검사설정
요약
참고자료

chapter2파이썬스러운(pythonic)코드
인덱스와슬라이스
자체시퀀스생성
컨텍스트관리자(contextmanager)
컨텍스트관리자구현
컴프리헨션(comprehension)과할당표현식
프로퍼티,속성(attribute)과객체메서드의다른타입들
파이썬에서의밑줄
프로퍼티
보다간결한구문으로클래스만들기
이터러블객체
컨테이너객체
객체의동적인속성
호출형(callable)객체
매직메서드요약
파이썬에서유의할점
변경가능한(mutable)파라미터의기본값
내장(built-in)타입확장
비동기코드(asynchronouscode)에대한간략한소개
요약
참고자료

chapter3좋은코드의일반적인특징
계약에의한디자인
사전조건(precondition)
사후조건(postconditions)
파이썬스러운계약
계약에의한디자인(DbC)-결론
방어적(defensive)프로그래밍
에러핸들링
파이썬에서어설션(assertion)사용하기
관심사의분리
응집력(cohesion)과결합력(coupling)
개발지침약어
DRY/OAOO
YAGNI
KIS
EAFP/LBYL
상속
상속이좋은선택인경우
상속안티패턴
파이썬의다중상속
함수와메서드의인자
파이썬의함수인자동작방식
함수인자의개수
소프트웨어디자인우수사례결론
소프트웨어의독립성(orthogonality)
코드구조
요약
참고자료

chapter4SOLID원칙
단일책임원칙
너무많은책임을가진클래스
책임분산
개방/폐쇄원칙(OCP)
개방/폐쇄원칙을따르지않을경우유지보수의어려움
확장성을가진이벤트시스템으로리팩토링
이벤트시스템확장
OCP최종정리
리스코프치환원칙(LSP)
도구를사용해LSP문제검사하기
애매한LSP위반사례
LSP최종정리
인터페이스분리원칙
너무많은일을하는인터페이스
인터페이스는작을수록좋다.
인터페이스는얼마나작아야할까?
의존성역전
강한의존성을가진예
의존성을거꾸로
의존성주입(Dependencyinjection)
요약
참고자료

chapter5데코레이터를사용한코드개선
파이썬의데코레이터
함수데코레이터
클래스데코레이터
다른유형의데코레이터
고급데코레이터
데코레이터에인자전달
기본값을가진데코레이터
코루틴(coroutine)을위한데코레이터
데코레이터를위한확장구문
데코레이터활용우수사례
함수서명변경
파라미터유효성검사
코드추적
데코레이터의활용-흔한실수피하기
래핑된원본객체의데이터보존
데코레이터부작용처리
어느곳에서나동작하는데코레이터만들기
데코레이터와클린코드
상속보다컴포지션(composition)
데코레이터와DRY원칙
데코레이터와관심사의분리
좋은데코레이터분석
요약
참고자료

chapter6디스크립터로더멋진객체만들기
디스크립터개요
디스크립터메커니즘
디스크립터프로토콜의메서드탐색
디스크립터의유형
비데이터(non-data)디스크립터
데이터디스크립터
디스크립터실전
디스크립터를사용한애플리케이션
다른형태의디스크립터
디스크립터에대한추가고려사항
디스크립터분석
파이썬내부에서의디스크립터활용
데코레이터를디스크립터로구현하기
디스크립터최종정리
디스크립터의인터페이스
디스크립터의객체지향설계
디스크립터에대한타입어노테이션
요약
참고자료

chapter7제너레이터,이터레이터및비동기프로그래밍
기술적요구사항
제너레이터만들기
제너레이터개요
제너레이터표현식
이상적인반복
관용적인반복코드
코루틴(coroutine)
제너레이터인터페이스의메서드
코루틴고급주제
비동기프로그래밍
비동기매직메서드
비동기반복
비동기제너레이터
요약
참고자료

chapter8단위테스트와리팩토링
디자인원칙과단위테스트
자동화된테스트의다른형태
단위테스트와애자일소프트웨어개발
단위테스트와소프트웨어디자인
테스트의경계정하기
테스트를위한도구
단위테스트프레임워크와라이브러리
리팩토링
코드의진화
상용코드만진화하는것이아니다
단위테스트에대한추가논의
속성기반(Property-based)테스트
변형(mutation)테스트
테스트의일반적인주제
테스트주도개발(TDD)간략소개
요약
참고자료

chapter9일반적인디자인패턴
파이썬에디자인패턴적용시고려사항
실전속의디자인패턴
생성(creational)패턴
구조(structural)패턴
행동(behavioral)패턴
Null객체패턴디자인
디자인패턴에대한최종정리
디자인에대한패턴의영향성
이론으로서의디자인패턴
모델의이름
요약
참고자료

chapter10클린아키텍처
클린코드에서클린아키텍처로
관심사의분리
모놀리식(monolithic)애플리케이션과마이크로서비스
추상화
소프트웨어컴포넌트
패키지
도커컨테이너
아키텍처링예제
서비스
요약
참고자료

출판사 서평

유지보수가쉬운파이썬코드를만드는비결

이책은소프트웨어디자인에관심이있거나파이썬에대해보다자세히알고싶어하는모든개발실무자를대상으로하고있다.새로시작하는프로젝트또는기존시스템에좋은파이썬코딩기술을적용하여효율성을높이고비용을절약하고자하는팀리더나시니어엔지니어에게도많은도움이될것이다.

이책의구성은1장부터10장까지단계적으로어려운내용이소개되고있기때문에처음부터차례대로내용을완전히숙지하고다음장으로넘어가는것이좋다.
파이썬의기본개념과함수,유틸리티와같은내용을소개하여문제를효율적으로해결하기위한기초부터데코레이터,디스크립터나비동기프로그래밍과같은고급주제까지폭넓게다루고있다.뿐만아니라일부주제는언어내부의동작원리를분석하기때문에파이썬에대해더깊이이해하는데도움이될것이다.또한데이터처리용도로파이썬을사용하는경우에도활용할수있도록여러도구를소개하고상용환경에서사용하기위한환경설정이나모범사례도소개하고있다.

-이책에서다루는내용

1장코드포매팅과도구
파이썬에서개발환경을설정하는데필요한주요도구에대해소개한다.파이썬개발을시작하기위해알아야할기초지식뿐만아니라코드정적분석,문서화,타입검사와코드포매팅도구를사용해가독성이높은코드를작성하기위한가이드라인을제시한다.코딩표준을이해하는것은중요하지만좋은의도에만의존해서는안되기때문에이장에서는도구를효과적으로사용할수있는방법에대해서알아본다.

2장파이썬스러운코드
앞으로계속사용하게될파이썬의첫번째개념을살펴본다.파이썬의여러기능이어떻게사용되도록설계되었는지살펴본다.훨씬품질좋은파이썬스러운코드에대한근본아이디어를살펴본다.

3장좋은코드의일반적인특징
유지보수가쉬운코드작성에초점을두고소프트웨어엔지니어링의일반적인원칙을검토한다.이전장에서배운지식을활용하여일반적으로말하는깔끔한디자인이무엇인지살펴보고,그것을파이썬으로어떻게구현해야하는지살펴본다.

4장SOLID원칙
객체지향소프트웨어를위한디자인원칙에대해다룬다.이약자(SOLID)는소프트웨어공학에서사용되는용어로각각의원칙을파이썬에어떻게적용하는지살펴볼것이다.특히의존성주입을통해유지보수가쉬운코드를작성하는법에대해서배운다.

5장데코레이터를사용한코드개선
파이썬의가장훌륭한기능중하나인데코레이터를살펴본다.함수또는클래스에데코레이터를작성하는방법을이해한다음에데코레이터를코드재사용,책임분리,기능세분화에어떻게사용하는지살펴본다.또한복잡하고반복적인함수서명을데코레이터를사용해단순화하는방법을알아본다.

6장디스크립터로더멋진객체만들기
객체지향설계의수준을새로운차원으로끌어올리는파이썬의디스크립터에대해알아본다.디스크립터는프레임워크나도구개발시유용한기능인데이것을잘사용하면코드의가독성을높이고재사용성을높일수있다.개정판에서보강된내용은더높은수준에서파이썬을이해하는데도움이될것이다.

7장제너레이터,이터레이터및비동기프로그래밍
제너레이터는아마도파이썬에서가장멋진기능일것이다.반복(iteration)이라는파이썬의핵심개념을사용해새로운프로그래밍패러다임을제시한다.제너레이터와이터레이터를사용해프로그램을작성해보고이를통해알게된내용을토대로코루틴(coroutine)과비동기프로그래밍의기본에대해서알아본다.그리고비동기프로그래밍과비동기반복을위한새로운구문(그리고새로운매직메서드)을소개하는것으로마무리한다.

8장단위테스트와리팩토링
유지보수가필요한코드에대해단위테스트가얼마나중요한지에대해논의한다.이장에서는코드를수정하고유지보수하기위한전제조건으로서의리팩토링과단위테스트가얼마나중요한지살펴보고이를지원하는주요프레임워크인unittest와pytest에대해살펴본다.또한좋은테스트란테스트자체에있는것이아니라테스트가능한코드에있다는것에대해배워본다.

9장일반적인디자인패턴
문제해결의관점이아니라유지보수의관점에서어떤식으로파이썬코드를디자인하는것이좋은지검토한다.이장에서는일부디자인패턴을내장하고있는것과같은파이썬의특징을살펴보고파이썬에서디자인패턴을구현하기위한실용적인접근법을살펴본다.그리고(그리관습적이지는않지만)파이썬에특화된패턴들에대해서도알아본다.

10장클린아키텍처
클린코드는훌륭한아키텍처의기본이다.첫번째장에서부터언급된모든것들을전반적으로살펴보는것은상용배포를할때중요한역할을할것이다.