在以前,作爲一個剛開始使用Python的開發者,我時常爲佈設一個有效的開發環境感到困擾。找到一套自己

在以前,作爲一個剛開始使用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美元了。

如果你是在爲自己工作,則這些執照上的花費是可以作爲商業費用從你的稅費中扣除的。如果你是在爲某個公司工作我確信在你解釋清楚爲什麼需要這些工具且這些工具能有效的提升你的工作效率之後,公司的管理者會願意爲你在工具上的這筆投入買單的。

和美術設計師或者建築師相比,程序開發者花在購買軟件開發工具的許可證上的錢實在是少多了,甚至有一部分非常棒的工具和編輯器是免費的。將錢投入在合適的工具上是很合理的而且你的工作也會因此受益。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章