現(xiàn)如今有關(guān)軟件開發(fā)的一切創(chuàng)造發(fā)明,不過是人們不斷地重新發(fā)現(xiàn)某些東西,并假裝他們發(fā)明了新東西。
所有你認(rèn)為很酷、很新的東西都是從 Smalltalk(被公認(rèn)為第二個(gè)面向?qū)ο蟮某绦蛟O(shè)計(jì)語言和第一個(gè)真正的集成開發(fā)環(huán)境 IDE)、HAKMEM、Ivan Sutherland(計(jì)算機(jī)圖形學(xué)之父和虛擬現(xiàn)實(shí)之父)、Douglas Engelbart(計(jì)算機(jī)界的資深學(xué)者)、早期的 IBM 或者貝爾實(shí)驗(yàn)室那里抄來的。
那些寫了幾十年代碼才明白的道理,其實(shí)可以從現(xiàn)在去思考。
今天小編給大家分享那些代碼累積出來的教訓(xùn)。
1、不要相信編譯器。不要相信工具。不要相信文檔。不要相信自己。
2、我們不需要新的編程語言。不過你肯定還會(huì)發(fā)明另一種語言。我猜,你的新語言肯定會(huì)用 IEEE-754 數(shù)學(xué)和固定精度整數(shù)。那你的新語言已經(jīng)失敗了。
3、維護(hù)代碼比編寫代碼更難。寫很多很多新代碼是懶惰的表現(xiàn)。
4、學(xué)習(xí)編程時(shí)都會(huì)假設(shè)內(nèi)存、處理器時(shí)間和網(wǎng)絡(luò)帶寬都是免費(fèi)且無限的。而事實(shí)上,它們不是,它們不是,它們不是。好好讀讀 Knuth 關(guān)于過早優(yōu)化的文字。
5、不出幾個(gè)月你就會(huì)忘記你寫過代碼。所以代碼一定要傻瓜都能看懂。
6、許多時(shí)候你只需要一行的 sed 就夠了。
7、當(dāng)心那些說話絕對(duì)的程序員,比如說我的方法永遠(yuǎn)比你的好之類的。編程是一門書,不是信仰。
8、如果你知道一系列固定的步驟要重復(fù)十次以上,就寫個(gè)腳本吧。
9、備份是一回事兒,恢復(fù)備份是另一回事兒。
10、在你的機(jī)器上能用,不意味著沒有 Bug?!狿eers Sutton
11、開發(fā)工具要等出了 .1 版之后再安裝。讓別人去做小白鼠。
12、優(yōu)秀的程序員寫優(yōu)秀的代碼。大師級(jí)程序員不寫代碼。宗師級(jí)程序員刪代碼。
13、不管有多少經(jīng)理對(duì)你怒吼,第一步永遠(yuǎn)是要穩(wěn)定地復(fù)現(xiàn) Bug。
14、早晚你會(huì)遇到一些比你經(jīng)驗(yàn)豐富些的人,他早晚會(huì)給你講編程的定律。你要做的就是完全無視他。