九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
程序員的進(jìn)步從閱讀自己的老代碼開始

  英文原文:Look at your old code

  關(guān)于如何成為一個(gè)更優(yōu)秀的程序員這個(gè)問題,互聯(lián)網(wǎng)上比比皆是。而答案大同小異:看書、同行評審、參與開源項(xiàng)目等等。但是,關(guān)于如何檢測自己是不是真的進(jìn)步了這個(gè)問題,卻一直懸而未決。

  我經(jīng)常鼓勵(lì)我的同行說,對于自己寫的代碼,無論是什么語言什么項(xiàng)目都應(yīng)該不遺余力地盡可能長時(shí)間地保存下來,放到安全的地方(即 GIT/ SVN)。幾年過去之后,再拿出來翻一翻?;剡^頭來看自己的代碼,會(huì)有一種神奇的喜劇效果,“OMG,這么狗屎的代碼居然是我寫的??!”,但是相信我,沒有比重新糾正這些項(xiàng)目和游戲代碼更有成就感的了。

  上周末我在整理我七年前保存的一堆 Ruby 源文件時(shí),發(fā)現(xiàn)了這個(gè)文件:fizzbuzz.rb。盡管曾經(jīng)的我對此不屑一顧,但是現(xiàn)在,我,頓時(shí)心花怒放、興高采烈:

# 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

12Fizz4BuzzFizz78FizzBuzz11Fizz1314FizzBuzz1617Fizz19BuzzFizz2223FizzBuzz26Fizz2829FizzBuzz3132Fizz34BuzzFizz3738FizzBuzz41Fizz4344FizzBuzz4647Fizz49BuzzFizz5253FizzBuzz56Fizz5859FizzBuzz6162Fizz64BuzzFizz6768FizzBuzz71Fizz7374FizzBuzz7677Fizz79BuzzFizz8283FizzBuzz86Fizz8889FizzBuzz9192Fizz94BuzzFizz9798FizzBuzz

  狗屎的時(shí)刻來了,看著這些代碼,我竟然給自己點(diǎn)了幾個(gè)贊:

  • 幸虧我寫了點(diǎn)注釋,我記起來了,我是在 2007 年 2 月的時(shí)候,看了 Jeff Atwood 的書之后,突發(fā)奇思妙想寫了這段代碼。我可真有先見之明。
  • 這段代碼結(jié)果很正確。
  • 可讀性真 TM 高,嘿嘿。

  不過,我可沒有盲目地沾沾自喜??粗@些代碼,我有了一些新的想法:

  • if 條件語句得重寫,這樣能提高可讀性。
  • 數(shù)學(xué)模型執(zhí)行了兩次。
  • 由于代碼里面的1、100、3、5 這些詭異的數(shù)字,使得想要在文本中做點(diǎn)改動(dòng)變得很難。
  • 無法測試。

  幾分鐘之后,我知道該如何改進(jìn)了。以條件語句為例:

  Ruby 語言允許我們將 if 放在代碼塊后面,更易于閱讀。所以,我們可以稍微精簡一點(diǎn)代碼空間:

# 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}

  然后我開始好好寫 FizzBuzz 文件的新版本,希望下一個(gè) 7 年后能再次看到它。

  只有當(dāng)我們回過頭去看看曾經(jīng)寫的代碼,我們才會(huì)真正明白自己取得了多么大的進(jìn)步。這種創(chuàng)新自我的學(xué)習(xí)方式,常常會(huì)帶給你美好的回憶。就在一個(gè)月以前,我找出了我 10 年前,還在讀大學(xué)的時(shí)候,創(chuàng)作的一個(gè)游戲。盡管里面有很多 bug,但是因?yàn)榫幊趟降奶岣撸液芸炀屯晟瞥晒Α?/p>

  曾經(jīng)的代碼代表了曾經(jīng)的我們,蘊(yùn)含了曾經(jīng)的我們是如何艱辛創(chuàng)作的歷程,展現(xiàn)了我們的缺陷,我們的優(yōu)勢,我們的發(fā)展和進(jìn)步。它們能敦促你對其他程序員時(shí)刻保持謙虛和耐心。這是你在這個(gè)計(jì)算機(jī)世界的進(jìn)化史,寶貴無比。所以,請務(wù)必好好保存你寫的所有代碼。它們是你的孩子,是你的驕傲。

  譯文鏈接:http://www.codeceo.com/article/look-your-old-code.html
  翻譯作者:碼農(nóng)網(wǎng) – 小峰

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
我如何回答編碼面試問題的框架
簡單的10個(gè)Python技巧和竅門
25 條超棒的 Python 一行代碼
【100 種語言速成】第 1 節(jié):Python
為什么我們無法寫出真正可重用的代碼?
有Java基礎(chǔ)的程序員,是如何看待Python這位少女的?
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服