作者:Erica Sadun搀继,原文鏈接,原文日期:2015-10-28
譯者:小鐵匠Linus翠语;校對:千葉知風(fēng)叽躯;定稿:千葉知風(fēng)
最近有個(gè)人發(fā) Email 問我:“好代碼是怎樣煉成的”。之前肌括,我身體有點(diǎn)不舒服点骑,所以我漫無邊際的說了下。現(xiàn)在好多了谍夭,所以我想分享一下以下這些想法黑滴,因?yàn)槲矣X得這些對于這次重要的討論來說是一個(gè)有趣的起點(diǎn)。
當(dāng)時(shí)紧索,我寫道:
好代碼并不只是可以編譯而已袁辈,它還會溝通。它會和現(xiàn)在的你交談齐板,也會和以后維護(hù)代碼的你交談吵瞻。它對于你的團(tuán)隊(duì)和任何外部來查看的人來說都是可以被理解的。
好代碼對可靠性和可測試性的要求勝過聰明的小技巧甘磨。如果需要清晰的表明自己的意圖和結(jié)果橡羞,好代碼會更傾向于使用一個(gè)或多個(gè)額外的步驟來表達(dá)。
好代碼也考慮其使用程度济舆,一段代碼一次跑一百萬遍和只跑一遍的要求是不同的卿泽,就好比在樹林里的一棵樹和孤零零的一棵樹那樣。
好代碼即使被分解了也可以成為合理的單元滋觉,而不是大規(guī)模的單一的實(shí)現(xiàn)签夭。
好代碼不僅僅是實(shí)現(xiàn)一次或兩次,而且還要審查和重構(gòu)椎侠。這才有可能讓它成為最好的和最健壯的實(shí)現(xiàn)第租。
好代碼會考慮到全球化,并提供給不同文化的潛在用戶我纪。添加國際化以及相關(guān)的可訪問性慎宾,這些真的是代碼層面的事情丐吓,而不是嘴上說說的馬后炮而已。
好代碼不僅僅考慮今天具體運(yùn)行在什么環(huán)境上趟据,也考慮如何適應(yīng)這些可能隨時(shí)間變化的環(huán)境券犁。
以上是我想到的,你對我關(guān)于這個(gè)“好代碼是怎樣煉成的”話題列出的清單有什么想添加汹碱、刪除粘衬、修改的?期待看到你們的想法咳促。
更新
Seivan Heidari 建議添加:好代碼會在作為 API 為外面調(diào)用時(shí)稚新,不提供內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)。
Anonymous 建議添加:好代碼是渾然天成的等缀。好代碼可以照你需要的樣子執(zhí)行枷莉,且能被按時(shí)交付,其余的都是扯蛋哈哈尺迂。
Dave DeLong 建議添加:好代碼會讓讀的人產(chǎn)生敬畏笤妙,并使讀的人受到啟發(fā)從而也去寫自己的好代碼。
Paul Cantrell 建議添加:好代碼會注意權(quán)衡噪裕。它會根據(jù)工程來權(quán)衡,而不是按照絕對的教條蹲盘。它也不會讓工具或技術(shù)成為組內(nèi)狀態(tài)標(biāo)記(in-group status markers)。
Rainer Brockerhoff 建議添加:好代碼可以被很輕松的重用(即使是在幾年之后)膳音,也能只用幾行代碼來進(jìn)行擴(kuò)展或改編召衔。