欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
閱讀優(yōu)秀代碼是提高開(kāi)發(fā)人員修為的一種捷徑

我突然想起來(lái),很多程序員都討厭閱讀代碼。來(lái)吧,承認吧! 每個(gè)人都喜歡編寫(xiě)代碼,編代碼是件趣事。 另一方面,閱讀代碼也不容易。 不僅不容易,而且還非??菰?,咱們要面對這一事實(shí)。任何不是你的代碼都不怎樣。(雖然我們沒(méi)有說(shuō)出來(lái),但我們都是這樣想的。)即便是你自己幾個(gè)小時(shí)之前寫(xiě)的代碼,也會(huì )看起來(lái)很爛。時(shí)間越久,看起來(lái)越爛。所以,為什么你要浪費時(shí)間去看其他人的糟糕代碼,而你完全可以利用這段時(shí)間編寫(xiě)你自己的優(yōu)秀代碼。其實(shí)我們可以一試,幾個(gè)小時(shí)之后回頭再看,看看你的代碼是否還依舊優(yōu)秀。如果你不能吸收前輩大師的經(jīng)驗知識,那你永遠都無(wú)法成為一位大師。成為大師的方法之一是,找到一位大師,讓其傾囊傳授其所知。有這種可能么?當然了,有這可能,雖然機會(huì )不大,但你必須極其走運。不過(guò)你不必十分走運,因為我們幸運地處于這樣一個(gè)職業(yè),一個(gè)充滿(mǎn)著(zhù)大師知識和技能的職業(yè),等待我們去汲取吸收,這些東西就在他們所編寫(xiě)的代碼中。你要做的就是去閱讀代碼,當然了,這或許耗時(shí)不少,畢竟沒(méi)有人坐在那里給你講解,但這種方法的成效還很高。打個(gè)比方,要想成為一名卓越的木匠,得觀(guān)察大量結構優(yōu)良的家具。

我喜愛(ài)閱讀代碼,我的直覺(jué)告訴我,你也會(huì )從中獲益頗豐。雖然閱讀過(guò)程惱人并煩人,但其回報是非常值得你為之努力的。說(shuō)到這個(gè),如果你想成為一名卓越的作家,你會(huì )專(zhuān)注于寫(xiě)作么?你或許已經(jīng)嘗試,但你并沒(méi)有走得很遠。大多數的偉大作家也是如饑似渴的讀者,這是一個(gè)普遍事實(shí)。在你能寫(xiě)出任何拿得出手的東西之前,你需要品讀其他偉大作家,吸收不同的風(fēng)格,看看前輩已嘗試過(guò)的東西,從中吸取精華。你的知識會(huì )慢慢增長(cháng),你自己的作品最終會(huì )透露出些許成熟,你也會(huì )找到一種“感覺(jué)”。編寫(xiě)代碼和寫(xiě)作沒(méi)什么不同,如果你都沒(méi)有閱讀過(guò)任何卓越的代碼,你為什么期望自己能寫(xiě)出像樣的代碼呢?你顯然不應該那樣。對于程序員來(lái)說(shuō),閱讀卓越代碼就如同作家閱讀優(yōu)秀書(shū)籍一樣重要(這話(huà)可不是我說(shuō)的,這是Peter Norvig(Google研究院總監)說(shuō)的,他非常優(yōu)秀,大家也要向他學(xué)習了)。

即便所有這些都無(wú)法讓你信服,那這里有一個(gè)不可置否的事實(shí)。對你作為一名專(zhuān)業(yè)開(kāi)發(fā)人員的生存來(lái)說(shuō),善于閱讀代碼至關(guān)重要。如今,任何有一定規模的項目,都是團隊的成果。所以,你通常要處理、修改和擴展大量不是你寫(xiě)的代碼。因此,閱讀代碼可能是你能掌握的最常用并最有用的技能。挺過(guò)這個(gè)難關(guān),好好掌握。

如何閱讀代碼?像某些人一樣……

我已經(jīng)記不清有多少次看到程序員(用鼠標)滾上滾下地看著(zhù)不熟悉的代碼,幾分鐘過(guò)后,他們的臉上浮現出不悅的表情。他們不久后會(huì )宣告說(shuō),那代碼不值一讀,為什么要浪費時(shí)間呢?我們只能用其他方法解決問(wèn)題。我不確定(他們)在期待什么,是通過(guò)潛移默化來(lái)吸收代碼的含義,還是集中精神盯著(zhù)代碼來(lái)得到啟發(fā)?你不能只靠長(cháng)時(shí)間盯著(zhù)代碼來(lái)閱讀代碼,你要理解它并化為己用。這里有一些我喜歡用的技巧,雖然這不是一份詳盡的列表,但我發(fā)現其中有些特別有用。

  • 1. 盡力構建并運行代碼。 這通常是一個(gè)簡(jiǎn)單的步驟,就像你在看可運行的代碼(這和隨機代碼相反)。不過(guò),并非總是如此。通過(guò)構建和執行代碼,你能從中學(xué)到很多上層代碼結構。 說(shuō)到工作代碼,你是否非常熟悉如何構建你的當前項目?雖然構建通常非常復雜,但通過(guò)構建并生成可執行的代碼,你能學(xué)到很多。
  • 2. 不要只注重細節。 你要做的第一件事是,在你正閱讀的代碼中,找到代碼結構和風(fēng)格的。首先瀏覽一下代碼,盡力理解不同代碼段要做什么。這會(huì )讓你熟整個(gè)代碼的上層結構,你也能 領(lǐng)會(huì )到你正處理的代碼的一些構思(良好架構和意大利面條等)。這時(shí)候,你可以找到切入點(diǎn)(不管它是什么,主函數、servlet或控制器等),并查看代碼 如何在那里分支。不要在這上面花過(guò)多的時(shí)間,隨著(zhù)你愈加熟悉代碼,你可以隨時(shí)回來(lái)查看。
  • 3. 確信自己理解所有結構。 除非你碰巧是所用編程語(yǔ)言的首席專(zhuān)家,否則該語(yǔ)言有些它能做的事你可能還不 知 道。當你在瀏覽代碼時(shí),記下所有你或許不熟悉的結構。如果有很多不熟悉的結構,你要做的下一步非常明顯。 如果你不知道代碼要做什么,那你就走不了很遠。 即便只有幾個(gè)你不熟悉的結構,你應當深入查看。你現在是在探索你所用編程語(yǔ)言中你以前不知道的東西,為此花幾個(gè)小時(shí)來(lái)閱讀代碼,我也非常樂(lè )意。
  • 4. 既然你對大多數結構已有很好了解,那現在是該做些隨機深入研究了。 就像步驟2,開(kāi)始瀏覽代碼, 當這 次要挑選一些隨機函數或類(lèi),并開(kāi)始逐行詳細查看。 這是硬仗開(kāi)始的地方,但也是你要取得主要成功的地方。這里的構想,會(huì )形成你正在查看的代碼庫的思維模式。 也不要在這上面花過(guò)長(cháng)的時(shí)間,但在繼續前行之前,你要盡力并極大吸收一些有內容的代碼塊。這個(gè)步驟,你也可以隨時(shí)反復回過(guò)頭來(lái),每次你都會(huì )了解更多的背 景,并收獲更多。
  • 5. 毫無(wú)疑問(wèn),在前面這些步驟中,肯定有你困惑的地方,所以這是你做些測試的最佳時(shí)間。 在測試的時(shí)候,你的麻煩可能會(huì )更少,同時(shí)你也能理解代碼。 我一直感到奇怪,開(kāi)發(fā)人員忽略一套寫(xiě)得很好很全面的測試代碼,而盡力去閱讀并理解某些代碼。 當然了,有時(shí)候并沒(méi)有測試。
  • 6. 如果你說(shuō)沒(méi)有測試,那這聽(tīng)起來(lái)是編寫(xiě)測試的時(shí)候了。 (編寫(xiě)測試)有很多益處,有助于你自己的理解,有助于你提升代碼庫,閱讀代碼時(shí)也能編寫(xiě)代碼,這是該你出手做些事的時(shí)候。 即便已經(jīng)有了測試,通常你也可以編寫(xiě)一些測試,你總能受益的。 測試代碼通常需要換種方式思考問(wèn)題,那些你以前不太明了的概念也會(huì )變得更清晰。
  • 7. 提取奇特的代碼,使其成為單獨的程序。 我發(fā)現閱讀代碼是個(gè)非常有趣的練習,即便只為節奏變化。即便 你不 了解代碼的底層細節,你或許能知道一些代碼在上層結構上要做什么。 什么不提取一些特定的函數,單獨列為獨立的程序。當你在執行小段程序時(shí),調試也會(huì )更簡(jiǎn)單。反過(guò)來(lái)說(shuō),可能還需要一些額外的步驟,才能理解你正查看的代碼。
  • 8. 代碼不干凈?有異味? 為什么不重構它?我并不建議你重寫(xiě)整個(gè)代碼庫,但重構部分代碼,真的有助于 你理 解層次上升一層。 把你理解的函數拿出來(lái),改成獨立的函數。在你知道之前,原來(lái)的大函數看起來(lái)易管理,你可以在腦海中修改它。 重構允許你把代碼變成自己的,無(wú)需完成重寫(xiě)代碼。如果有好的測試,有助于重構,但即便你沒(méi)有好的測試,抽取你確定的函數并做測試。即便測試看起來(lái)完全不充 分,但作為一個(gè)開(kāi)發(fā)人員,你得學(xué)著(zhù)相信你的技能,有時(shí)候你只需努力去做(重構)。(如果你必須重構,你通常都可以把代碼恢復原狀。)
  • 9. 如果沒(méi)什么能幫上忙,那你就找個(gè)閱讀代碼的同伴。 或許并非只有你一個(gè)人能從這代碼中獲益,所以去找 一個(gè) 人,一起閱讀代碼吧。 但你別找專(zhuān)家,他們會(huì )從上層結構上,向你解釋所有東西,你會(huì )錯失那些你自己詳細查看代碼時(shí)所能學(xué)到的細微差別。然而,如果不見(jiàn)效的話(huà),你也不能理解,有時(shí) 候,你能做的最好的事就是去問(wèn)。 向你的同事請教,如果你正在閱讀開(kāi)源代碼,可以在互聯(lián)網(wǎng)上找人問(wèn)問(wèn)。但是你要記住,這是最后一步,而不是第一步。


如果我時(shí)間緊迫,需要快速合理地理解某些代碼,并且我只能挑選上述步驟的其中一個(gè),那我會(huì )選擇“重構”(即:第8個(gè)步驟)。雖然你能理解的東西不會(huì )很多,但那些你領(lǐng)會(huì )的東西,你會(huì )牢牢記住的。 總之,有件事你需要記在心里。如果你新接觸一個(gè)重要的代碼庫,你不可能立即能理解它。這需要數天、數周和數月的潛心努力,接受這個(gè)事實(shí)。即便有一位專(zhuān)家和你在一起,也不能明顯地縮短時(shí)間(。然而,當涉及到代碼庫時(shí),如果你能耐心并有條不紊地閱讀(和編寫(xiě))代碼,你最終能熟悉項目的方方面面,你能成為大牛。你或者是逃避閱讀代碼,經(jīng)常尋求某人幫你講解某事。 我知道我會(huì )成為哪一種人。

尋找閱讀代碼的機遇 – 不要錯失

我們喜歡編寫(xiě)新代碼,是因為我們這次能正確處理問(wèn)題。好吧,也許不是這次,但一定是下次。事實(shí)上是,你經(jīng)常改進(jìn)你的技術(shù),但你從沒(méi)有恰當地處理問(wèn)題。這就是編寫(xiě)新代碼的價(jià)值所在,你可以歷練并磨練你的技能,但閱讀和把玩其他人編寫(xiě)的代碼,(如果沒(méi)有更多的價(jià)值,)也是有同樣多的價(jià)值。你不僅能從中獲得一些有價(jià)值的技術(shù)知識,也能收獲領(lǐng)域知識,領(lǐng)域知識通常仍具更多價(jià)值(畢竟,代碼是文檔的最終形式)。

即便代碼寫(xiě)得很神秘,無(wú)任何慣例可言,但還是有價(jià)值。你知道我在說(shuō)的代碼,它幾乎看起來(lái)晦澀難懂,但不是有意而為之(因某些原因,Perl語(yǔ)言代碼通常是這樣的)。不管什么時(shí)候我看到那樣的代碼,我都會(huì )這樣想:把它想象成只有你破譯它后才能學(xué)到的東西。是的,這是主要的痛楚之處,但要接受它,有時(shí)候你自己也會(huì )因瑣碎的原因而寫(xiě)出那種使人困惑的代碼(否認沒(méi)有用,你知道這是真的)。好了,如果你花些時(shí)間來(lái)閱讀那樣的代碼,你更有可能最終寫(xiě)出同樣的代碼。并不說(shuō)你將會(huì )寫(xiě)出那樣的代碼,但你有能力寫(xiě)出那樣的代碼。最后,態(tài)度通常是最重要的(編注:態(tài)度決定一切)。如果你視閱讀代碼為日常繁瑣的工作,那它就是(繁瑣的工作),并且你會(huì )逃避,但如果你視其為一個(gè)機遇,那好事終將到來(lái)。

編者后話(huà)

你會(huì )經(jīng)常去閱讀優(yōu)秀的開(kāi)源代碼么?歡迎在評論中和大家分享。


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
ABAP程序的功能模塊應用及開(kāi)發(fā)步驟
測試驅動(dòng)開(kāi)發(fā)TDD簡(jiǎn)介入門(mén)
2年重寫(xiě)10年279萬(wàn)行代碼……全文一字一字看完,真的感同身受
中國軟件-任何人都可以重構--
嵌入式C高質(zhì)量編程培訓
分享完整的項目工程目錄結構
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久