亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

程序員學Python編程或許不知的十大提升工具

系統 1716 0

640?wx_fmt=gif

程序員學Python編程或許不知的十大提升工具_第1張圖片 與其他大多數編程語言一樣,Python擁有強大的第三方支持,它們提供了各種各樣的工具。 這些工具在創建應用程序的過程中能夠大大增強Python的功能。 調試器是一種工具,因為它是一種實用程序,而庫不是,庫是用來創建更好的應用程序的。

即使我們把工具和非工具(比如庫)區分開,也不能讓工具的數量明顯減少。 Python有大量常規工具和特殊工具的支持,這些工具被分成以下13類:

  • 自動化重構工具;

  • Bug跟蹤工具;

  • 配置和構建工具;

  • 部署工具;

  • 文檔工具;

  • 集成開發環境;

  • Python調試器;

  • Python編輯器;

  • Python Shell;

  • Skeleton Builder工具;

  • 測試軟件;

  • 有用模塊;

  • 版本控制。

值得注意的是,Python DevelopmentTools頁面上的列表是不完整的。 除此之外,你還可以在其他一些網頁中看到大量的Python工具。

今天異步君挑選了幾個需要特別關注的工具進行講解。 如果你對Python工具的內容感興趣,你可以自己去網上查找一些其他工具學習一番。 你可能會發現,有些自己想創建的工具其實早就有了,而且不止一種。


640?wx_fmt=png

使用Roundup Issue Tracker跟蹤Bug


現在有很多bug跟蹤站點可供我們使用,比如: Github、Google Code、BitBucket、Launchpad。 不過,這些公共站點用起來通常都沒有你自己定制的本地化Bug跟蹤軟件那樣方便。 你可以在本地機器上選用多種跟蹤系統,但是Roundup Issue跟蹤器是其中更好的一個。 Roundup可以運行在所有支持Python的平臺下,提供了如下基本功能:

  • Bug跟蹤;

  • 管理TODO列表。

如果你愿意在安裝上多下點功夫,你就可以獲得更多的功能,這些額外功能體現的正是Roundup和其他產品不同的地方。 但是,要獲取這些功能,你可能需要安裝其他產品,比如數據庫管理系統(DBMS)。 Roundup的產品說明中指出了你要安裝什么以及它和哪些第三方產品是兼容的。 安裝完成后,你會獲得如下這些功能。

  • 客戶支持,包含如下:

  • 電話應答向導;

  • 網絡鏈接;

  • 系統和開發問題跟蹤工具。

  • 互聯網工程任務組(Internet Engineering Task Force,IETF)的問題管理。

  • 銷售趨勢跟蹤。

  • 會議論文投稿。

  • 雙盲評審管理。

  • 博客(目前還很簡陋,以后會變得很強大)。


640?wx_fmt=png

使用VirtualEnv創建虛擬環境


創建虛擬環境的理由很多,但主要原因還是為了創造一個安全、已知的測試環境。 每次都使用相同的測試環境,這樣可以保證應用程序擁有穩定的測試環境,直到你在類似產品的環境中完成足夠的測試。 VirtualEnv為我們提供了創建虛擬Python環境的方法,你可以使用它進行早期測試,或者診斷由環境原因引發的問題。 請務必記住,你最少需要做3個標準級別的測試。

  • Bug: 檢查程序中的錯誤。

  • 性能: 驗證程序是否滿足運行速度、可靠性、安全性方面的要求。

  • 可用性: 驗證程序是否符合用戶需求,是否能夠按照用戶期望的方式響應用戶輸入。

根據大多數Python應用程序的使用方式,Python應用程序在實際工作環境中通常不需要運行在虛擬環境下。 大多數Python應用程序都需要訪問外部環境,但虛擬環境會阻止這種外部訪問行為。

永遠不要在生產服務器上測試程序

一些開發人員常犯的一個錯誤是在生產服務器上測試尚未發布的程序,這使得用戶可以很容易地訪問到它。 永遠不要在生產服務器上測試你的程序,原因有很多,其中最重要的一個是這樣做會導致數據丟失。 如果允許用戶訪問尚未正式發布的程序,而這個程序又包含可能會損壞數據庫或其他數據源的Bug,這樣就有可能造成數據的永久丟失或損壞。

你還要注意,你只有一次贏得別人好感的機會。 許多軟件項目的失敗是因為用戶最終拋棄了它。 即便應用程序是完整的,但是沒有人會使用它,因為用戶認為應用程序在某些方面存在缺陷。 用戶心中只有一個目標,那就是盡快完成工作,然后回家。 當用戶發現某個程序在浪費他們的時間時,他們就不會再使用它了。

此外,未發布的應用程序有可能存在安全漏洞,心懷惡意的人可能利用這些漏洞非法訪問你的網絡。 如果你的門是開著的,任何人都能進來,那不管你的安全軟件有多棒都沒什么用。 當他們進來之后,你再想擺脫他們幾乎是不可能的,即使你真的擺脫了他們,但這時對數據的損害已經發生了。 從安全漏洞恢復是很難的,有時甚至是不可能的。 簡而言之,永遠不要在生產服務器上測試你的應用程序,這樣做的成本太高了。


640?wx_fmt=png

使用PyInstaller安裝你的應用程序


一般,用戶都不希望在應用程序安裝上花費太多時間,不管這個程序最終會給他們帶去多大的幫助都是如此。 即使你可以讓用戶去嘗試安裝程序,但不太懂計算機的用戶也有可能會安裝失敗。 簡而言之,你需要有一種萬無一失的方法,幫助用戶把程序順利地安裝到自己的計算機中。 PyInstaller 可以幫你做到這一點,它會為你的應用程序生成了一個安裝包,用戶使用這個安裝包就可以很容易地把程序安裝到自己的系統中。

幸運的是,PyInstaller可以在所有支持Python的平臺上工作,所以你只需要一個工具就可以滿足所有安裝需求。 另外,必要時,你還可以獲得特定平臺的支持。 例如,在Windows平臺下,你可以創建有代碼簽名的可執行文件。 Mac開發人員很喜歡PyInstaller為bundle提供了支持。 大多數情況下,盡量避免使用特定于平臺的特性,除非你真的需要它們。 當你使用了特定于某個平臺的特性時,安裝只能在這個平臺上才能成功。

不要使用孤立的工具

網絡上有一些Python工具是孤立的,其開發者已不再支持它們。 但有些開發人員仍然在使用這些工具,因為他們喜歡這些工具所支持的特性或工作方式。 但是,這樣做是有風險的,因為你不能確定這個工具是否能和最新版本的Python協同工作。 選擇工具時,要盡量選擇那些受生產廠商完全支持的工具。

如果你必須使用孤立的工具(例如做某個工作時只有孤立的工具可用),那請你確保所用的工具仍然有良好的社區支持。 或許工具的生產商已經不再存在了,但至少在你需要支持時,有社區為你提供有用的信息。 請注意,使用那些不受支持的工具可能會浪費你大量的時間,因為它們可能無法正常工作了。 |

我們在網上找到的許多安裝工具都是特定于某個平臺的。 例如,當你尋找一款用于創建可執行文件的安裝工具時,你需要注意這個工具創建出的可執行文件是不是特定于某個平臺的(至少在你指定的平臺上可以運行)。 重要的是,你選用的安裝工具在任何地方都能正常工作,這樣就不會創建出用戶無法使用的安裝包。 如果安裝包有問題,那不管你選用什么樣的跨平臺語言都無濟于事。


640?wx_fmt=png

使用pdoc創建開發人員文檔


與應用程序有關的文檔有兩種: 用戶文檔和開發人員文檔。 用戶文檔介紹如何使用應用程序,而開發人員文檔則描述應用程序如何工作。 庫只需要一種文檔,即開發者文檔,而桌面應用程序則只需要用戶文檔。 但是,服務可能同時需要這兩種文檔,這取決于用戶是誰以及服務如何組合在一起。 大多數文檔可能都會影響到開發人員,而pdoc是一個創建它的簡單解決方案。

pdoc實用工具使用你插入到代碼中的文檔字符串和注釋來創建文檔,其輸出是文本文件或HTML文檔。 你還可以讓pdoc以Web服務器的方式運行,這樣人們可以直接在瀏覽器中查看文檔。 pdoc實際是epydoc的替代品,現在epydoc的發起人已經不再支持epydoc了。

什么是文檔字符串?

文檔字符串是一種特殊注釋,使用三重引號括起,如下所示:

"""This is a docstring."""

你可以把文檔字符串和一個對象關聯起來,例如包、函數、類和方法。 在Python中,你創建的任何代碼對象都可以有一個文檔字符串。 文檔字符串的目的是描述對象,因此要使用描述性的語句。

查看文檔字符串最簡單的方法是在對象名稱之后使用doc()方法。 比如,鍵入print(MyClass.doc())將顯示MyClass的文檔字符串。 此外,你還可以使用幫助(比如help(MyClass))來訪問文檔字符串。 好的文檔字符串用來指出對象做什么,而非如何去做。

此外,第三方實用工具也可以使用文檔字符串。 借助于合適的實用工具,你可以為整個庫編寫文檔,而不必親自動手編寫。 你使用的實用工具會通過庫中的文檔字符串來創建文檔。 如此看來,即使文檔字符串和注釋有著不同的用途,但它們在Python代碼中同樣重要。


640?wx_fmt=png

使用Komodo Edit編寫程序代碼


選擇IDE時,主要看開發者的需求、技能水平以及要創建的應用程序類型。 具體到某類應用程序的開發,有些IDE的確要比其他的好用。 對開發新手來說,最好用的IDE當數Komodo Edit。 你可以免費下載這個IDE,它包含了豐富的特性,讓你獲得比使用IDLE更好的編碼體驗。 下面是Komodo Edit提供的一些功能:

  • 支持多種編程語言;

  • 關鍵字自動補全;

  • 縮進檢查;

  • 項目支持,自動生成部分程序代碼;

  • 良好支持。

但是,Komodo Edit和其他IDE有個明顯的不同,那就是它提供了一個升級路徑。 當你發現Komodo Edit無法再滿足你的需求時,你可以升級到Komodo IDE,Komodo IDE包含對許多專業級特性的支持,比如代碼分析(檢查應用程序速度的功能)和數據庫瀏覽器(讓數據庫更易用)。


640?wx_fmt=png

使用pydbgr調試程序


高端IDE(如Komodo IDE)都會帶有完整的調試器,就連Komodo Edit也帶有一個簡單的調試器。 但是,如果你選用的是體量更小、價格更便宜、功能更少的IDE,那你可能根本就看不到有調試器存在。 調試器可以幫你找出程序中的錯誤并修復它們。 調試器越好,查找和修復錯誤所需要的工作量就越少。 如果你使用的代碼編輯器不帶調試器,那你一定要找個外部調試器使用,比如pydbgr。

一款好的調試器包含許多標準特性,比如代碼著色(使用顏色來表示關鍵字之類的內容)。 除此之外,不同調試器各自還有一些非標準特性,這使它們彼此不同。 下面是pydbgr的一些標準和非標準特性,如果你用的代碼編輯器沒有附帶調試器,pydbgr會是一個不錯的選擇。

  • 智能求值: 求值命令幫助我們了解執行某行代碼時會發生什么,當然指的是這行代碼在程序中實際運行之前。 它有助于我們進行假設分析,用以了解程序中有哪些地方可能會出現問題。

  • 跨進程調試: 一般來說,我們只能調試駐留在同一臺機器上的應用程序。 實際上,調試器是應用程序進程的一部分,這意味著調試器本身可能會妨礙到調試過程。 為此,我們可以使用跨進程調試,這樣調試器就不會影響到應用程序,你甚至可以不必在與調試器相同的機器上運行應用程序。

  • 全面字節碼檢查: 有時,查看代碼轉換為字節代碼(Python解釋器真正理解的代碼)的過程有助于我們解決棘手的問題。

  • 事件過濾和跟蹤: 當你的程序在調試器中運行時,它會產生一些事件,這些事件可以幫助調試器了解發生了什么。 比如,移動到下一行代碼會產生一個事件,從函數調用返回會產生另一個事件,等等。 借助這個功能,我們可以控制調試器如何跟蹤應用程序以及對哪些事件做出反應。


640?wx_fmt=png

使用IPython進入交互環境


Python Shell可以很好地應用在許多交互任務中。 但是,如果你使用過它,你可能已經發現它有一些缺陷。 其中,最大的缺陷是Python Shell是純文本環境,你必須在其中鍵入命令來執行給定的任務。 更高級一點的Shell,比如IPython,支持GUI界面,這使交互環境更友好,這樣你就不必記憶各種古怪的命令了。

其實,IPython不僅僅是一個簡單的Shell。 它提供了一個環境,你可以在這個環境中以新的方式和Python進行交互,例如以圖形方式顯示你使用Python創建的公式的結果。 此外,IPython還是一個容納其他語言的前端。 IPython應用程序向后臺的真正的Shell發送命令,因此你可以使用其他語言的Shell,比如Julia和Haskell。 (即使你從未聽說過這些語言,也不必擔心。

IPython最令人興奮的特性之一是它能夠在并行計算環境下工作。 一般Shell都是單線程的,這意味著什么并行計算都做不了,你甚至不能創建多線程環境。 僅憑這個特性,IPython就值得你試一試。


640?wx_fmt=png

使用PyUnit測試Python應用程序


某些時候,你需要測試一下自己的應用程序,以確保它們按照預期工作。 測試時,你可以通過一次輸入一個命令并驗證結果來進行測試,或者將這個過程自動化。 顯然,自動化這個方法會更好,因為你可不想把所有時間都花在測試上,連回家吃飯的時間都沒有了,而且手工測試非常非常慢(尤其是當你犯了錯誤時,這種情況肯定會發生)。 PyUnit等工具極大地簡化了單元測試(對單個特性進行的測試)過程。

PyUnit的優點是允許你創建真實的Python代碼來執行測試。 簡單地說,你編寫的腳本是另一個專門的程序,用于測試主應用程序是否有問題。

或許你會覺得腳本(非你專門編寫的應用程序)中可能會有很多Bug。 其實,測試腳本一般都設計得非常簡單,這會大大減少腳本中的錯誤,并讓腳本中的錯誤很容易被發現。 即便如此,錯誤有時還是會出現。 因此,當你無法找到應用程序中的問題時,你就的確需要檢查一下腳本了。


640?wx_fmt=png

使用Isort整理代碼


整理代碼看上去像是一件很小的事,但是如果你不注意這一點,你的代碼很可能會變得亂糟糟的,尤其是當你沒有把所有import語句按照字母順序放到文件頂部時,代碼看起來會更亂。 在某些情況下,如果你的代碼不夠整潔,你就很難(并非不可能)弄清楚它到底怎么了。 Isort實用程序只對import語句進行排序,并確保它們全部位于源代碼文件的頂部,這看上去微不足道,但對你理解和修改源代碼有很大的幫助。

有時只要了解某個特定模塊需要哪些模塊,就可以幫助我們快速找出潛在的問題。 例如,你的系統中安裝了某個老版本的模塊,那了解應用程序都需要哪些模塊就可以使查找那個模塊的過程變得更容易。

此外,在把應用程序分發給用戶時,了解應用程序需要哪些模塊也很重要。 只有用戶的系統中安裝了程序所需要的模塊,才能確保程序按照預期運行。


640?wx_fmt=png

使用Mercurial進行版本控制


你在學習本書的過程中創建的那些應用程序其實都不復雜。 事實上,在你讀完這本書并轉向更高級的學習之后,你都不太可能需要版本控制。 不過,當你進入一個有組織的開發環境中工作、實際開發滿足用戶需求的應用程序時,版本控制就變得非常重要。 簡單地說,版本控制就是跟蹤發布到實際生產環境中的不同程序版本,并記錄不同程序版本之間發生的變化。 當你說你在使用MyApp 1.2時,你指的是MyApp應用程序的1.2版。 為程序打版本標識很有意義,當程序修改了缺陷或進行了改進之后,版本標識能夠讓人們知道自己使用的是哪一個版本。

Python版本控制工具有很多種,其中比較有趣的工具是Mercurial。 對于幾乎所有可運行Python的平臺,Mercurial都提供了相應版本,這樣在更換平臺時你就不必再擔心無法使用Mercurial了。 (對于你使用的平臺,如果Mercurial沒有提供相應的可執行文件,你可以從官方站點下載Mercurial源代碼自己構建一個。

與其他產品不同,Mercurial是免費的。 即便你打算以后改用其他更高級的產品,你也可以從使用Mercurial管理一個或兩個項目的過程中獲得有用的經驗。

源代碼管理(SCM)是指把應用程序的各個版本存儲在不同的地方,以便根據需要撤消或重做對源代碼所做的修改。 對許多人來說,源代碼管理似乎是一項艱巨的任務。 Mercurial環境相當友好,你可以在其中學習SCM。 當你需要返回到程序的舊版本或修復新版本中出現的問題時,應用程序各個版本的源代碼必須可用才行。

Mercurial最棒的地方在于它有一個很好的在線教程。 學習SCM最好的方法是在你自己的機器上一步步地跟學,哪怕只是翻一翻這些材料也是很有用的。 教程的第一部分是關于如何安裝Mercurial的。 然后,教程講解如何創建存儲庫(存儲應用程序各個版本的地方),并在創建應用程序代碼時使用存儲庫。 學完這個教程之后,你會對源代碼控制的原理以及為什么版本控制是應用程序開發的一個重要部分有很好的了解。

本文摘自《從零開始學Python 第2版》


程序員學Python編程或許不知的十大提升工具_第2張圖片

《從零開始學Python 第2版》


掃碼查看詳情


程序員學Python編程或許不知的十大提升工具_第3張圖片


推薦理由:

?本書面向 Python初學者,幫助讀者快速、有效地把握 Python編程的技巧。全書共分 5個部分,由淺入深地向讀者呈現了 Python必學的各大知識要點。無論是簡單的 Python安裝,還是基本的編程語法,抑或是典型的問題處理,本書都給出了詳細、直觀的編程示例,以便讀者能夠精準把握要點。?

掃碼或者點擊閱讀原文購買

程序員學Python編程或許不知的十大提升工具_第4張圖片

添加下方微信號可領券

領券更便宜 哦~

640?wx_fmt=gif

碼書商店是CSDN專為我們的用戶建立的一個商店,這里提供大量的技術書籍,除了書籍我們也提供生活類的相關產品,如耳機、鍵盤等,或者你們如果有需求也可以聯系碼書商店的客服或者在公眾號下留言你們需要的產品,我們盡量滿足大家需求哦。

作為碼書商店的運營人員,誠邀你們進入我們的“ CSDN碼書福利群 ”,群里會不定時的給大家 贈書書籍、優惠券 等,有書籍推薦或者物流方面信息也可群里咨詢~目前群已滿100人,需要加群的請掃下方二維碼添加微信,拉你入群哦~

程序員學Python編程或許不知的十大提升工具_第5張圖片



640?wx_fmt=gif


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲精品不卡午夜精品 | 久久5| 特级全黄一级毛片免费 | 91欧美亚洲 | www.一级毛片 | 久久精品国产精品亚洲毛片 | 亚洲综合区 | 欧美成人老熟妇暴潮毛片 | x8x8国产日韩欧美 | 日日操夜夜操天天操 | 亚洲欧美日韩综合在线 | 色综合久久久久久久久五月 | 伊人久久久综在合线久久在播 | 久久综合免费视频 | 破处一级片 | 国产日韩精品一区二区在线观看 | 250pp久久新 26uuu精品一区二区 | 亚洲精品一级一区二区三区 | 精品国产91 | 俄罗斯一级毛片免费播放 | 99国产福利| 久久精品免视看国产成人2021 | 小视频国产 | 91精品国产综合久久精品 | h片免费网站 | 国产在线观看91精品不卡 | 日本在线有码 | 中国性猛交xxxxx免费看 | 亚洲国产成人精品一区二区三区 | 免费国产免费福利视频 | 欧美激情亚洲 | 亚洲精品久久麻豆蜜桃 | 中文字幕免费视频精品一 | 不卡精品国产_亚洲人成在线 | 国产网站精品 | 久久99热在线观看7 久久99热这里只有精品 | 亚洲韩国日本一级二级r级 亚洲韩精品欧美一区二区三区 | 亚洲精品第一国产麻豆 | 久久综合久久美利坚合众国 | 男女乱淫真视频免费一级毛片 | 日日摸夜夜添夜夜添久久 |