程式設計師看不懂自己寫的程式碼 是不可饒恕的
最近遇到一個事情讓我大為不解。一個程式設計師自豪的宣稱他完全看不懂自己一週前寫的任何程式碼。我真的想探明他的這種自豪感從何而來,但無解。他是在驕傲每天寫如此多的程式碼嗎?有人會願意聘請這樣的人去寫程式嗎?
首先讓我明確的闡明我對此事的觀點:不能理解一週前或一年前自己寫的程式碼,這對一個職業程式設計師來說是不可饒恕的。
我就把話放這。現在,讓我詳細的說一下。我已經兢兢業業的程式設計編了15年。很早我就接受了一些程式設計習慣,至今沒有改變。我能輕鬆的看懂我一年前寫的程式碼,甚至2年前,12年前。各種語言的程式碼,在各種業務領域裡。演算法,解析器,web應用,嵌入式控制器,指令碼,連結,所有你能想到的。即使有些很早的程式碼,理解起來有些困難,但我仍然能從中看出一些模式的影子。
我能做到這些,主要的方法是認識到程式碼必須易讀。自己易讀,別人也易讀。程式碼如果不可讀,那就會跟不可用的程式碼一樣糟,甚至更糟。如果一段時間後你看不懂你自己寫的程式碼,別人就更不可能看懂了,沒有這種可能。不會有任何一個軟體產品會因為你而值得驕傲。
我無法用更大的聲音強調,讓自己的程式碼易讀、易理解是何等的重要。不僅僅是它能讓你的軟體產品更好,更容易被別人維護,同時,這些程式碼也將成為你自己的私人工具箱,你將會在今後的職業生涯裡使用、反覆的使用它們。擁有這樣一個工具箱,你將變得超級的強大,這將是你區別於其他程式設計高手的重要特徵之一。我己經記不清有多少次,當面對一些似曾相識的問題時,我通過回憶,在我的歷史程式碼庫裡搜尋,輕鬆快速的就能找到或整編出問題的解決方案。很顯然,你不能理解的程式碼是進入不了這樣的工具箱裡的。
這樣結束這篇文章似乎有點玩世不恭,我應該解釋一下是如何練就這樣的功力的。坦率地說,這很難用文字描述,但我盡力。
我非常確信,我的這種方法也被作家們(以及任何從事創新性職業的人)使用。一旦你寫完一段程式碼(越小越好),你需要停下來,看看它是否易讀、易懂。讀它,反覆的讀它數次。跳出你對這個問題熟知的環境,想象那些完全不知道上下文情況的人在讀這段程式碼。這樣的一個人能讀懂嗎?如果不能,是因為什麼?從你的由《程式碼大全》去 等好書豐富而成的“程式碼可讀性”百寶箱裡找出所有可以的技巧,應用它們,直到你確信這段程式碼變得易讀為止。
一旦你滿意了,再讀一遍。幾天後再讀一遍。這讓我想起了我寫一些高深技術的文章時,每一個句子,我都要讀上20遍,重寫5次。我寫程式碼也經常是如此。完美可以因天賦而成,也可通過無情的重複和實驗實現。因為我不具有前者,我就一直堅持著後者。
最後,重構,無畏的改進。如果你遇到一段可以更清晰的程式碼,那就讓它更清晰。改進程式碼質量是我們這種職業中一種難以把握的附加任務,但當你遇到一個持續一、兩年,涉及多人的大型專案後,你自然就會領悟其重要。
相關文章
- 看不懂自己寫的程式碼,這對一個職業程式設計師來說是不可饒恕的程式設計師
- oracle的程式設計師犯了不可饒恕的錯誤!Oracle程式設計師
- 程式設計師懵逼時刻:幾個月後,之前自己寫的程式碼也看不懂了?程式設計師
- 菜雞程式設計師是如何寫程式碼的?程式設計師
- 1985年程式設計師是如何寫程式碼的程式設計師
- 寫給程式設計師:當自己的上帝程式設計師
- 程式設計師不僅僅是寫程式碼程式設計師
- 程式設計師如何讓自己變得不可替代程式設計師
- 95% 的 bug 是由程式設計師自己造成的程式設計師
- 程式設計師如何寫出更好的程式碼程式設計師
- 中國程式設計師與美國程式設計師寫程式碼的區別分析程式設計師
- 程式設計師寫程式碼時應該反覆問自己的10個問題程式設計師
- 驚歎!這個盲人程式設計師是這樣寫程式碼的程式設計師
- 程式設計師的工作就只有寫程式碼麼???程式設計師
- 程式設計師:你的程式碼為誰而寫?程式設計師
- 程式設計師如何寫出好程式碼?程式設計師
- 好程式設計師不寫程式碼程式設計師
- 程式設計師這樣寫程式碼程式設計師
- 你是一個編寫可除錯程式碼的程式設計師嗎?除錯程式設計師
- 編寫簡練程式碼是程式設計師的職業修養之本程式設計師
- 【科普】碼農是程式設計師嗎?碼農與真正程式設計師的區別是啥?程式設計師
- 請不要說自己是Java程式設計師Java程式設計師
- 請不要說自己是 Java 程式設計師Java程式設計師
- 我是程式設計師 我為自己代言程式設計師
- 我是程式設計師,我為自己代言程式設計師
- 程式設計師不可不知的7款程式設計工具程式設計師
- 盲人程式設計師是如何程式設計的?程式設計師
- 程式設計師用寫程式碼的方式找女朋友程式設計師
- 優秀程式設計師寫可除錯的程式碼程式設計師除錯
- 寫程式碼的女程式設計師無法賣萌程式設計師
- 為什麼程式設計師總是寫糟糕的程式碼?這3個原因程式設計師
- 當程式設計師寫不出程式碼了……程式設計師
- 程式設計師應該每天寫程式碼程式設計師
- 程式設計師,千萬不要重寫程式碼程式設計師
- 三個程式設計師在寫程式碼程式設計師
- 程式設計師40歲後還在寫程式碼,是幸福還是悲哀?程式設計師
- 寫程式碼如坐禪:你是哪一類程式設計師程式設計師
- 寫程式碼如坐禪:你是哪一類程式設計師?程式設計師