《卓有成效的程序员》读书笔记
在今年的的ThoughtWorks China away day上,我見到了這本書的作者neal ford, 我們還有過簡單的交流,并一起去爬了長城。慚愧的是當(dāng)時(shí)我并沒有讀過他寫的這本書。直到今天我拿到了這本書,并花了大半天的時(shí)間通讀了一遍。看完以后,我覺得這本書真是太好了,非常值得一讀。
但是,我想讀這本書的讀者,大體會(huì)分為兩個(gè)反應(yīng)。一種是看了一下前面,覺得沒有意思,大概翻了翻,發(fā)現(xiàn)作者真是太羅嗦了,就丟到了一邊。另一種是愛不釋手的從頭看到尾,看到有些段落會(huì)會(huì)心一笑,有些段落則加上重重的標(biāo)記,并決定馬上就要開始實(shí)踐。
如果換做半年前的我,我是第一種反應(yīng),而現(xiàn)在,我當(dāng)然是第二種反應(yīng)。主要是這半年在ThoughtWorks的歷練,使我變得越來越有成效。列舉一個(gè)真實(shí)的例子。在我的前一個(gè)項(xiàng)目中,我們做的產(chǎn)品是一個(gè)提交保險(xiǎn)單的系統(tǒng),用戶要講過一個(gè)一個(gè)的page flow直到完成一個(gè)保單。如果我要開發(fā)的或者測試的feature在第7頁上,我每次都需要輸入大量的數(shù)據(jù),點(diǎn)擊大量的按鈕從第一頁走到第7頁。試想每天要重復(fù)N次真讓人崩潰。后來有人就寫了一個(gè)JavaScript腳本,可以一次填充一頁的數(shù)據(jù),并自動(dòng)跳到下一頁。我們把這個(gè)腳本保存到一個(gè)bookmark上,每次只要點(diǎn)擊6下就能到第7頁。
也許你們說這樣已經(jīng)簡化很多了,但是追求卓越的我們并沒有止步。我后來了解了selenium IDE這個(gè)在firefox下的插件。這個(gè)插件作者在書中有提到過。我用selenium IDE錄制了一個(gè)腳本,只需要點(diǎn)擊一個(gè)按鍵,程序就會(huì)自動(dòng)的走到第7頁。這樣比手動(dòng)輸入速度至少提高了10倍以上。正如作者所說,我們這樣的盡量實(shí)現(xiàn)自動(dòng)化操作節(jié)省時(shí)間不是第一目標(biāo),最重要的目標(biāo)是不要讓程序員在一遍遍的手動(dòng)操作中變傻,而是讓我們精力變的更加集中,focus到更具有價(jià)值的地方上去。
我覺得每個(gè)程序員都想變得高效,但是面對新的方法,新的工具總是或多或少有點(diǎn)畏懼心理,這是因?yàn)樗麄儫o法體會(huì)到采用一種新方法或者新工具帶來的震撼的效果。所以對于我們程序員來說絕對要勇于嘗試,勇于突破現(xiàn)狀。
回顧了一下作者在書中列舉的自己感興趣的東西,順便對自己做一個(gè)總結(jié)。(本人使用的是mac pro,所以tool和plugin只關(guān)心mac上的。)
加載器。作者介紹了quicksilver,而我使用的是launcher。我一般使用它快速打開某個(gè)application,還有嘗試其他功能,接下來要好好挖掘下。
剪貼版。我還真不知道可以有多個(gè)寄存器的剪貼板,out了,立馬download了jumpcut,打算試用。
IDE 快捷鍵。身為程序員每天與IDE打交道最多了,一定要熟練運(yùn)用每一個(gè)快捷鍵。作者提到了快捷鍵我基本都在用。
搜索優(yōu)于導(dǎo)航。使用command line來進(jìn)行各種搜素是我的短板,可憐的我只會(huì)基本的shell命令,這部分需要加強(qiáng)。
虛擬桌面。這個(gè)還真沒嘗試過。
自動(dòng)化法則。我們已經(jīng)使用了一些自動(dòng)化技術(shù),比如使用maven或rake來運(yùn)行build,使用selenium來構(gòu)建web自動(dòng)化測試。但是和作者書中講到的還差很遠(yuǎn)。
規(guī)范性法則。目前我們只實(shí)現(xiàn)了將部分配置信息統(tǒng)一管理起來,這一方便還有很大的提高。
TDD。在我們公司,如果你寫了一段沒測試的代碼,你的pair會(huì)毫不留情的喊你全部刪掉,先寫測試,再寫實(shí)現(xiàn)。?
代碼的度量。目前我們有一些測試覆蓋率之類的度量,但是圈復(fù)雜度這些還是一片空白。
靜態(tài)分析。這塊在我們項(xiàng)目中是一片空白,我已經(jīng)把它記到sticker,強(qiáng)烈需要馬上應(yīng)用。
元編程。正在學(xué)習(xí)groovy,ruby等動(dòng)態(tài)語言,只是看到了元編程的妙處,還沒有切身體會(huì)。
多語言編程。好吧,我承認(rèn)這是目前的趨勢,當(dāng)我嘗試了ruby on rails是如此高效時(shí),我已經(jīng)對它欲罷不能了。
作者總結(jié)了這個(gè)多,我也給大家推薦一個(gè)愛不釋手的tool:一款瀏覽器插件vimium,支持chrome和firefox。這是一款很酷的插件,能讓你瀏覽網(wǎng)站的速度至少提高50%,你再也不用用鼠標(biāo)去點(diǎn)擊你想訪問的鏈接,使用vimium只需要按幾個(gè)鍵就行。借用作者的一句話,沒有它我都不知道該怎么瀏覽網(wǎng)頁了。
from:?http://www.huangbowen.net/blog/2012/11/11/%3C%3Czhuo-you-cheng-xiao-de-cheng-xu-yuan-%3E%3E-du-shu-bi-ji/
總結(jié)
以上是生活随笔為你收集整理的《卓有成效的程序员》读书笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库范式解析(1NF 2NF 3NF
- 下一篇: 在ThoughtWorks工作两个多月的