Aslam Khan
程式碼是社會活動#
我們往往在孤立中寫程式碼,而程式碼反映了我們對問題的個人詮釋和高度個人化的解決方案。我們可能是團隊的一員,但同時又是孤立的。我們太容易忘記,這些在孤立中創造的程式碼將被他人執行、使用、擴展和依賴。軟體開發是一項技術練習與社會活動的混合體。我們只需要更常提醒自己:我們並非在孤立中工作,我們對團隊——不只是開發團隊——的成功負有共同責任。
自我與團隊的矛盾#
你可以在孤立中寫出高品質的程式碼,沉浸在自我之中。從某個角度看,這是一種自我中心的方式(不是傲慢的 ego,而是個人的 ego)。這也是一種禪的視角——在創造的當下,你活在當下,它幫助你更接近好的品質。但問題是:你的當下和團隊的當下一樣嗎?
程式碼品質會傳染#
你寫的程式碼品質會影響他人寫的程式碼品質。即使你寫了非常乾淨的程式碼,在使用品質低劣的程式碼的地方,你的程式碼品質也會被拉低。你可以運用許多模式和技術來限制損害,但損害已經造成——別人因為你的程式碼而被迫做更多工作,只因為你在自己的當下中沒有考慮到他們。
Ubuntu 哲學#
在祖魯語中,Ubuntu 的哲學被總結為 “Umuntu ngumuntu ngabantu”,大致翻譯為「一個人是透過(其他)人而成為人的。」套用到開發者身上:「一個開發者是透過(其他)開發者而成為開發者的。」再進一步落到實處:「程式碼是透過(其他)程式碼而成為程式碼的。」
Ubuntu 程式碼看起來什麼樣子?就是好的、乾淨的程式碼。重點不在於程式碼這個產物本身,而在於創造這個產物的行為。為你的朋友以 Ubuntu 精神來寫程式碼,將幫助團隊實踐你的價值觀。接觸你程式碼的下一個人,無論以何種方式,都會成為更好的人和更好的開發者。
禪是關於個人的。Ubuntu 是關於群體的禪。我們極少是為自己一個人而寫程式碼。