做靠谱的程序员--《程序员修炼之道》读书报告
這兩天花了點(diǎn)時(shí)間把《程序員修煉之道》這本書(shū)讀了,本來(lái)估計(jì)要一周時(shí)間才能讀完,讀了才發(fā)現(xiàn)作者絕對(duì)是人才啊,書(shū)寫(xiě)的生動(dòng)有趣,一口氣就讀完了。隨便摘錄一下。
1.做一個(gè)靠譜的程序員,純粹的程序員,脫離了低級(jí)趣味的程序員
本書(shū)一開(kāi)篇就提出要做一個(gè)靠譜程序員,原文是pragmatic,我覺(jué)得翻譯成靠譜很靠譜。靠譜的程序員應(yīng)該有以下幾個(gè)特點(diǎn)
I.對(duì)全局負(fù)責(zé),而不是各種找借口推脫。在找借口之前想想別人聽(tīng)了這個(gè)借口之后會(huì)怎么鄙視你。。。作者認(rèn)為就算是不可挽回的問(wèn)題,也不要找借口,而是告訴別人替代的解決方案。
II.防微杜漸,不要放縱小問(wèn)題。下面鄭重的提出一個(gè)讓我眼前一亮的“破窗理論”:
破窗理論:社會(huì)學(xué)研究人員發(fā)現(xiàn),導(dǎo)致一棟樓變得廢棄的原因不是什么很大的問(wèn)題,而是始于一扇從未被修復(fù)的破窗子。這扇破窗子不斷的提醒樓里的人員這棟樓已經(jīng)廢棄了,沒(méi)搞頭了,所以大家都可以隨便亂搞了。所以這棟樓就廢了。軟件開(kāi)發(fā)也是一樣,不能容忍有瑕疵的亂寫(xiě)的代碼,這會(huì)廢掉這個(gè)工程的。
III.對(duì)變化敏感,不要做被煮熟的青蛙。
IV.做恰到好處的軟件,知道什么時(shí)候停止。作者舉了一個(gè)很生動(dòng)的例子。程序員就像畫(huà)家一樣,開(kāi)始的時(shí)候往一塊白板上面涂顏料畫(huà),先畫(huà)框架,再畫(huà)細(xì)節(jié),不斷的涂涂抹抹之后畫(huà)作可能已經(jīng)完成了,但如果作者沒(méi)有意識(shí)到,還在不斷的添加顏料,那么結(jié)果只能是化蛇添足了,反而毀了這幅作品。
V.重視知識(shí)的積累和與人交流。
?
2、對(duì)待bug的態(tài)度
有些開(kāi)發(fā)人員,遇到bug,總先要辯解一下,“不可能”“不會(huì)吧”“我怎么沒(méi)發(fā)現(xiàn)”“你操作有問(wèn)題吧”,就是不想承認(rèn)。有的人則是出了問(wèn)題先懷疑操作系統(tǒng)、懷疑庫(kù)函數(shù)、懷疑編譯器、懷疑硬盤(pán)、懷疑網(wǎng)絡(luò),就是不懷疑自己寫(xiě)的代碼有問(wèn)題。當(dāng)然不排除系統(tǒng)可能會(huì)有問(wèn)題,可是這比買(mǎi)彩票中500萬(wàn)的概率還要小,還是先從自己的代碼找原因吧。
3、Don't Assume It —-- Prove It
經(jīng)常遇到這種情況,開(kāi)發(fā)人員遇到了一個(gè)bug,查了一下,覺(jué)得可能是這個(gè)原因,好,馬上修改代碼,提交,Done!其實(shí)有很多時(shí)候bug根本沒(méi)有被修正,首先要做的是重現(xiàn)bug,重現(xiàn)的步驟越簡(jiǎn)單越好,修改完再用同樣的步驟,看bug是否不再出現(xiàn),否則你怎么知道bug已經(jīng)被fix了呢。
4、Crash Early Crash, Don't Trash.
盡早暴露問(wèn)題,而不是搞的一團(tuán)糟。問(wèn)題出現(xiàn)的越晚,你要修改的代碼就越多,
5、Don't Program by Coincidence
代碼為什么正常工作?不知道!反正寫(xiě)了那么多,看起來(lái)是工作正常的。很多時(shí)候如果我們說(shuō)不清楚,那是說(shuō)明自己還沒(méi)有完全理解這個(gè)問(wèn)題,代碼也只是幸運(yùn)的運(yùn)行起來(lái)了,深層的bug隱藏在里面,只是還沒(méi)有暴露出來(lái),總有一天會(huì)以更具破壞性的方式去爆發(fā),“出來(lái)混,總是要還的”。開(kāi)發(fā)人員也常有僥幸心里,有時(shí)候自己測(cè)試也遇到了問(wèn)題,可是不好重現(xiàn),大多數(shù)情況下又是正常的,就會(huì)想“在客戶哪兒應(yīng)該不會(huì)出問(wèn)題”
6、Ruthless Testing --- 無(wú)情測(cè)試
“Extreme Programming”也有類(lèi)似的口號(hào)“continuous integration and relentless testing”。“多數(shù)開(kāi)發(fā)人員憎恨測(cè)試。他們傾向于小心翼翼地測(cè)試,知道代碼哪兒會(huì)出問(wèn)題,就下意識(shí)避開(kāi)” 很多問(wèn)題,只要稍微用心去測(cè),就會(huì)測(cè)出來(lái),而不至于到用戶那兒再暴露出來(lái)。這一點(diǎn)也是我們需要加強(qiáng)的,建立測(cè)試的環(huán)境和機(jī)制,讓問(wèn)題盡早暴露出來(lái)。
?
這里只是摘錄了一小部分有意思的內(nèi)容,這本書(shū)讀起來(lái)很有意思,如果你感興趣,那就弄本來(lái)讀讀吧~
?
by 林萌
轉(zhuǎn)載于:https://www.cnblogs.com/meng-meng/archive/2011/10/28/2227525.html
總結(jié)
以上是生活随笔為你收集整理的做靠谱的程序员--《程序员修炼之道》读书报告的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何运用Reflection转化Dyna
- 下一篇: 通过IHttpHandler实现图片验证