請註釋你那該死的程式碼
我站出來就是為了要說一句:
請註釋你那該死的程式碼。
每次我遇到一個程式設計師——有時是相當高水的——總發現他會認為:你並不需要給你的程式碼加註釋。我要說,這就是胡說八道。我很長時間以來一直這麼表 達。問題是,讓事情改變要比你想象的難。雖然我們正處在努力編寫那些討厭的程式碼、準備釋出一些會令人驚歎的新東西的緊要關頭,我們仍然幾乎註釋所有的東 西。沒有任何藉口不去做這些事情。每隔3到7行程式碼,你就能看到有長篇的社論發表。有時,幾百行程式碼裡,你就能找到一個很好的笑話。
錯誤的藏身之處
看,一個是你想要的,一個是你實現的。你的bug就在這兩者之間。如果寫了註釋,你就是在告訴我你想要的。而你的程式碼中告訴我你是如何去做的。程式的缺陷要麼存在於你想要的想法中,要麼,需求是對的,而你的程式碼有問題。請幫助我,讓我知道究竟是哪個錯了。
不要偷懶
一個常見的反對聲音是:我聽說,註釋經常會過期,因為程式碼會經常更新,而註釋不會。你不更新註釋嗎?你的同事也不?不要偷懶,不要養成一個讓人認為 偷點兒懶無所謂的文化氛圍。告訴同事你是如何一絲不苟的註釋程式的,讓他們知道你也希望他們這樣去做。說不註釋是因為怕某人或某些地方在將來會造成你的錯 誤,這只是在找藉口。
你是有經驗的人
人本無知,這很自然,但你是有經驗的人。因此,你有義務教育那些需要學習的人。你的註釋會指導那些正在閱讀你的程式碼的人。告訴他們為什麼在這裡要用 Tuple資料結構,而不是用其它的(更好的做法是附加一個stack overflow或dotnetperls上的連結 … 你完全可以做到這些,不是嗎?)你在這走了一個什麼捷徑?如果不走捷徑你就不能按時釋出,所以,告訴這些新手你遇到的特殊情況。否則的話,最終你的不好的 程式碼將會被四處複製,四處散播。看!你寫的爛程式碼變成了公司的程式模板!完全沒有註釋!
你會打字
我的招聘過程有一部分是白板程式設計,一部分是鍵盤程式設計。所有好的程式設計師都是打字高手。就說你每分鐘能打出40-60詞。那請你告訴我,為什麼在你機槍 掃射似的編寫程式碼時不加上註釋呢?當然,你可以花30秒時間告訴我,程式碼寫的這樣一團糟是因為搞業務的那個傢伙需要程式在本週釋出而換回不菲的7.5萬美 元。可是下個月呢?這些程式碼不要了?封存到石頭裡了?我知道這些程式碼是在幹什麼。但請告訴我你的意圖。
你在一天天變老
聽我說,我程式設計已經很久了,也許早在你上中學之前。我仍然在程式設計,我仍然喜歡程式設計。有朝一日,你也會變的跟我一樣老。如果你到了像我一樣(那時我已 經沒有能力再教育你),那時,有太多的層,有太多的抽象,有太多的技術架構,你無法完全記住。你的註釋就能出來指導你。它們會告訴你,6個月前,你是用這 種方法、這種模式實現的,而且這樣做只是為了炫耀。如果你是一個真正優秀——並且仍然在做程式設計的程式設計師——你會認識到,這些程式碼寫的很爛,你現在需要以不 同的方式重新實現它。而你仍然有你的註釋來讓你回憶起當時的想法和為什麼這樣做。
所以,請註釋你那該死的程式碼。
[本文英文原文連結:Comment your damn code ]
相關文章
- 請停止程式碼註釋
- 五種應該避免的程式碼註釋
- 你寫註釋她幫你寫程式碼
- 程式設計師是否有義務做好程式碼的註釋?你做好程式碼註釋了嗎?程式設計師
- 程式設計師應該避免的5種程式碼註釋程式設計師
- 什麼時候應該避免註釋程式碼?
- Linus Torvalds :忘掉那該死的並行吧!並行
- banq,關於你那註冊程式的問題
- 有趣的程式碼註釋
- CSS程式碼註釋CSS
- php程式碼註釋PHP
- 減少程式碼中該死的 if else 巢狀巢狀
- 程式碼才是最好的註釋
- 註釋程式碼的13技巧
- Haskell程式設計精華:什麼時候該註釋,什麼時候不該註釋Haskell程式設計
- android studio和 Eclipse中程式碼的註釋,讓你的程式碼更加AndroidEclipse
- javascript如何註釋程式碼JavaScript
- [新包釋出] 基於註釋的 API 文件與 測試工具【從此不再寫該死的文件】API
- [新包釋出] 基於註釋的 API 文件與 測試工具 [從此不再寫該死的文件]API
- 10年老碼農:如何從該死的爛程式碼中爬出來?
- 那些坑你沒商量的程式碼死迴圈
- Oracle PL/SQL程式碼中的註釋OracleSQL
- 9個最有趣的程式碼註釋
- HTML 程式碼註釋規範HTML
- Java程式碼註釋規範Java
- iOS 註釋方法大全 程式碼塊加快捷鍵註釋iOS
- 如何優雅地寫註釋:找到程式碼註釋的黃金平衡點
- 竟有如此沙雕的程式碼註釋!
- 10個最“優秀”的程式碼註釋
- java中程式碼的註釋和快捷鍵Java
- 遠離程式碼註釋的 5 個理由
- Pycharm 程式碼註釋風格模板PyCharm
- jvm執行程式碼註釋部分JVM行程
- 你看那程式碼,好像一條鏈哎
- 改變Emacs下的註釋程式碼方式以支援當前行(未選中情況下)的註釋/反註釋Mac
- 作為 Gopher,你知道 Go 的註釋即文件應該怎麼寫嗎?Go
- 如何把程式碼中的註釋批次刪除
- 匹配css程式碼註釋的正規表示式CSS