你的程式碼有教育後人的義務與責任
世界童軍運動(Scout Movement)的口號“留下一個比你現在看到的更好的世界”完美的適用軟體開發活動。通常它是用來鼓勵程式設計師將以前的程式設計師留下的爛攤子清理乾淨,但這個道理是雙向適用的。所有的軟體開發人員都有責任為以後的程式設計師留下一個更適合他們工作的程式碼環境。我們有責任去教育他們,即使我們可能永遠不會和這些學生見面。
Reg Braithwaite先生曾在 文章裡談到如何選擇在專案中使用什麼樣的技術、工具或程式語言。程式設計師在做這些決定時必須考慮環境背景:我們將和誰一起工作,我們將要做什麼,為什麼會選擇這樣的技術路線。
而我優先考慮的不是當前專案,也不是將和我一起開發的這些人。我優先考慮的是將來的那些我未曾謀面的程式設計師,那些將會研究我的程式碼的程式設計師。
我希望他們不但能修改我的程式碼或增添功能,而且能從其中學到一些東西,就像是我從現在讀到的程式碼中學到的。
這是一個難以捉摸、很難實現的目標。通過程式碼傳教,你需要把讀者帶回到當時的環境。如果你使用很老的技術,這反而會帶來麻煩。我們必須考慮到所處的程式設計文化,這是難點。對此我沒有建議提供,按你們認為正確的方法做吧。
重要的是你要有願望去傳教,去分享你的知識。如果你可以使用函式式的Javascript技術來條理化你的邏輯,你就有責任這樣做。如果你看到一個方法能把一個複雜的Ruby方法變成一個簡單演算法和資料結構,那麼你就一定要這麼做。這樣做並不是簡單的程式碼更整潔了,更是因為你能讓將來的程式設計師變成一個更好的程式設計師。
因為這些,我認為,作為程式設計師關鍵的一點就是去擴充套件我們的視野。學習函數語言程式設計,學習各種語言,學習陳述式程式設計,學習微控制器和介面互動,學習從未聽說的所有東西,用程式設計來教育自己。
相關文章
- 物件的責任與職責物件
- 會計工作職責與任務
- 建立後臺任務的兩種程式碼模式模式
- 敏捷開發人員的責任敏捷
- 教育原始碼的重要任務——做好直播互動原始碼
- 微服務架構的責任困境微服務架構
- 最高院--返修責任與保修責任應嚴格區分,工程竣工驗收合格後保修責任的起算並不必然意味著返修責任的滌除
- 行政責任和民事責任,刑事責任的區別
- 程式設計師是否有義務做好程式碼的註釋?你做好程式碼註釋了嗎?程式設計師
- 【原創】金融IT的義務與責任-讀民生銀行核心系統癱瘓文章有感
- 任重道遠——探究少兒機器人程式設計教育的熱門背後機器人程式設計
- 程式碼部分不是很負責任
- 《夢斷程式碼》讀後感 - 驅動,責任,交流,遠慮
- Android開發 - Runnable 類任務介面定義與後臺任務待辦解析Android
- JavaScript的巨集任務與微任務JavaScript
- 淺談一個與彼得原理和責任管理有關的小故事
- 程式猿討厭沒有價值的任務
- 使用職責鏈模式來重構你的程式碼模式
- 彼得.德魯克《管理:任務、責任、實踐》
- 如何提升JavaScript的任務效率?學會後教給你同事JavaScript
- 《管理:任務、責任、實踐》讀書筆記(3)筆記
- 《管理:任務、責任、實踐》讀書筆記(2)筆記
- 《管理:任務、責任、實踐》讀書筆記(1)筆記
- 專案任務與運維任務的衝突運維
- mybatis原始碼學習:外掛定義+執行流程責任鏈MyBatis原始碼
- 你的程式碼有重複嗎?
- 遊戲與教育:談討遊戲背後的教育價值遊戲
- 對於工程師責任和責任邊界的認知工程師
- iOS App 後臺任務的坑iOSAPP
- 詳解JavaScript的任務、微任務、佇列以及程式碼執行順序JavaScript佇列
- 專案管理中,專案干係人的角色和責任專案管理
- 後臺任務
- 程式設計師討厭沒有價值的任務程式設計師
- 任務佇列,巨集任務與微任務佇列
- JS中EventLoop、巨集任務與微任務的個人理解JSOOP
- 責任鏈模式的實踐模式
- 你還不知道責任鏈模式的使用場景嗎?模式
- Oracle Expdp匯出時定義任務名後終止退出的問題Oracle