파이썬 클린 코드 마리아노 아나야 pdf 다운로드를 무료로 제공합니다 최근 파이썬은 소프트웨어 개발, 시스템 관리 및 데이터 처리와 같은 다양한 분야에서 매우 널리 사용되고 있다. 그렇지만 클린하지 않은 코드로 인해 가독성이 낮고
관련 교재 pdf 모음
책 소개
테스트가 용이하지 않은 상황이 자주 발생하고 있으며, 숙련된 개발자라면 이러한 문제를 발견하고 해결할 수 있어야 한다. 이번 개정판에서는 파이썬 3.9 버전의 새로운 기능에 맞춰 코드와 내용을 업데이트하였으며, 기존 코드의 문제점을 개선하고 프로젝트를 성공적으로 관리하는 데 필요한 모든 도구를 제공하고 있다 이 책은 클린코드의 기본 요소가 무엇인지 설명하고 파이썬에서 어떻게 중요한 역할을 하게 되는지 살펴본다. 또한 파이썬 표준 라이브러리와 다른 모범 사례를 통해 효율적이고 가독성이 높은 코드를 어떻게 작성할 수 있는지 살펴본다. 그리고 파이썬에서 객체지향 프로그래밍은 어떻게 구현되는지, 디스크립터와 제너레이터는 무엇인지에 대해 자세히 설명한다. 또한 테스트 작성 시 주의해야 할 디자인 원칙과 일반적인 문제를 해결하기 위해 디자인 패턴을 사용하는 방법에 대해서 안내한다. 마지막 장에서는 모놀리식(monolithic) 단일 애플리케이션을 견고한 플랫폼의 기본 요소로 사용될 마이크로서비스(microservice)로 분리해본다.
파이썬 클린 코드 마리아노 아나야
서문
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) 애플리케이션과 마이크로서비스
추상화
소프트웨어 컴포넌트
패키지
도커 컨테이너
아키텍처링 예제
서비스
요약
참고 자료