|
英文原文:14 lessons after five years of professional programming
排列不分先后:
1. 當(dāng)性能遇到問題時(shí),如果能在應(yīng)用層進(jìn)行計(jì)算和處理,那就把它從數(shù)據(jù)庫(kù)層拿出來。排序和分組就是典型的例子。在應(yīng)用層做性能提升總是要比在數(shù)據(jù)庫(kù)層容易的多。就像對(duì)于MySQL,SQLite更容易掌控。
2. 關(guān)于并行計(jì)算,如果能避免就盡量避免。如果無法避免,記住:能力越大,責(zé)任越大。如果有可能,盡量避免直接對(duì)線程操作。盡可能在更高的抽象層上操作。例如,在ios中,GCD,分發(fā)和隊(duì)列操作是你的好朋友。人類的大腦沒有被設(shè)計(jì)成用來分析那些無窮臨時(shí)狀態(tài)——這是我的慘痛教訓(xùn)所得。
3. 盡可能簡(jiǎn)化狀態(tài),盡可能局部本地化。適用至上。
4. 短小可組合的方法是你的好朋友。
5. 代碼注釋是危險(xiǎn)的,因?yàn)樗鼈兒苋菀赘虏患皶r(shí)或給人誤導(dǎo),但這不能成為不寫注釋的理由。不要注釋雞毛蒜皮的事情,但如果需要,在某些特殊地方,戰(zhàn)略性的長(zhǎng)篇注釋是需要的。你的記憶會(huì)背叛你,也許會(huì)在明天早上,也許會(huì)在一杯咖啡后。
6. 如果你認(rèn)為一個(gè)用例場(chǎng)景也許“不會(huì)有問題吧”,它也許就是一個(gè)月后讓你在發(fā)布的產(chǎn)品中遭受慘痛失敗的地方。做一個(gè)懷疑主義者,測(cè)試,驗(yàn)證。
7. 有疑問時(shí),和團(tuán)隊(duì)中所有相關(guān)人交流。
8. 做正確的事情——你通常會(huì)知道這指的是什么。
9. 你的用戶并不傻,他們只是沒有耐心理解你的捷徑。
10. 如果一個(gè)開發(fā)人員沒有被安排長(zhǎng)期的維護(hù)你們開發(fā)的系統(tǒng),對(duì)他保持警惕。80%的血、汗、淚水都是在軟件發(fā)布后的時(shí)間里流的——那時(shí)你會(huì)變成一個(gè)厭世者,但也是更聰明的“行家”。
11. 任務(wù)清單是你的好朋友。
12. 主動(dòng)讓你的工作更有樂趣,有時(shí)這需要你付出努力。
13. 悄無聲息的崩潰,我仍然會(huì)為此從噩夢(mèng)中驚醒。監(jiān)控,日志,警報(bào)。清楚各種的假警報(bào)和不可避免的感覺鈍化。保持你的系統(tǒng)對(duì)故障的敏感和及時(shí)警報(bào)。
14. 復(fù)雜是大敵。
* 邊注:Rich Hickey先生的談話和Robert Martin先生的《Clean Code(代碼整潔之道)》一書最近給我的工作帶來了非常積極正面的影響。
it知識(shí)庫(kù):編程從業(yè)五年的十四條經(jīng)驗(yàn),句句樸實(shí),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。