你的老代碼是你的老師
如何從一個菜鳥程序員脫貧,進入優秀程序員的殿堂,這樣的文章到處都是。很多都是讓你看書,看代碼,多編程多實踐。有了努力就應該有成果,但如何評判自己是否獲得了成長了呢?
和同事聊天時,我時常說,寫過的代碼,都是你的財產,都要保留下來,可以放到github里或其它版本庫里。過一段時間后,或幾年后,再回去看看自己寫的老代碼,可能會讓你哭啼,也可能會讓你驚喜。”我的神呀,這么糟糕的代碼?“,你知道嗎,這是對自己最好的教育和警醒。
不久前,我就翻查了一下一個我幾年前寫的代碼,是一個ruby程序,讓我詫異:
# I am part of the chosen 1/200th!!!! :)
# http://blog.codinghorror.com/fizzbuzz-the-programmers-stairwa
y-to-heaven/
(1..100).each{|i|
if i % 3 == 0 && i % 5 == 0
print 'FizzBuzz'
elsif i % 3 == 0
print 'Fizz'
elsif i % 5 == 0
print 'Buzz'
else
print i
end執行這個程序:
$ ruby fizzbuzz.rb
12Fizz4BuzzFizz78FizzBuzz11Fizz1314FizzBuzz1617Fizz19BuzzFizz22 23FizzBuzz26Fizz2829FizzBuzz3132Fizz34BuzzFizz3738FizzBuzz41Fiz z4344FizzBuzz4647Fizz49BuzzFizz5253FizzBuzz56Fizz5859FizzBuzz61 62Fizz64BuzzFizz6768FizzBuzz71Fizz7374FizzBuzz7677Fizz79BuzzFiz z8283FizzBuzz86Fizz8889FizzBuzz9192Fizz94BuzzFizz9798FizzBuzz
它讓我不禁反思許多:
- 注釋有效,它讓我回憶起,那在是看了Jeff Atwood的書之后寫的。
- 程序的結果是正確的
- 可讀性還不錯
我并不是一味的得意。對于這些代碼,我有了一些改進的意見:
- if條件語句得重寫,可讀性差。
- 有重復執行的代碼。
- 有”魔幻“數字
- 測試不方便。
思考了一會,我想出了改進的方法,比如:
Ruby語言允許我們將if放在代碼塊后面,更易于閱讀。
# I am part of the chosen 1/200th!!!!
# http://blog.codinghorror.com/fizzbuzz-the-programmers-stairwa
y-to-heaven/
(1..100).each{|i|
print 'Fizz' if i % 3 == 0
print 'Buzz' if i % 5 == 0
print i if i % 3 > 0 && i % 5 > 0
}我認真的改進了新版本的這個程序,希望多年我在看它時仍會發現還有改進的地方。
回顧過去自己寫的代碼,你能發現自己是否現在有沒有進步,這是一種好的自我進步的方法。比如,我翻出了10年前上大學時的代碼——一個小游戲,很顯然,當時的編程水平不高,因為里面有很多可以改進的地方。這說明這些年我在進步。
過去的代碼體現了過去的自我,是我們自己走過的道路,它記錄了我們的不足,我們的優點,我們的進步。它能警示我們保持一顆謙虛的心,要逐漸進步。所以,請保管好你的代碼,它們是你的見證。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!