在以前,作為一個剛開始使用Python的開發者,我時常為布設一個有效的開發環境感到困擾。找到一套自己能順暢使用的環境且為此培養一個正確的習慣是很困難的。
之前我一直沒有意識到這些事情對我的工作效率影響有很大的影響,我甚至不知道一些我現在經常在開發中應用的很有價值的習慣以及工具!隨著我的經驗增長,我發現這種情況是普遍存在於Python開發者中的,包括我的同事,技術交流大會上的同好,網路論壇上的認識的開發者以及大量發郵件向我諮詢的人,可以看出這是一種很常見的現象。
不過到如今,我相信入門級的Python程式員是可以透過應用一些重要的技巧和工具到他們的日常工作中來顯著的提升他們的工作效率的。
這篇文章是用來幫助你認識並解決五個在Python開發配置中常見問題的。這些問題我之前都曾經遇到過並且曾經作為同事和團隊領導幫助他人解決過。如果你能在開發中避免這些問題,作為你一個Python開發者你會獲得更好的開發體驗並且有更高的開發效率。
#1 編譯器的歸編譯器
當開發者把時間用在做一些電腦能做的更好的事情上時,這可以稱之為一種時間上的浪費了,一個典型的例子就是程式員將時間花在尋找一些可以被自動化工具更準確定位的bug上。
可能是由於Python動態語言的特性以及早期被視為“指令碼”語言的原因,到現在依然很少看到有什麼靜態程式碼分析工具和拼寫檢查器用在Python上。
然而此類工具是非常有幫助的,他們基本上能將特定的一類bug和語法錯誤完全檢查出來並提醒開發者避免犯這些錯誤。例如這些工具能找到影響程式碼正常編譯的功能性bug像是錯誤拼寫的識別符號或是發現一些程式碼的質量問題例如沒有使用過的變數和取用。
當然我的意思並不是說靜態分析工具就是萬能良藥,但至少他們的確幫助我們減少了debug和程式碼審查的時間,也減少了開發初期的時間投入。
如果你只想要一個,僅僅一個工具用來提升你的Python程式碼質量,同時不被錯誤的糾正以及囉嗦的提示資訊幹擾,那麼我推薦你使用Pyflakes。Pyflakes是一個開源的,免費的,同時容易安裝的拼寫檢查工具。
為了更快的得到反饋以及更早的發現bug,我建議你將Pyflakes整合到你的程式碼編輯器和後臺伺服器上。將自動修正程式碼錯誤的功能融入你的整個開發流程能讓你在工作時更加輕鬆。不過請保證你的團隊裡所有的開發者都在使用同一套配置以避免透過的程式中有未被髮現的告警。
建議1:使用像Pyflakes這樣的靜態程式碼分析工具
#2 避免無意義的程式碼風格討論
你的團隊會在開發中進行程式碼審查?那是最好的!但是請註意,沒有太多經驗的程式碼審查者經常犯的一個錯誤是花費太多時間反饋一些自動化工具就能幫他們做好的東西。是的,我說的就是程式碼風格問題。
開發團隊在程式碼審查時非常容易陷入一種討論程式碼風格的情境中,大多數時候他們討論的都是諸如“這裡應該多加一個空格”或者“類命名應該用駝峰命名法”之類的東西。
這是一個典型的“腳踏車棚效應”註1 的例子,它阻止了開發者去關註一些真正應該被關註的問題,那些會導致投入更多資金和時間去維護的問題。
快速解決這些問題的方法就是選一個可以從網上找到的Python程式碼風格指導手冊,例如PEP8或者Google的Python程式碼風格指南,然後利用自動化工具去確保專案程式碼遵從了指南里的風格。
我推薦使用以PEP8為基準風格的Pycodestyle或者flake8程式碼風格檢查工具。他們可以有效避免大多數的關於程式碼風格的爭論同時能讓你的團隊更加專註在更應該關註的問題上。
建議2:選擇一個特定的程式碼風格然後用自動化工具去保證程式碼遵從了這種風格
#3 千里之堤潰於蟻穴 – 卡頓和宕機的影響
可用性研究表明網站載入時間對使用者是否放棄原先的目的有很大的影響:如果人們對等待某件事的發生感到疲倦和不耐煩,則他們放棄他們原先計劃的事的可能性將大大提高。
作為一個軟體開發者,等待各種各樣的工具完成他們的任務是每天工作過程中很平常的一部分。畢竟我們經常在等待一個第三方包的安裝,一個測試的執行或者一個程式碼提交的完成。當然我們是不會每次都“放棄”那些必須等待特定工具執行幾秒甚至幾十秒的工作的,對正在進行的工作保持註意力畢竟也是我們工作的一部分。
然而,保持這種程度的專註是很耗神的,而且我們可能因為這種專註耗費了過多的精神力影響了我們在其他方面的工作:例如在午後更快的感覺到疲憊,或者在自己剛提交的程式碼中出了一個微小的bug。
以我個人的經驗來說,即使是很微小的卡頓或者延遲在積累之後也會產生滾雪球般的惡劣影響。在一個速度很慢的編輯器上切換檔案或者是在一個速度很慢的電腦上切換應用都是很煩躁的一件事。我們甚至可以以一種近乎吹毛求疵的態度去關註例如編輯器字元輸入延遲之類的細節問題。因為我覺得這些微小的延遲也會產生滾雪球一樣的影響,他們影響了我們的生產效率同時使人感到煩躁。
我們設想一下,在開發過程中,你每十秒花了一秒的時間在等待一個任務的完成,這個時間的耗費累積起來,相當於你一週有半天都在等待,或者說一個月有整整兩天,抑或是一年的工作時間中你有一個月在等待中過去了。
也許這種估算有點誇張,但是從另一個角度看,你花了一個下午的時間來最佳化你的開發工具導致你的一整年的工作時間多出來一個星期,這樣是否值得你去嘗試改進你的工具呢?要我說那是必須的!
建議3:你的開發工具應該保持高響應速度,簡單總是好的
#4 不要在一個讓你不舒服的編輯環境下工作
使用讓我不適應的工具工作會大大影響我的工作效率,我覺得身為讀者的你應該也懂這種感覺。一些開發工具非常難以使用,它們會將你的精力和熱情完全耗盡。
對你來說,什麼工具是你認為在日常的開發過程中最重要的呢?如果要我來回答,那肯定是我的程式碼編輯器。對有些開發者來說可能是答案是他們的郵件客戶端或者團隊的聊天應用,但我們還是希望一天大部分的工作時間是用在寫程式碼上的。
這就意味著將時間投入在一個令人愉悅的程式碼編輯環境中是絕對值得的,因為這樣做的直接結果就是更高的工作效率,還有更加愉快的心情!
作為Python開發者我們有很多編輯器或是IDE工具供我們選擇,例如Vim, Emacs, PyCharm, Wing IDE, Atom, Eclipse PyDev, Sublime Text等等等等。
在經過長時間的適應和調整還有對各種程式碼編輯器及IDE的嘗試後,我最終選擇了使用Sublime Text。它的高響應速度,簡單的結構和穩定性是我選擇它的原因。它和我現在的程式設計工作配合的很好。我最終選擇它也是我嘗試了非常多其他的編輯器和IDE之後做出的決定。
你並不需要選擇和我一樣的工具。我所要表達的意思是你需要找到最適合你自己且符合你獨特需求的工具去工作。所以請多找一些編輯器去嘗試嘗試看哪種你最喜歡,這對你的工作效率大有裨益。
建議4:找到適合你的編輯器並把它弄成你需要的樣子
#5 在購買需要的工具時,不要吝嗇
我曾經和一個使用收費編輯器的人一起合作寫程式碼。但是這個開發者不願意花錢購買這個編輯器的正式版本,他們用這個編輯器的試用版來代替正式版進行工作。
而這個使用版本在你儲存檔案之後,每隔一兩分鐘就會跳出一個彈窗來提醒你購買正式版。這個開發者又有經常儲存檔案的習慣,所以他每天都會看到這個彈窗成百上千次……
要和這些彈窗說再見需要購買一個70美元的正式版執照。雖然我很欣賞勤儉節約的精神,但是在這件事上我覺得這樣節省實在太荒謬了。在你經常使用的開發工具上摳門和想辦法省小錢是很愚蠢的,我很確定你在處理這些彈窗和由此帶來的一系列問題上的損失絕對超過70美元了。
如果你是在為自己工作,則這些執照上的花費是可以作為商業費用從你的稅費中扣除的。如果你是在為某個公司工作我確信在你解釋清楚為什麼需要這些工具且這些工具能有效的提升你的工作效率之後,公司的管理者會願意為你在工具上的這筆投入買單的。
和美術設計師或者建築師相比,程式開發者花在購買軟體開發工具的許可證上的錢實在是少多了,甚至有一部分非常棒的工具和編輯器是免費的。將錢投入在合適的工具上是很合理的而且你的工作也會因此受益。
建議5:將錢花在讓你感到舒服和更有效率的工具上是值得的
#從哪裡開始實踐呢?
在上面的內容裡我已經給出了五個比較容易在開發中出現並且嚴重影響工作效率的問題。還好大部分這些問題相對容易解決,只要你使用下麵這些正確的方法:
-
建議1:使用像Pyflakes這樣的靜態程式碼分析工具
-
建議2:選擇一個特定的程式碼風格然後用自動化工具去保證程式碼遵從了這種風格
-
建議3:你的開發工具應該保持高響應速度。簡單總是好的
-
建議4:找到適合你的編輯器並把它弄成你需要的樣子
-
建議5:將錢花在讓你感到舒服和更有效率的工具上是值得的
下麵是一個應用這些方法很好的開端:找到一個最讓你感到頭痛的問題。將這個問題大而化小的一步步解決,而不是急於求成的一口吃個胖子,每次解決一個小問題,持續保持這種狀態,可以看到問題已經逐漸被你搞定了。
將這些改變視為一種長線投資–即使是最小的變化也會在一段時間後給你的工作效率帶來顯著提升。以我個人經驗來說,成功不過是培養好習慣和優秀思維方式的一種持續過程罷了。
一個好的開發環境會讓你對解決工作中的問題更有資訊,也更有效率。當你對你的Python工作環境感到舒適時,你在工作中會更加愉快,同時也能感受到更多樂趣。祝你好運!
註1:腳踏車棚效應是一個用來表示程式員之間對於一些無關緊要的細節爭論的名詞。
英文原文:https://dbader.org/blog/python-development-setup-tips-to-boost-your-productivity?utm_source=mybridge&utm;_medium=web&utm;_campaign=read_more
譯者:煙燻把裡
轉載宣告:本文轉載自「Python程式員」,搜尋「pythonbuluo」即可關註。
《Python人工智慧和全棧開發》2018年07月23日即將在北京開課,120天衝擊Python年薪30萬,改變速約~~~~
*宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。
– END –
更多Python好文請點選【閱讀原文】哦
↓↓↓