你的程式碼有教育後人的義務與責任

aqee發表於2013-05-16

  世界童軍運動(Scout Movement)的口號“留下一個比你現在看到的更好的世界”完美的適用軟體開發活動。通常它是用來鼓勵程式設計師將以前的程式設計師留下的爛攤子清理乾淨,但這個道理是雙向適用的。所有的軟體開發人員都有責任為以後的程式設計師留下一個更適合他們工作的程式碼環境。我們有責任去教育他們,即使我們可能永遠不會和這些學生見面。

  Reg Braithwaite先生曾在 文章裡談到如何選擇在專案中使用什麼樣的技術、工具或程式語言。程式設計師在做這些決定時必須考慮環境背景:我們將和誰一起工作,我們將要做什麼,為什麼會選擇這樣的技術路線。

  而我優先考慮的不是當前專案,也不是將和我一起開發的這些人。我優先考慮的是將來的那些我未曾謀面的程式設計師,那些將會研究我的程式碼的程式設計師。
我希望他們不但能修改我的程式碼或增添功能,而且能從其中學到一些東西,就像是我從現在讀到的程式碼中學到的。

  這是一個難以捉摸、很難實現的目標。通過程式碼傳教,你需要把讀者帶回到當時的環境。如果你使用很老的技術,這反而會帶來麻煩。我們必須考慮到所處的程式設計文化,這是難點。對此我沒有建議提供,按你們認為正確的方法做吧。

  重要的是你要有願望去傳教,去分享你的知識。如果你可以使用函式式的Javascript技術來條理化你的邏輯,你就有責任這樣做。如果你看到一個方法能把一個複雜的Ruby方法變成一個簡單演算法和資料結構,那麼你就一定要這麼做。這樣做並不是簡單的程式碼更整潔了,更是因為你能讓將來的程式設計師變成一個更好的程式設計師。

  因為這些,我認為,作為程式設計師關鍵的一點就是去擴充套件我們的視野。學習函數語言程式設計,學習各種語言,學習陳述式程式設計,學習微控制器和介面互動,學習從未聽說的所有東西,用程式設計來教育自己。

  英文原文:It is our responsibility to teach

相關文章