• 招生咨詢熱線:4008-569-579 
  • 手機(jī)版
    用手機(jī)掃描二維碼直達(dá)商品手機(jī)版
招生咨詢熱線
4008-569-579
機(jī)構(gòu)主頁(yè) > 機(jī)構(gòu)新聞 > 開(kāi)源如何提升編程技能
機(jī)構(gòu)主頁(yè) > 機(jī)構(gòu)新聞>開(kāi)源如何提升編程技能

開(kāi)源如何提升編程技能

來(lái)源:北京達(dá)內(nèi)教育        時(shí)間:2023-05-25        熱度:45℃        返回列表

開(kāi)源是很多程序員都會(huì)面臨的問(wèn)題,很多人會(huì)相信接觸的開(kāi)源源技術(shù)越多對(duì)自己的編程技術(shù)提升越快,寫(xiě)出來(lái)的代碼也更好。開(kāi)源可提高編程技能之間有什么相關(guān)性或因果關(guān)系嗎?

閱讀代碼能讓你變得更優(yōu)秀

我在編程生涯的早期就明白我閱讀的代碼越多,我的代碼就能變得更好。我知道,當(dāng)我不得不維護(hù)其他人的代碼時(shí),簡(jiǎn)單和干凈的代碼幾乎總是比花哨或復(fù)雜的代碼好—— 即使有注釋。然而另一方面,當(dāng)我花足夠的時(shí)間去理解復(fù)雜代碼的時(shí)候,我常常能夠?qū)W到新的技巧。不論怎么樣,都能讓我有所提高。

這使得我在那些沒(méi)有代碼審查的地方一再爭(zhēng)取。而當(dāng)沒(méi)有足夠的時(shí)間來(lái)正式執(zhí)行“代碼審查”的時(shí)候,我會(huì)自己瀏覽存儲(chǔ)庫(kù)和閱讀代碼。當(dāng)然,那時(shí)我還被受限于來(lái)自于小團(tuán)隊(duì)的公司資源。

超越語(yǔ)法

在你不得不全力對(duì)付任意編程語(yǔ)言的語(yǔ)法時(shí),也就是學(xué)習(xí)如何充分利用該語(yǔ)言最瑣碎的時(shí)刻。一門語(yǔ)言的語(yǔ)法往往是非常靜態(tài)的,并且如果你出錯(cuò)了,你的編譯器會(huì)向你控訴。更深層次的課程涉及到什么語(yǔ)言最適合解決什么樣的問(wèn)題(“合適的工具做合適的工作”),以及如何用那種語(yǔ)言編寫(xiě)代碼以便于使它高效和可維護(hù)。

學(xué)習(xí)新語(yǔ)言有許多方法:課程,教程,導(dǎo)師,書(shū)籍以及等等。我通常會(huì)結(jié)合這些選項(xiàng)來(lái)學(xué)習(xí)一門新的語(yǔ)言。我注意到,當(dāng)涉及到非語(yǔ)法元素的時(shí)候,這些方法常常非常相似。

閱讀來(lái)自于其他人的實(shí)際部署代碼會(huì)讓你收獲更多。不僅僅是常規(guī)的結(jié)構(gòu)化學(xué)習(xí),你還需要學(xué)習(xí)模式和實(shí)踐方法。語(yǔ)言中所謂“正確”的做事方式并不總是效果最佳的方式。你會(huì)經(jīng)歷邊緣情況,一次性事務(wù)以及意想不到的集成。你也會(huì)找到這些問(wèn)題的解決方案,有好有壞,但如果你認(rèn)真思考的話,那么這正是出來(lái)“推薦做法”的地方。今天的模式就是明天的反面模式。

你可能對(duì)有些事情,例如“總是注釋”,“逗號(hào)放到最后”,“縮進(jìn)x個(gè)空格”有著自己的想法,當(dāng)然你是對(duì)的。我對(duì)提到的這些及編碼的其他方面也有著自己的感受。

有時(shí)候當(dāng)我閱讀其他人的代碼時(shí),如果看到他們做錯(cuò)了,我會(huì)生氣。但是隨著我代碼閱讀量的增加,我開(kāi)始懂得,總會(huì)有一些情形常見(jiàn)于別人的代碼,但我在我自己的代碼中卻未曾遇到過(guò)的,并且我的方法沒(méi)有必要那樣執(zhí)拗。我不僅改變了我的一些觀點(diǎn),而且懂得更加靈活。

開(kāi)源無(wú)處不在

隨著開(kāi)源運(yùn)動(dòng)的發(fā)展,可供閱讀和學(xué)習(xí)的代碼數(shù)量也大幅度增長(zhǎng)。例如Gitlab,GitHub和到BitBucket這些網(wǎng)站就允許我們獲取全功能的應(yīng)用程序,不僅可以閱讀代碼,還可以擺弄。很少有我想要學(xué)習(xí)的東西是不能在開(kāi)源代碼中獲取的。

我以前學(xué)習(xí)新的編程語(yǔ)言,會(huì)把重點(diǎn)放在諸如目錄結(jié)構(gòu)和命名約定這些簡(jiǎn)單的事情上。但是,現(xiàn)在,我會(huì)找一些不同的開(kāi)源項(xiàng)目,然后可以開(kāi)始拼湊常用的方法。我很少?gòu)?qiáng)調(diào)以前那些類型的東西了。

可用的代碼是如此之多,但質(zhì)量卻良莠不齊。當(dāng)我們想要學(xué)習(xí)的時(shí)候,常常搞不清楚哪個(gè)好哪個(gè)不好。那就保持閱讀代碼吧,慢慢地你會(huì)學(xué)會(huì)如何區(qū)分。閱讀“壞”的代碼可以幫助你理解為什么它是“壞”的。關(guān)鍵是不要害怕嘗試任何你覺(jué)得看上去正確的東西,并且當(dāng)你走錯(cuò)路的時(shí)候能夠承認(rèn)錯(cuò)誤,并改正問(wèn)題,然后繼續(xù)前行。

壞的代碼就壞的,是這樣的嗎?

有人會(huì)說(shuō)“壞的代碼比好的代碼要更多更明顯”。sub-reddit致力于壞的代碼。

在這些年里,我寫(xiě)了很多好的代碼和壞的代碼。當(dāng)我看到我以前寫(xiě)的代碼時(shí),我的第一想法就是我怎么會(huì)寫(xiě)這樣的垃圾代碼。這實(shí)際上意味著我還在學(xué)習(xí)中。如果我看到我以前的代碼,覺(jué)得它看上去非常偉大,那么說(shuō)明我并沒(méi)有提高。

那么,我們?cè)趺床拍軓膲牡拇a中學(xué)到東西呢?

你閱讀的壞代碼越多,那么你就越擅長(zhǎng)發(fā)現(xiàn)壞的代碼

當(dāng)你在學(xué)習(xí)和搜索例子的時(shí)候,你會(huì)發(fā)現(xiàn)和使用大量不能工作的代碼。請(qǐng)記住,僅僅因?yàn)樗贿m合你的情況,并不能說(shuō)明它就是壞的代碼。學(xué)習(xí)如何讓它工作能夠使得你變得更優(yōu)秀。

你怎么知道它是壞的代碼?

人們喜歡批評(píng)。閱讀評(píng)論,如果你看到很多“WTF(什么玩意)”,那么可能你看到的正是壞的代碼,試著指出為什么不好的原因。不要只留下“這代碼真爛”這樣的評(píng)論。不要裝得你好像懂得壞代碼的所有需求,要知道,總有一個(gè)它之所以被這樣寫(xiě)的正當(dāng)理由。如果你知道它為什么是壞代碼的原因,那么不妨留下一個(gè)有建設(shè)性的評(píng)論?;蛘摺?/p>

讓它變成好的代碼

放一個(gè)能讓代碼變得更好的pull請(qǐng)求。修正語(yǔ)法,使用更好的方法,添加注釋或修改縮進(jìn):這些都是改進(jìn)代碼的偉大方式。加一個(gè)為什么你推薦改變代碼的解釋。

達(dá)內(nèi)java培訓(xùn)(java.tedu.cn)專家認(rèn)認(rèn)為,當(dāng)我?guī)椭鷦e人學(xué)習(xí)的時(shí)候能學(xué)到更多。如果我認(rèn)為我理解了一個(gè)新的主題,那么我會(huì)找個(gè)人來(lái)試著向他解釋,這能讓我更深刻地理解和記住它,并且讓我快速發(fā)現(xiàn)我是否寫(xiě)了壞的代碼。

回報(bào)

記住開(kāi)放源代碼在你參與進(jìn)去的時(shí)候效果最佳。代碼更改在大多數(shù)項(xiàng)目中都是受歡迎的,但是有很多出力的方法。

測(cè)試開(kāi)源代碼和文件錯(cuò)誤報(bào)告;幫助完成文檔集;寫(xiě)教程和如何做的例子;參加對(duì)話——或者僅僅只是幫助傳播。每一件事都能帶來(lái)改變,并且越多的人參與進(jìn)來(lái)越好!

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部