成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

想快速成為編程高手?這個(gè)技巧必不可少!

譯文
開(kāi)發(fā)
在今天的文章中,我將與大家探討如何閱讀別人編寫(xiě)的代碼。如果大家已經(jīng)擁有這種良好習(xí)慣,那么這些建議也許能夠進(jìn)一步改善您的學(xué)習(xí)效果。

【51CTO.com快譯】 經(jīng)過(guò)這幾年的編程學(xué)習(xí),我認(rèn)為想要提升編碼水平的***途徑就是多看、多寫(xiě),然而閱讀別人的代碼也確實(shí)是快速提升代碼水平的一個(gè)技巧。在今天的文章中,我將與大家探討如何閱讀別人編寫(xiě)的代碼。如果大家已經(jīng)擁有這種良好習(xí)慣,那么這些建議也許能夠進(jìn)一步改善您的學(xué)習(xí)效果。

我要明確地表述這種方式的好處:

  1. 1.如果大家希望能顯著提升編程技能,則需要閱讀其他人的代碼。

  2. 2.如果大家愿意一試,相信我,這絕對(duì)能夠帶來(lái)相當(dāng)直觀的提升效果。

如果您還沒(méi)有,請(qǐng)別猶豫,馬上嘗試吧。

 

編程

一、讀什么代碼?

這個(gè)問(wèn)題非常重要,但同時(shí)也難以解答。我無(wú)法簡(jiǎn)單告訴大家應(yīng)該閱讀哪些代碼,因?yàn)橐鶕?jù)個(gè)人條件而定。但我接下來(lái),會(huì)給出一些宏觀層面的指導(dǎo)意見(jiàn)。

1.閱讀相關(guān)性高的代碼

***的起點(diǎn)就是閱讀您正在使用的插件或者庫(kù)中的代碼。

  • 您喜愛(ài)的WordPress插件代碼。
  • 您經(jīng)常使用的Ruby gem代碼。
  • 您不斷重復(fù)使用的jQuery插件代碼。

這些都是良好的學(xué)習(xí)素材。由于已經(jīng)熟悉其公共API,因此了解其內(nèi)部工作原理會(huì)變得更加簡(jiǎn)單。另外,作為代碼用戶(hù),大家也可以為項(xiàng)目添加文檔、實(shí)現(xiàn)新功能或者以其它方式作出貢獻(xiàn)。

2.閱讀令您印象深刻的代碼

我還記得自己***次看到280 Slides時(shí)的感受,用“印象深刻”這個(gè)詞來(lái)形容絕對(duì)不夸張。接著我就去了解該站點(diǎn)的驅(qū)動(dòng)代碼源自開(kāi)源Cappuccino項(xiàng)目,之后我將這些知識(shí)牢記心中,并在我以后的道路也受益很多。相信在大家的從業(yè)經(jīng)歷中,也一定會(huì)見(jiàn)到過(guò)令您印象深刻的代碼,如果,它屬于開(kāi)源項(xiàng)目,請(qǐng)務(wù)必認(rèn)真研究并將其融入自己的應(yīng)用開(kāi)發(fā)當(dāng)中。

3.閱讀您所尊敬的人編寫(xiě)的代碼

 

閱讀您所尊敬的人編寫(xiě)的代碼

如果大家已經(jīng)擁有一定開(kāi)源軟件編寫(xiě)經(jīng)歷,那么無(wú)疑已經(jīng)結(jié)識(shí)了不少值得膜拜的大牛。我們可以認(rèn)真閱讀他們編寫(xiě)的代碼,并在贊嘆之余借此充實(shí)自己的頭腦。當(dāng)然,即使沒(méi)有,想要找到理想的學(xué)習(xí)對(duì)象也絕非難事。

4.閱讀您能夠切實(shí)理解的代碼

很多有冒險(xiǎn)精神的朋友,可能更喜歡直接投身于Ruby on Rails、Drupal或者jQuery等大型項(xiàng)目當(dāng)中。但我個(gè)人的建議,是大家***能先從易于理解的代碼入手。

大型項(xiàng)目的活動(dòng)組件太多,大家可能掙扎于概念當(dāng)中而無(wú)法快速汲取經(jīng)驗(yàn)。這種混亂會(huì)導(dǎo)致沮喪,甚至在理解當(dāng)中消磨了自己的學(xué)習(xí)熱情。這時(shí)如果先挑選小型項(xiàng)目進(jìn)行閱讀,會(huì)讓您能夠立刻掌握業(yè)務(wù)邏輯,并專(zhuān)注于研究其中的技術(shù)細(xì)節(jié)。

 

[[180156]]

二、如何閱讀

說(shuō)到這里,新的問(wèn)題來(lái)了——我們?cè)撊绾伍喿x代碼?我擁有比較豐富的閱讀代碼的經(jīng)驗(yàn),所以下面我要與大家分享自己的一點(diǎn)心得。

閱讀代碼,應(yīng)該是既需要廣度也需要深度

廣度:看的是代碼的整體架構(gòu),比如模塊劃分與組織,設(shè)計(jì)模式的運(yùn)用等等

深度:挑選自己感興趣的模塊,深入理解學(xué)習(xí)他的具體實(shí)現(xiàn)

1.著眼于宏觀

假設(shè)大家已經(jīng)了解了所要閱讀代碼的宏觀作用。如果還沒(méi)有,那我建議大家通過(guò)網(wǎng)站、教程、文檔乃至其它來(lái)源先弄清手頭這些代碼的基本用處。

我認(rèn)為***步應(yīng)該是著眼于項(xiàng)目結(jié)構(gòu)。根據(jù)您所選擇的實(shí)際代碼庫(kù)規(guī)模,這***步的實(shí)際強(qiáng)度也有所區(qū)別,不過(guò)一般來(lái)講應(yīng)該不會(huì)耗費(fèi)太多時(shí)間。

編程組織結(jié)構(gòu)

首先,關(guān)注文件結(jié)構(gòu)。大家可以使用TextMate等擁有文件夾層級(jí)視圖的編輯器作為輔助手段。上圖所示即為一份清晰的Twitter Ruby gem視圖。

這一步的目的是熟悉源代碼。了解哪些文件包含/要求/加載其它文件,主體代碼在哪里,是否使用了命名空間等等。了解了這些基本情況下,開(kāi)始深入細(xì)節(jié)。

2.記錄下您的發(fā)現(xiàn)

閱讀代碼不應(yīng)該是一種被動(dòng)的行為。我建議大家隨時(shí)添加評(píng)論,記錄下您的假設(shè)并總結(jié)您理解中的程序流程。您***次閱讀后的結(jié)論可能類(lèi)似下面這種形式:

  1. # I think this function is called after 'initialize'  
  2. # What does this equation even do? 
  3. # Pretty sure this variable loses scope after line 17 

而在理解了整個(gè)進(jìn)程后,您可以清理掉這些評(píng)論,或者寫(xiě)下更有意義且更為準(zhǔn)確的意見(jiàn)。

3.進(jìn)行測(cè)試

希望您選定的項(xiàng)目擁有測(cè)試套件。如果沒(méi)有,大家可以直接跳過(guò)此章節(jié)(或者另選一個(gè)包含測(cè)試套件的項(xiàng)目)。

將測(cè)試作為代碼閱讀起點(diǎn)非常重要,因?yàn)槠渲杏涗浟舜a所應(yīng)完成的既定目標(biāo)。而且無(wú)論代碼質(zhì)量多高,查看測(cè)試結(jié)果都能幫助我們更清晰地理解原程序員的意圖。在閱讀時(shí),確保測(cè)試套件能夠正常運(yùn)行,這將保證您當(dāng)前的開(kāi)發(fā)環(huán)境配置正確。

4.執(zhí)行、變更、再執(zhí)行

誰(shuí)說(shuō)閱讀代碼就沒(méi)法動(dòng)手參與?大家可以嘗試改動(dòng)現(xiàn)有項(xiàng)目再重新調(diào)整,從而真正理解其設(shè)計(jì)思路。大家不妨添加一項(xiàng)小功能,或者設(shè)置更為廣泛的日志記錄機(jī)制,從而輸出各個(gè)階段的代碼。如此一來(lái),我們的閱讀過(guò)程就更像是參與一場(chǎng)冒險(xiǎn),而非面對(duì)一本晦澀的小說(shuō)。相信我,這種方法非常有效。

5.重復(fù)再重復(fù)

在讀完一套代碼庫(kù)后,選擇另一套繼續(xù)進(jìn)行。您閱讀過(guò)的代碼越多,您的學(xué)習(xí)速度就越快,并越能夠享受這種愉快的學(xué)習(xí)方式。

三、從哪里入手

 

GitHub

我個(gè)人的閱讀代碼旅程始于GitHub。找個(gè)適合自己的項(xiàng)目,馬上開(kāi)始學(xué)習(xí)——GitHub是一座巨大的寶庫(kù),感謝開(kāi)源精神讓我們擁有如此珍貴的資源可供利用!

原文標(biāo)題:One Sure-Fire Way to Improve Your Coding

原文作者:Jerod Santo

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:陶家龍 來(lái)源: 51CTO
相關(guān)推薦

2012-08-03 10:30:22

JavaScript

2011-03-21 14:08:57

2011-05-30 16:38:46

SEO

2023-08-22 14:20:21

2009-06-25 09:56:14

JavabeanJava

2013-07-24 09:22:59

BYOA自備應(yīng)用程序云應(yīng)用

2013-08-26 10:10:23

2021-03-21 22:32:23

5G網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2014-12-01 15:18:31

虛擬機(jī)DockerLinux

2018-01-10 22:31:07

機(jī)器學(xué)習(xí)開(kāi)源開(kāi)發(fā)

2019-06-06 14:08:37

數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)分析數(shù)據(jù)報(bào)表

2017-09-20 17:10:43

災(zāi)備

2009-07-01 11:08:21

Firefox插件推薦

2009-12-23 17:17:55

Linux高手

2018-06-05 16:32:04

程序員編程工具新手

2024-05-23 08:12:45

Rust前端開(kāi)發(fā)JavaScrip

2022-03-30 16:13:27

元宇宙CDN負(fù)載均衡

2022-06-24 16:44:47

人工智能機(jī)器人機(jī)器學(xué)習(xí)

2020-05-18 13:35:03

Web前端開(kāi)源框架

2011-03-22 15:58:35

私有云
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产视频三区 | 国产成人精品免高潮在线观看 | 蜜桃免费一区二区三区 | av天天干 | 中国一级特黄真人毛片免费观看 | 亚洲二区在线观看 | 国产亚洲一区二区三区 | 久久久久国产一区二区三区 | 久久久国产亚洲精品 | 久综合 | 日韩欧美三级电影 | 中文字幕精品一区二区三区在线 | 久久久久欧美 | 人人草天天草 | 91高清视频 | 国产日产欧产精品精品推荐蛮挑 | 色射综合| 久久av在线播放 | 最新中文字幕在线 | 亚洲人成网站777色婷婷 | 一区 | 免费色网址 | 欧美日韩综合一区 | 97超碰站 | 国产日韩一区二区三免费 | 中文字幕一区二区三区精彩视频 | 99久久精品国产一区二区三区 | 99久久99| 91成人在线视频 | 碰碰视频| 精品国产视频在线观看 | 亚洲综合网站 | www.日日干 | 一区二区三区视频在线观看 | 麻豆成人在线视频 | 国产在线a| 久久一区二区精品 | 在线观看av网站永久 | 成人伊人网 | 久久国产精品免费视频 | 国产精品99999 |