你的代碼有教育后人的義務(wù)與責(zé)任

Reg Braithwaite先生曾在 文章里談到如何選擇在項目中使用什么樣的技術(shù)、工具或編程語言。程序員在做這些決定時必須考慮環(huán)境背景:我們將和誰一起工作,我們將要做什么,為什么會選擇這樣的技術(shù)路線。
而我優(yōu)先考慮的不是當(dāng)前項目,也不是將和我一起開發(fā)的這些人。我優(yōu)先考慮的是將來的那些我未曾謀面的程序員,那些將會研究我的代碼的程序員。
我希望他們不但能修改我的代碼或增添功能,而且能從其中學(xué)到一些東西,就像是我從現(xiàn)在讀到的代碼中學(xué)到的。
這是一個難以捉摸、很難實(shí)現(xiàn)的目標(biāo)。通過代碼傳教,你需要把讀者帶回到當(dāng)時的環(huán)境。如果你使用很老的技術(shù),這反而會帶來麻煩。我們必須考慮到所處的編程文化,這是難點(diǎn)。對此我沒有建議提供,按你們認(rèn)為正確的方法做吧。
重要的是你要有愿望去傳教,去分享你的知識。如果你可以使用函數(shù)式的Javascript技術(shù)來條理化你的邏輯,你就有責(zé)任這樣做。如果你看到一個方法能把一個復(fù)雜的Ruby方法變成一個簡單算法和數(shù)據(jù)結(jié)構(gòu),那么你就一定要這么做。這樣做并不是簡單的代碼更整潔了,更是因?yàn)槟隳茏寣淼某绦騿T變成一個更好的程序員。
因?yàn)檫@些,我認(rèn)為,作為程序員關(guān)鍵的一點(diǎn)就是去擴(kuò)展我們的視野。學(xué)習(xí)函數(shù)式編程,學(xué)習(xí)各種語言,學(xué)習(xí)陳述式編程,學(xué)習(xí)微控制器和界面交互,學(xué)習(xí)從未聽說的所有東西,用編程來教育自己。















 
 
 



 
 
 
 