編程技術(shù)就是程序員的手藝,你的程序就是你的藝術(shù)品。時(shí)刻關(guān)注自己的技藝,保持熱情、保持好奇,爭(zhēng)取做到富有專長(zhǎng)而又多才多藝。
看似樸素的道理,實(shí)際是若干經(jīng)驗(yàn)的總結(jié),就像這本書(shū)的自序所講的,這是一本包含有許多樸素的經(jīng)驗(yàn),寫(xiě)給注重實(shí)效的程序員的一本“演員的自我修養(yǎng)”。
簡(jiǎn)單和朋友們分享幾點(diǎn):
怎樣提出你的問(wèn)題
1:確切地知道你想要問(wèn)什么,并盡量明確具體;2:小心而得體地組織你的問(wèn)題,記住你是在請(qǐng)求幫助;3:發(fā)郵件時(shí)請(qǐng)使用有意義的主題;4:坐回椅子上,耐心等候
破窗
團(tuán)隊(duì)不能容忍破窗(產(chǎn)品的不完善的地方),需要指定人修復(fù),不能一直放著不管。當(dāng)你看到糟糕的設(shè)計(jì)、錯(cuò)誤的決策和糟糕的代碼時(shí),修正它們。在工作中,很容易對(duì)源源不斷的bug不耐煩,或許被自己說(shuō)服僥幸繞過(guò),以后就會(huì)有更多的直至難以修復(fù)。破窗戶講的故事是一個(gè)小區(qū)的一扇窗戶沒(méi)有及時(shí)維修導(dǎo)致整個(gè)小區(qū)陷入被更多破壞的現(xiàn)實(shí),人們?cè)傧肫鹁S修時(shí),代價(jià)巨大,治安特別好的地區(qū)也對(duì)破窗嚴(yán)格治理。
不要恐慌
做一次深呼吸,思考什么可能是bug的原因。記得剛?cè)雸F(tuán)隊(duì)時(shí),我時(shí)常會(huì)對(duì)難以捉摸,尤其是不能復(fù)現(xiàn)的bug感到恐懼,但細(xì)細(xì)尋找,你還是能看到蛛絲馬跡。
溫水煮青蛙
個(gè)人和團(tuán)隊(duì)假如一直在一個(gè)假設(shè)的環(huán)境或者需求或者條件下繼續(xù)下去,就很可能像那只可憐的青蛙一樣,或者定時(shí)的檢測(cè)下環(huán)境或條件或需求是否變化,或者團(tuán)隊(duì)里面專門(mén)有人來(lái)檢測(cè)
重復(fù)的危害
不要在系統(tǒng)各處對(duì)知識(shí)進(jìn)行重復(fù)。作為程序員,我們收集、組織、維護(hù)和利用知識(shí)。我們?cè)谝?guī)范中記載知識(shí)、在運(yùn)行的代碼中使其活躍起來(lái)并將其用于提供測(cè)試過(guò)程中所需的檢查。遺憾的是,知識(shí)并不穩(wěn)定。所有這些不穩(wěn)定都意味著我們要把很大一部分時(shí)間花在維護(hù)上,重新組織和表達(dá)我們的系統(tǒng)中的知識(shí)。程序員須持續(xù)不斷地維護(hù)。我們的理解逐日變化,當(dāng)我們?cè)O(shè)計(jì)或編碼時(shí),出現(xiàn)了新的需求。環(huán)境或許變了。不管原因是什么,維護(hù)都不是時(shí)有時(shí)無(wú)的活動(dòng),而是整個(gè)開(kāi)發(fā)過(guò)程中的例行事務(wù)?煽康亻_(kāi)發(fā)軟件、并讓我們的開(kāi)發(fā)更易于理解和維護(hù)的惟一途徑,是遵循我們稱之為DRY的原則:系統(tǒng)中的每一項(xiàng)知識(shí)都必須具有單一、無(wú)歧義、權(quán)威的表示。
正交性
不要把任何一項(xiàng)知識(shí)分散在多個(gè)系統(tǒng)組件中。在計(jì)算技術(shù)中,該術(shù)語(yǔ)用于表示某種不相依賴性或是解耦性。如果兩個(gè)或更多事物中的一個(gè)發(fā)生變化,不會(huì)影響其他事物,這些事物就是正交的。非正交的例子:直升機(jī)駕駛操作的各個(gè)控制器之間就是相互影響的,不是正交的。
正交的好處就是為了可以局部修正(local fix)。
何時(shí)使用異常
將異常用于異常的問(wèn)題。例如:文件讀寫(xiě),例程返回值,各種狀態(tài)異常檢測(cè),服務(wù)器超時(shí)等異常情況,都需要使用異常,通常為異常分等級(jí),可以拋出異常,或者將異常寫(xiě)入日志。
交流
我們不是活在真空世界,需要花大量時(shí)間與人交流。只有當(dāng)你是在傳達(dá)信息時(shí),你才是在交流。
有效交流的幾種方法:知道你想要說(shuō)什么,了解你的聽(tīng)眾,選擇時(shí)機(jī),選擇風(fēng)格,讓文檔美觀,讓聽(tīng)眾參與,做傾聽(tīng)者,回復(fù)他人。
定期為你的知識(shí)資產(chǎn)投資
讓學(xué)習(xí)成為習(xí)慣。編程語(yǔ)言、技術(shù)日新月異,小伙伴們都感受至深,幸運(yùn)的是我們的知識(shí)獲得比任何行業(yè)都更加容易和方便,大量的社區(qū),教程和熱心的作者。書(shū)中也給程序員提了幾點(diǎn)建議,每年學(xué)習(xí)一門(mén)新的語(yǔ)言,每個(gè)季度閱讀一本技術(shù)書(shū)籍等。
讓復(fù)用變得容易
如果復(fù)用很容易,人們就會(huì)去復(fù)用。創(chuàng)造一個(gè)支持復(fù)用的環(huán)境。將相同的功能抽離出來(lái),可能會(huì)大量用到的方法使用靜態(tài)關(guān)鍵字。
在你的作品上簽名
過(guò)去時(shí)代的會(huì)陷入自我欣賞中,他其實(shí)還有一個(gè)作用,我對(duì)代碼負(fù)責(zé),我測(cè)試過(guò)并確保他的良手藝人為能在他們的作品上簽名而自豪。你也應(yīng)該如此。坦白的說(shuō),簽名之后再看這段代碼會(huì)非常愉悅,有時(shí)還好運(yùn)行,也是一種自我監(jiān)督吧。
“我的源碼讓貓吃了”,想想作為程序員的我們,是不是經(jīng)常會(huì)幫自己解脫,向領(lǐng)導(dǎo),測(cè)試,客戶推卸責(zé)任,其實(shí)對(duì)于他們仿佛也就好比聽(tīng)“我的源碼讓貓吃了”這句話,是不是很諷刺?不管我們某個(gè)人基礎(chǔ)再扎實(shí),解決問(wèn)題的能力再?gòu)?qiáng),如果缺失了對(duì)自己的軟件的責(zé)任,一定不會(huì)有好的工作成果。
很多很多,這些不是做過(guò)一次兩次就說(shuō)明已經(jīng)掌握了,需要一個(gè)持續(xù)的過(guò)程去注意,實(shí)踐,直到他們成為你的習(xí)慣,這樣,你才能成為一個(gè)“專家程序員”。
來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。