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

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

系統(tǒng) 1921 0

640?wx_fmt=gif

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

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

  • 自動化重構(gòu)工具;

  • Bug跟蹤工具;

  • 配置和構(gòu)建工具;

  • 部署工具;

  • 文檔工具;

  • 集成開發(fā)環(huán)境;

  • Python調(diào)試器;

  • Python編輯器;

  • Python Shell;

  • Skeleton Builder工具;

  • 測試軟件;

  • 有用模塊;

  • 版本控制。

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

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


640?wx_fmt=png

使用Roundup Issue Tracker跟蹤Bug


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

  • Bug跟蹤;

  • 管理TODO列表。

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

  • 客戶支持,包含如下:

  • 電話應答向?qū)В?

  • 網(wǎng)絡鏈接;

  • 系統(tǒng)和開發(fā)問題跟蹤工具。

  • 互聯(lián)網(wǎng)工程任務組(Internet Engineering Task Force,IETF)的問題管理。

  • 銷售趨勢跟蹤。

  • 會議論文投稿。

  • 雙盲評審管理。

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


640?wx_fmt=png

使用VirtualEnv創(chuàng)建虛擬環(huán)境


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

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

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

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

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

永遠不要在生產(chǎn)服務器上測試程序

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

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

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


640?wx_fmt=png

使用PyInstaller安裝你的應用程序


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

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

不要使用孤立的工具

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

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

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


640?wx_fmt=png

使用pdoc創(chuàng)建開發(fā)人員文檔


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

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

什么是文檔字符串?

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

"""This is a docstring."""

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

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

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


640?wx_fmt=png

使用Komodo Edit編寫程序代碼


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

  • 支持多種編程語言;

  • 關(guān)鍵字自動補全;

  • 縮進檢查;

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

  • 良好支持。

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


640?wx_fmt=png

使用pydbgr調(diào)試程序


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

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

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

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

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

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


640?wx_fmt=png

使用IPython進入交互環(huán)境


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

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

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


640?wx_fmt=png

使用PyUnit測試Python應用程序


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

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

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


640?wx_fmt=png

使用Isort整理代碼


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

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

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


640?wx_fmt=png

使用Mercurial進行版本控制


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

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

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

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

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

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


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

《從零開始學Python 第2版》


掃碼查看詳情


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


推薦理由:

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

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

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

添加下方微信號可領(lǐng)券

領(lǐng)券更便宜 哦~

640?wx_fmt=gif

碼書商店是CSDN專為我們的用戶建立的一個商店,這里提供大量的技術(shù)書籍,除了書籍我們也提供生活類的相關(guān)產(chǎn)品,如耳機、鍵盤等,或者你們?nèi)绻行枨笠部梢月?lián)系碼書商店的客服或者在公眾號下留言你們需要的產(chǎn)品,我們盡量滿足大家需求哦。

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

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



640?wx_fmt=gif


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久成人国产精品二三区 | 国产欧美日韩一区二区三区视频 | 欧美日韩在线精品成人综合网 | 亚洲国产精品网站久久 | 日韩伦理一区二区三区 | 亚洲乱码中文字幕久久 | 99九九精品国产高清自在线 | 日韩欧美国产成人 | 欧美日韩亚洲综合 | 国产精品亚洲精品影院 | 999免费视频 | 毛片网站在线观看 | 91青娱乐在线| 免费观看a级完整视频 | 亚洲性夜夜综合久久麻豆 | 日本亚洲a | 蜜桃视频黄色 | 破外女出血一级毛片 | 午夜免费播放观看在线视频 | 亚洲欧美网站 | 国产成人高清视频免费播放 | 国产亚洲自拍一区 | 四虎国产精品永久地址99新强 | 久久最近最新中文字幕大全 | 久久久国产99久久国产首页 | 中文字幕欧美日韩高清 | 午夜影院在线视频 | 91在线短视频 | 日韩精品一区二区三区中文 | 国产日产欧美 | 福利免费视频 | 欧美日韩中文在线 | 国产一区二区三区欧美 | 国产精品久久久久尤物 | 99欧美| 毛茸茸bbw亚洲人 | 成人在线免费网站 | 欧美日韩亚洲另类 | 国产女人水多毛片18 | 亚洲精品久久99久久 | 久久九九综合 |