이미 소장하고 있다면 판매해 보세요.
|
1부 모든 것이 중요한 이유 1
CHAPTER 1 더 큰 그림 3 1.1 파이썬은 엔터프라이즈 언어다 5 1.2 파이썬은 교육용 언어다 6 1.3 설계는 과정이다 6 1.4 설계는 더 좋은 소프트웨어를 만든다 9 1.5 설계에 투자할 시점 12 1.6 새로운 시작 13 1.7 설계는 민주적이다 14 1.8 이 책을 어떻게 활용할 것인가? 17 2부 설계의 기초 19 CHAPTER 2 관심사 분리 21 2.1 네임스페이스 22 2.2 파이썬에서 관심사 분리의 계층구조 28 CHAPTER 3 추상화와 캡슐화 45 3.1 추상화란? 45 3.2 캡슐화 51 3.3 Try it out 53 3.4 프로그래밍 스타일 역시 추상화다?? 56 3.5 타이핑, 상속, 다형성 60 3.6 잘못된 추상화 인식하기 63 CHAPTER 4 높은 성능을 위한 설계 65 4.1 시간과 공간을 뚫고 나가기 66 4.2 성능과 데이터 타입 72 4.3 작동하게 하고, 올바르게 만들고, 빠르게 하라?? 77 4.4 도구들 82 4.5 Try it out 86 CHAPTER 5 소프트웨어 테스트하기 87 5.1 소프트웨어 테스트란? 88 5.2 기능 테스트 방법 90 5.3 사실에 대한 진술 97 5.4 unittest로 단위 테스트하기 98 5.5 pytest로 테스트하기 109 5.6 기능 테스트를 넘어서 111 5.7 테스트 주도 개발: 기본지침 113 3부 대규모 시스템에 적용하기 115 CHAPTER 6 실전! 관심사 분리 117 6.1 커맨드라인용 북마킹 애플리케이션 118 6.2 애플리케이션 둘러보기 119 6.3 관심사에 따른 초기 코드 구조 120 CHAPTER 7 확장성과 유연성 147 7.1 확장 가능한 코드란? 147 7.2 경직에 대한 해결책 154 7.3 확장 실습 160 CHAPTER 8 상속의 규칙과 예외 165 8.1 과거 프로그래밍에서의 상속 165 8.2 프로그래밍의 상속 168 8.3 파이썬의 상속 173 8.4 Bark에서의 상속과 조합 181 CHAPTER 9 경량화하기 185 9.1 클래스/함수/모듈이 얼마나 커야 할까? 185 9.2 복잡성 깨뜨리기 192 9.3 클래스 분해하기 197 CHAPTER 10 느슨한 결합 만들기 205 10.1 결합의 정의 205 10.2 결합도 인식하기 212 10.3 Bark에서의 결합 215 10.4 결합 해결하기 217 4부 다음으로는? 227 CHAPTER 11 향상과 진보 229 11.1 지금은? 229 11.2 디자인 패턴 235 11.3 분산 시스템 238 11.4 파이썬 파고들기 240 11.5 여러분이 배운 것들 242 APPENDIX A 파이썬 설치하기 245 A.1 어떤 버전의 파이썬을 사용해야 하나? 245 A.2 ‘시스템’ 파이썬 246 A.3 다른 버전의 파이썬 설치하기 246 A.4 설치 검증하기 248 찾아보기 250 |
Dane Hillard
황반석의 다른 상품
|
이 책은 프로그래밍을 이제 막 시작한 모든 사람을 위한 책이다. 소프트웨어 업계에 있지는 않지만 소프트웨어를 사용하여 작업하는 사람들 역시 이 책을 통해 많은 것을 배울 수 있다. 이 책에 담긴 개념은 유지보수가 더 쉬운 소프트웨어를 만들 수 있도록 도와줄 것이며, 더 쉽게 협업하여 소프트웨어를 개발할 수 있게 할 것이다.
---p.xvi 이번 절에서 살펴본, 어떤 문제부터 시작하여 최종 해결책을 도출할 때까지의 과정이 바로 설계 과정이다. 이 과정을 통해 이전보다, 그리고 그 이전보다 더 개선할 영역을 알 수 있게 된다. 결국, 어떤 코드를 작성하기 전에 기회와 위험을 예측하는 다이어그램을 사용하기 위하여 소프트웨어의 여러 복잡한 부분을 나타내는 고급 다이어그램을 그리기 시작하게 될 것이다. 물론, 모든 사람이 이렇게 일하는 것은 아니므로 여러분은 이 책에서 배운 내용을 최대한 활용해야 할 것이다. ---p.16 만약 여러분이 처음 프로그래밍하는 거라면 이와 같은 스타일이 친숙하게 느껴질 수 있다. 왜냐하면 이 함수가 다른 것을 호출하는 시작점이기 때문이다. 하나의 긴 프로시저에서 몇 가지 함수를 호출하는 다른 프로시저로 이동하는 흐름이 자연스럽게 느껴질 수 있도록, 이 스타일을 먼저 배우는 게 좋다. 절차적 프로그래밍은 함수에 중점을 두기 때문에 절차적 프로그래밍의 장점은 3.1.4절에서 설명한 것과 중복된다. ---p.57 수동 테스트와는 반대로, 자동화된 테스트(automated testing)는 금요일부터 긴 주말을 보내려 할 때 테스트할 것을 빠뜨릴 걱정 없이 원하는 만큼 여러 번 실행할 수 있는 테스트를 작성할 수 있게 한다. 이 가상의 상황이 실제처럼 느껴질 수 있다. 왜냐하면 이것은 그저 가상의 이야기가 아닌 실제로 일어나는 일이기 때문이다. ---p.90 데이터베이스에서 북마크를 가져오기 위해 DatabaseManager.select 메서드를 사용하고 싶을 것이다. SQLite는 디폴트 생성 순서로(즉, 테이블의 기본키로) 레코드를 정렬하지만, 날짜나 제목으로 정렬하는 것도 유용할 것이다. Bark에서는 북마크를 추가할 때 북마크의 아이디와 날짜가 모두 증가하기 때문에 무엇으로 정렬해도 동일한 결과가 나오지만, 관심을 두는 칼럼으로 정렬되도록 명시적으로 하는 게 좋은 습관이다. ---p.136 클래스, 메서드, 함수의 크기에 대해 조금 더 개방된 측정 방법은 그것이 얼마나 다양한 작업을 하는가다. 관심사 분리를 배운 것처럼, 이상적인 작업 개수는 하나다. 함수와 메서드의 경우, 하나의 계산 또는 작업을 수행함을 의미한다. 클래스에서는 여러 가지 큰 비즈니스 문제 중 하나의 집중된 측면만 다룬다는 의미다. ---p.187 |
|
자신의 작업을 개선하고자 하는 모든 프로그래머를 위하여!
전문가 수준의 코드는 버그 없이 실행되는 것 이상을 의미한다. 코드가 깔끔해야 하며, 가독성이 좋아야 하고, 유지보수하기 쉬워야 한다. 실력 있는 파이썬 프로그래머에서 전문 개발자로 발돋움하기 위해서는 코딩 스타일과 애플리케이션 설계, 그리고 개발 프로세스에 대한 업계 표준을 배워야 한다. 이 책이 필요한 이유가 바로 이것이다. 『프로그래머를 위한 파이썬』은 이해할 수 있으며, 유지보수가 가능하며, 확장 가능한 전문가 수준의 소프트웨어를 설계하고 작성하는 방법을 설명한다. 데인 힐라드는 프로그래밍 전문가가 되기 위해서 무엇이 필요한지 잘 알고 있으며, 유용한 예제와 연습 문제를 통해 코드를 모듈화하는 것과 복잡도를 줄여 품질을 향상시키는 시점과 이유 그리고 그 방법을 알려준다. 이러한 핵심 원칙을 배운다면 여러분의 코드는 읽기 쉽고, 관리하기 쉬우며, 재사용하기 좋게 변모할 것이다. 이 책의 주요 내용 - 대규모의 파이썬 프로젝트 구성 - 적절한 수준의 추상화 - 깔끔하고 재사용 가능한 코드 작성 - 상속과 조합 - 테스트와 성능에 대한 고려 사항 이 책의 대상 독자 이 책은 파이썬의 기초 또는 다른 객체지향 언어에 익숙한 모든 프로그래머를 대상으로 한다. 추천사 “모든 언어에 적용할 수 있는 일반적인 소프트웨어 아키텍처와 진실에 대한 풍부한 정보!” - David T. Kerns, Rincon Research Corporation “이 책을 읽고 전문가처럼 파이썬 코드를 작성하자.” - Davide Cadamuro, BMW Group “가독성을 높이고 확장하기 쉬운 소프트웨어를 설계하는 방법에 대한 훌륭한 내용을 담은 따라하기 쉬운 책!” - Mike Stevens, Silver Hammer Associates “이 책은 파이썬 개발자를 전문가가 되도록 안내할 것이다.” - Joseph Perenia, Sony Interactive Entertainment |