適讀人群。篜ython開發(fā)人員以及任何對Python編程感興趣的讀者●本書按照構(gòu)建一個(gè)真實(shí)軟件的順序,通過一個(gè)貫穿全書的示例,解釋其他教程中一般不會講解的各種Python語言特性:從利用入口點(diǎn)讓可重用的控制臺腳本成為微服務(wù),一直到高效使用asyncio整理來自多個(gè)數(shù)據(jù)源的數(shù)據(jù)。在此過程中,本書將介紹基于類型提示的linting、低開銷的測試,以及其他自動(dòng)執(zhí)行的質(zhì)量檢查,以演示真實(shí)的開發(fā)過程! 裢ㄟ^閱讀本書,你將了解以下內(nèi)容: Python異步編程。插件架構(gòu)。如何使用類型注解。Python相關(guān)測試技術(shù)。打包和依賴項(xiàng)管理! 窬唧w而言: 第1章和第2章介紹開發(fā)環(huán)境和相關(guān)的工具; 第3~6章涵蓋代碼打包和依賴項(xiàng)分發(fā)、插件架構(gòu)、接口、聚合服務(wù)器等實(shí)用內(nèi)容; 第7章與第8章討論線程和異步編程相關(guān)內(nèi)容,以及一些高級主題; 第9~12章涉及可視化、調(diào)優(yōu)、錯(cuò)誤處理以及數(shù)據(jù)分析相關(guān)主題! 癖緯峁┦纠a下載,讀者可訪問本書GitHub頁面https://github.com/MatthewWilkes/advanced-python-development.git,簽出Git存儲庫并按照本書內(nèi)容一步步學(xué)習(xí)。 ●在介紹Python的一些強(qiáng)大特性時(shí),人們常常編造一些示例,以孤立的示例解釋各種特性。通過設(shè)計(jì)并構(gòu)建真實(shí)的應(yīng)用程序,從設(shè)計(jì)原型一直演示到開發(fā)出符合生產(chǎn)質(zhì)量要求的應(yīng)用程序,整個(gè)過程不只讓你了解各種特性如何工作,還會讓你看到它們?nèi)绾巫鳛楦蟮南到y(tǒng)設(shè)計(jì)過程的組成部分集成起來。另外,本書還會提供一些有用的注意項(xiàng),并推薦一些庫,這些內(nèi)容是Python大會問答環(huán)節(jié)的主要關(guān)注點(diǎn)。本書還會討論現(xiàn)代Python開發(fā)的*佳實(shí)踐和技術(shù),幫助你編寫清晰的、易于維護(hù)的代碼。 ●本書針對的是已經(jīng)能夠使用Python編寫簡單程序但想要理解什么時(shí)候適合使用高級特性的開發(fā)人員,讓他們能夠自如地使用這些高級特性。想要提升自身Python編程水平以及已經(jīng)具有豐富的經(jīng)驗(yàn)但希望了解新版本Python特性的開發(fā)人員,都特別適合閱讀本書! 颈緯鴥(nèi)容】 本書精心挑選了主題,旨在介紹Python編程的各個(gè)不同方面。Python社區(qū)作為一個(gè)整體沒有充分理解或者利用這些方面,而且在指導(dǎo)新人時(shí),不會把它們理所當(dāng)然地教給新人。這并不是說這些特性一定很復(fù)雜,或者很難理解(當(dāng)然有些特性確實(shí)如此),我相信,所有程序員都應(yīng)該熟悉這些特性,即使他們并不會用到這些特性! 竦1章將介紹使用Python編寫簡單程序的不同方式,還會介紹Jupyter記事本以及Python調(diào)試器的用法。雖然這兩者都是相對來說為人熟知的工具,但很多人只熟悉其中的一個(gè)工具,而不是兩者都能夠熟練使用。本章還會介紹編寫命令行接口的不同方式,以及一些有用的第三方庫,它們支持簡潔的命令行工具開發(fā)! 竦2章將介紹幫助識別代碼中的錯(cuò)誤的工具,例如自動(dòng)測試和linting工具。無論是編寫大型代碼庫、很少需要編輯的代碼庫,還是要吸收第三方貢獻(xiàn)的代碼庫,這些工具都能夠讓你更容易地寫出讓自己有信心的代碼。這里介紹的工具都是我推薦的工具,但是,本章的關(guān)注點(diǎn)是理解它們的優(yōu)缺點(diǎn)。你可能已經(jīng)使用過其中的一個(gè)或多個(gè)工具,并且對于是否適合使用它們有自己的觀點(diǎn)。本章將幫助你理解權(quán)衡點(diǎn),從而做出明智的決定! 竦3章將介紹Python中的代碼打包和依賴項(xiàng)分發(fā)。對于編寫可分發(fā)給其他人的應(yīng)用程序,以及設(shè)計(jì)能夠可靠工作的部署系統(tǒng)來說,這些都是重要的功能。我們將使用這些功能,把獨(dú)立的腳本轉(zhuǎn)換為可安裝的應(yīng)用程序! 竦4章將介紹插件架構(gòu)。這是一種強(qiáng)大的功能。經(jīng)?梢钥吹綄W(xué)習(xí)插件架構(gòu)的人使用它,這導(dǎo)致講解Python的人們對于是否講解插件架構(gòu)持謹(jǐn)慎態(tài)度。對于我們的示例,插件架構(gòu)十分適用。本章還將介紹一些用于命令行工具的高級技術(shù),它們能夠讓調(diào)試基于插件的系統(tǒng)變得更加容易! 竦5章將介紹Web接口和編寫復(fù)雜函數(shù)的技術(shù),如裝飾器和閉包。這些技術(shù)在Python中已經(jīng)是習(xí)語,但在其他許多編程語言中很難表達(dá)。本章還將介紹如何恰當(dāng)?shù)厥褂贸橄蠡悺H藗兂32唤ㄗh使用抽象基類,因?yàn)閷W(xué)習(xí)抽象基類的人傾向于到處使用它們。在特定場景中,有節(jié)制地使用抽象基類是有優(yōu)勢的,當(dāng)把抽象基類與第2章介紹的一些工具結(jié)合使用時(shí)更是如此。 ●第6章將用另一個(gè)重要組件擴(kuò)展我們的示例,這個(gè)組件就是收集數(shù)據(jù)的聚合服務(wù)器。本章還將演示Python程序員會用到的一些*重要的第三方庫,例如requests庫! 竦7章將介紹Python中的線程和異步編程。線程常常會導(dǎo)致難以探查的bug。異步代碼能夠用于類似的任務(wù),但許多Python程序員還沒有使用過這種習(xí)語,因?yàn)槭褂卯惒骄幊虝r(shí),程序的行為與同步編程有很大區(qū)別。本章重點(diǎn)討論在真實(shí)場景中如何使用并發(fā)來實(shí)現(xiàn)某個(gè)結(jié)果,而不只是演示一個(gè)簡單的示例,或者演示異步編程的局限性。本章旨在得到能夠在真實(shí)場景中使用的代碼,并讓你徹底理解權(quán)衡點(diǎn),而不是進(jìn)行獨(dú)立的技術(shù)演示! 竦8章將更加深入地介紹異步編程,講解異步代碼的測試以及一些第三方庫。使用這些庫能夠編寫在異步上下文中處理外部工具(如數(shù)據(jù)庫)的代碼。本章還將簡要地介紹一些可以用來編寫出色API的高級技術(shù),例如上下文管理器和上下文變量,它們對于異步編程很有幫助! 竦9章返回Jupyter,使用它的一些功能來實(shí)現(xiàn)數(shù)據(jù)可視化和方便的用戶交互。我們將介紹如何在Jupyter記事本中把異步代碼用于小部件,還將介紹迭代器的高級用法和實(shí)現(xiàn)復(fù)雜數(shù)據(jù)類型的多種方式! 竦10章將詳細(xì)介紹如何讓Python代碼運(yùn)行得更快,如何使用不同類型的緩存,以及這些緩存適用的場景。本章還將介紹如何對應(yīng)用程序中的各個(gè)Python函數(shù)進(jìn)行基準(zhǔn)測試,以及如何解讀結(jié)果以找出速度緩慢的原因! 竦11章將擴(kuò)展本書前面介紹過的一些概念,以更加優(yōu)雅地處理錯(cuò)誤。我們將介紹如何修改插件架構(gòu),以便無縫地處理錯(cuò)誤,同時(shí)保留完整的向后兼容性,還將深入介紹如何設(shè)計(jì)在遇到錯(cuò)誤時(shí)就處理錯(cuò)誤的過程! 竦12章將使用Python的迭代器和協(xié)程來增強(qiáng)我們開發(fā)的儀表板,為它們添加一些功能,這些功能不是實(shí)現(xiàn)被動(dòng)的數(shù)據(jù)收集,而是主動(dòng)檢查收集到的數(shù)據(jù),從而允許我們構(gòu)建包含多個(gè)步驟的分析流。
|