《程序员修炼之道》笔记(九)
*續(xù) 第八章 注重實(shí)效的項(xiàng)目
?
1. 無處不在的自動(dòng)化
文明通過增加我們不假思索就能完成的重要操作的數(shù)目而取得進(jìn)步。
無論是構(gòu)建和發(fā)布流程、是書面的代碼復(fù)查工作、還是其他任何在項(xiàng)目中反復(fù)出現(xiàn)的任務(wù),都必須是自動(dòng)的。人工流程不能保證一致性,也無法保證可重復(fù)性,特別是在不同的人對(duì)流程的各個(gè)方面有不同解釋時(shí)。使用shell腳本、批處理文件來處理流程,它們能以相同的次序反復(fù)執(zhí)行同樣的指令,還能被置于源碼控制之下,定時(shí)調(diào)度工具也很有幫助。
?
?
?
2. 全都是寫
a) 要把文檔當(dāng)做整個(gè)開發(fā)過程的完整組成部分加以接受。文檔和代碼可以緊密結(jié)合起來,作為同一模型的兩個(gè)視圖對(duì)待。
?
b) 內(nèi)部文檔包括源碼注釋、設(shè)計(jì)與測試文檔等;外部文檔是發(fā)布到外界的任何東西,比如用戶手冊。但不管受眾是誰、撰寫者是誰,文檔都應(yīng)該是代碼的反映。
?
c) 代碼中的注釋
注釋應(yīng)該討論為何要做某事、它的目標(biāo)等。代碼已經(jīng)說明了它是怎樣完成的,所以再為此加注釋是多余的,而且也違反了DRY原則。
注釋中也適合記錄工程上的權(quán)衡、為何要做某些決策、放棄了哪些替代方案等等。
變量名應(yīng)該精心選擇,并且有意義。匈牙利命名法(包括了變量類型信息)在面向?qū)ο蟮南到y(tǒng)中并不合適。
比無意義的名稱更糟糕的是誤導(dǎo)人的名稱。
代碼應(yīng)該有代碼作者、版權(quán)信息等內(nèi)容,這些可以讓編輯器自動(dòng)生成。
?
d) 任何形式的文檔都只是快照,可能剛剛發(fā)布出來就會(huì)過時(shí),最好能采用自動(dòng)化的方法及時(shí)更新。
文檔和代碼是同一底層模型的不同視圖,視圖是唯一應(yīng)該不同的東西。不要讓文檔變成二等公民,被排除在項(xiàng)目主要工作流之外,對(duì)待文檔要像對(duì)待代碼一樣用心。
?
?
?
3. 極大的期望
在現(xiàn)實(shí)中,項(xiàng)目的成功是由它在多大程度上滿足了用戶的期望來衡量的。不符合用戶期望的項(xiàng)目注定是失敗的,不管交付的產(chǎn)品在絕對(duì)意義上有多好。要溫和地超出用戶的期望。要做到這一點(diǎn)建議做如下工作:
a) 交流期望。
用戶在一開始會(huì)有一些關(guān)于自己所需要的東西的想象,它們可能不完整、不一致或在技術(shù)上不可能做到,但那時(shí)他們的,他們也在其中投入了一些感情,不能簡單地忽視。
交流的目的是達(dá)成對(duì)開發(fā)過程和最終產(chǎn)品、以及他們尚未描述出來的期望的共同理解。如果團(tuán)隊(duì)能與外界暢通地交流,這個(gè)過程幾乎是自動(dòng)的。曳光彈、原型可以促進(jìn)這一過程。
?
b) 額外一英里。
在與用戶緊密協(xié)作的過程中,用戶會(huì)及時(shí)了解項(xiàng)目的進(jìn)展,那么當(dāng)項(xiàng)目交付時(shí)就不會(huì)有多少讓人吃驚的事情了。這是一件糟糕的事情,要設(shè)法讓你的用戶驚訝(高興),給他們的東西要比他們期望的多一點(diǎn),比如友好的幫助系統(tǒng)、快捷鍵、自動(dòng)化安裝等等,通過這些讓用戶看到:開發(fā)團(tuán)隊(duì)想要開發(fā)出了不起的系統(tǒng)。但不要因?yàn)樵黾拥男绿匦远茐南到y(tǒng)。
?
?
?
4. 傲慢與偏見
a) 在你的作品上簽名。
?
b) 過去的手藝人為能在他們自己的作品上簽名而自豪,你也應(yīng)該如此,我們在負(fù)責(zé)一項(xiàng)設(shè)計(jì),或是一段代碼,我們是在做可以引以為傲的工作。
?
c) 但不要因?yàn)樗袡?quán)而產(chǎn)生“地盤”意識(shí):懷有偏見,只欣賞自己的代碼,排斥自己的同事。我們不應(yīng)該懷著猜忌心理阻止別人查看自己的代碼,同樣應(yīng)該帶著尊重對(duì)待別人的代碼。
?
d) 匿名可能會(huì)為邋遢、錯(cuò)誤、懶惰和糟糕的代碼提供繁殖地。
?
e) 我們想要看到對(duì)所有權(quán)的自豪:“這是我編寫的,我對(duì)自己的工作負(fù)責(zé)”,你的簽名應(yīng)該被視為質(zhì)量的保證,當(dāng)人們在一段代碼上看到你的名字時(shí),應(yīng)該期望它是可靠的,用心編寫的、測試過的和有文檔的,一個(gè)真正的專業(yè)作品,由真正專業(yè)人員編寫——一個(gè)注重實(shí)效的程序員。
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhixin9001/p/6832114.html
總結(jié)
以上是生活随笔為你收集整理的《程序员修炼之道》笔记(九)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 连美国的脖子都能卡!台积电到底是怎样炼成
- 下一篇: 斯坦福大学机器学习——高斯判别分析