商品描述
The best way to learn design in any field is to study examples, and some of the best examples of software design come from the tools programmers use in their own work. Software Design by Example: A Tool-Based Introduction with Python therefore builds small versions of the things programmers use in order to demystify them and give some insights into how experienced programmers think. From a file backup system and a testing framework to a regular expression matcher, a browser layout engine, and a very small compiler, we explore common design patterns, show how making code easier to test also makes it easier to reuse, and help readers understand how debuggers, profilers, package managers, and version control systems work so that they can use them more effectively.
This material can be used for self-paced study, in an undergraduate course on software design, or as the core of an intensive weeklong workshop for working programmers. Each chapter has a set of exercises ranging in size and difficulty from half a dozen lines to a full day's work. Readers should be familiar with the basics of modern Python, but the more advanced features of the language are explained and illustrated as they are introduced.
All the written material in this project can be freely reused under the terms of the Creative Commons - Attribution license, while all of the software is made available under the terms of the Hippocratic License. All proceeds from sale of this book will go to support the Red Door Family Shelter in Toronto.
Features:
- Teaches software design by showing programmers how to build the tools they use
every day
- Each chapter includes exercises to help readers check and deepen their understanding
- All the example code can be downloaded, re-used, and modified under an open license
商品描述(中文翻譯)
學習任何領域設計的最佳方式是研究範例,而一些最佳的軟體設計範例來自程式設計師在自己工作中使用的工具。因此,《以範例學習軟體設計:基於工具的 Python 入門》構建了程式設計師使用的小型工具,以揭開它們的神秘面紗,並提供一些對經驗豐富的程式設計師思考方式的見解。從檔案備份系統和測試框架到正則表達式匹配器、瀏覽器佈局引擎和一個非常小的編譯器,我們探索常見的設計模式,展示如何使程式碼更易於測試也使其更易於重用,並幫助讀者理解除錯器、性能分析器、套件管理器和版本控制系統的運作方式,以便他們能更有效地使用這些工具。
這些材料可以用於自學、作為本科軟體設計課程的一部分,或作為針對在職程式設計師的為期一週的密集工作坊的核心內容。每一章都有一組練習,大小和難度從幾行到一天的工作不等。讀者應該熟悉現代 Python 的基本知識,但語言的更高級特性會在介紹時進行解釋和說明。
本專案中的所有書面材料均可根據創用CC - 姓名標示授權條款自由重用,而所有軟體則根據希波克拉底授權條款提供。這本書的所有銷售收益將用於支持多倫多的紅門家庭庇護所。
特色:
- 通過展示程式設計師如何構建他們每天使用的工具來教授軟體設計
- 每一章都包括練習,幫助讀者檢查和加深理解
- 所有範例程式碼均可在開放授權下下載、重用和修改
作者簡介
Dr. Greg Wilson is a programmer, author, and educator based in Toronto. He co-founded and was the first Executive Director of Software Carpentry, which has taught basic software skills to tens of thousands of researchers worldwide, and has authored or edited over a dozen books (including two for children). Greg is a member of the Python Software Foundation and a recipient of ACM SIGSOFT's Influential Educator of the Year award.
作者簡介(中文翻譯)
格雷格·威爾森博士是一位位於多倫多的程式設計師、作家和教育者。他共同創立了 Software Carpentry 並擔任首任執行董事,該機構已向全球數萬名研究人員教授基本的軟體技能。他撰寫或編輯了十多本書籍(包括兩本兒童書籍)。格雷格是 Python Software Foundation 的成員,也是 ACM SIGSOFT 年度影響力教育者獎的獲得者。