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