For investors

股價(jià):

5.36 美元 %
認(rèn)識(shí)達(dá)內(nèi)從這里開(kāi)始

認(rèn)真做教育 專(zhuān)心促就業(yè)

五個(gè)幫助初學(xué)者提高編碼技術(shù)的簡(jiǎn)單方法

在從事軟件開(kāi)發(fā)的這幾年中,我見(jiàn)過(guò)無(wú)數(shù)程序員寫(xiě)的代碼,風(fēng)格迥異,有工作僅兩年就有良好編碼能力的,也有工作七八年代碼寫(xiě)的一團(tuán)亂的,當(dāng)然,我私下里也和這些程序員們溝通過(guò)不少,然后發(fā)現(xiàn)初學(xué)者有很多思想上的誤區(qū)。

首先,他們會(huì)在網(wǎng)上找很多IDE,然后在各種社區(qū)看他們的評(píng)價(jià),兩三天換一個(gè),一個(gè)好的IDE軟件固然重要,但是IDE不能作為寫(xiě)好代碼的標(biāo)準(zhǔn)。

其次,初學(xué)者更多關(guān)注的是代碼的最終結(jié)果。比如一段代碼能成功運(yùn)行了,就認(rèn)為自己實(shí)現(xiàn)了目標(biāo),殊不知從代碼運(yùn)行速度,擴(kuò)展性等方面,還有很多值得改進(jìn)的地方,就是因?yàn)椴蛔⒁膺@些細(xì)節(jié),很多程序員到了職業(yè)生涯的后期,編碼技術(shù)一直未能提升。

壞的編碼習(xí)慣影響的不僅僅是項(xiàng)目進(jìn)度,還會(huì)嚴(yán)重影響自己的職業(yè)生涯,隨著互聯(lián)網(wǎng)的不斷發(fā)展,很多公司的編碼已經(jīng)漸漸的向“標(biāo)準(zhǔn)”靠攏,對(duì)于程序員的編碼風(fēng)格和習(xí)慣都很看重。

對(duì)此,我總結(jié)了五種提高代碼質(zhì)量的方法,希望對(duì)初級(jí)程序員以及老程序員能改進(jìn)他們的編碼。

編程學(xué)習(xí)方法

一、將大部分時(shí)間花在分析問(wèn)題上

大多數(shù)的程序員在看完需求之后會(huì)直接跳入編碼階段。這種情況在初級(jí)軟件程序員的身上尤為明顯。初級(jí)程序員的性子都非常急躁,想盡快用更多的項(xiàng)目實(shí)踐來(lái)填充自己的履歷,提高自己的技術(shù),但是這種方法尤不可取,越老道的程序員越會(huì)明白一個(gè)道理:

一個(gè)項(xiàng)目,70%的時(shí)間用于分析,30%時(shí)間敲代碼。

如果不去分析而直接編碼,首當(dāng)齊沖的問(wèn)題就是項(xiàng)目完成后會(huì)出現(xiàn)非常多的BUG,為解決這些BUG,你可以能花費(fèi)很長(zhǎng)時(shí)間,甚至?xí)⒃a推翻重新去寫(xiě)。這樣反而得不償失。

所以每當(dāng)進(jìn)行新項(xiàng)目的時(shí)候,一定要先分析,提出一個(gè)解決方案,梳理成一個(gè)流程圖,然后再進(jìn)行編碼。

二、一個(gè)問(wèn)題,多種方案

“一個(gè)問(wèn)題,多種方案”,是每個(gè)程序員最容易忽略的一點(diǎn),一段代碼一旦完成就過(guò)了,不愿花費(fèi)更多的時(shí)間去多找尋幾種解決方案,雖然說(shuō)這會(huì)花費(fèi)很多時(shí)間,但是如果能堅(jiān)持這個(gè)習(xí)慣,思維邏輯會(huì)有很大增強(qiáng),同時(shí)以后遇到相同的問(wèn)題,你會(huì)找出最佳的解決方案。

這種方法也有助于提高程序員在后期所需要的批判性思維,有了批判性思維,遇到問(wèn)題之后可以迅速整合出多種方案,根據(jù)速度,內(nèi)存等其他因素選擇出最適合的解決方案。

當(dāng)然,很多人在剛開(kāi)始的時(shí)候根本想不出多種解決方案,我這里有個(gè)方法,可以在開(kāi)源平臺(tái)或者社區(qū)搜索。比如StackOverflow和Github

三、多看看別人的代碼

即使在同一個(gè)項(xiàng)目組,也很少有程序員會(huì)互相看同事的代碼,只完成屬于自己的模塊。同理,初學(xué)者也不會(huì)去網(wǎng)上看其他人的代碼。

正如我上面所說(shuō)的,每個(gè)程序員都有獨(dú)特的編碼風(fēng)格。閱讀其他人的代碼會(huì)給自己帶來(lái)很多收益,除此之外,如果進(jìn)行的是同一個(gè)項(xiàng)目,你也能了解到其他模塊的進(jìn)度,能更加熟悉整個(gè)項(xiàng)目

所以在完成工作后,抽出一點(diǎn)時(shí)間來(lái)看看其他同事提交的代碼,進(jìn)一步了解自己的項(xiàng)目。

四、培養(yǎng)自己的耐心

很多開(kāi)發(fā)人員不注重細(xì)節(jié),對(duì)待事情也沒(méi)有耐心,比如項(xiàng)目的單元測(cè)試,很多人對(duì)單元測(cè)試不屑一顧,認(rèn)為單元測(cè)試的主要目的是測(cè)試代碼的覆蓋率,其實(shí)并非如此。

單元測(cè)試可以幫助開(kāi)發(fā)者刪除不必要的代碼行,改善代碼和整體項(xiàng)目的性能。

我建議大家可以耐心一點(diǎn),最好能給每個(gè)模塊編寫(xiě)單元測(cè)試用例。試著實(shí)現(xiàn)90%以上的代碼覆蓋率,刪除不必要的代碼。

五、時(shí)刻更新自己的知識(shí)

如果自己不學(xué)習(xí)新的技術(shù),那么五年之內(nèi),你必將遭到淘汰。

這句話(huà)并不是危言聳聽(tīng),而是時(shí)時(shí)刻刻正在發(fā)生著,就連負(fù)責(zé)維護(hù)開(kāi)發(fā)語(yǔ)言的廠(chǎng)商,每年都在更迭版本,確保語(yǔ)言不會(huì)落后,被市場(chǎng)淘汰。

當(dāng)然,這些語(yǔ)言的技術(shù)更新也會(huì)給開(kāi)發(fā)者帶來(lái)很多便利,比如以下代碼:

//OldapproachIf(sampleObject!=null)

{

If(sampleObject.result!=null)

{

stringresult=sampleObject.result;

}

}

//NewapproachIf(sampleObject!=null)

{

stringresult=sampleObject?.result;

}

在舊的方法中,首先檢查對(duì)象是否為null,然后檢查該對(duì)象內(nèi)部的特定值是否可用。最后才可以將該值分配給變量。

在新方法中,可以直接查詢(xún)對(duì)象的屬性,如果屬性為null,則返回null值,而不是拋出null引用異常。

這個(gè)實(shí)例很好的詮釋了新語(yǔ)言的便捷性。

所以我們要經(jīng)常學(xué)習(xí)心得知識(shí),關(guān)注技術(shù)博客,閱讀有關(guān)新功能的文檔。在新的項(xiàng)目中嘗試使用。

寫(xiě)到最后,以上就是改善自己代碼技術(shù)的五種方式,希望對(duì)大家有所幫助。

【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!

相關(guān)推薦
最新資訊
免費(fèi)試聽(tīng)課程
  • 全部課程
  • IT課程
  • 設(shè)計(jì)課程
  • 運(yùn)營(yíng)課程
Free courses
最新開(kāi)班時(shí)間
  • 北京
  • 上海
  • 廣州
  • 深圳
  • 南京
  • 成都
  • 武漢
  • 西安
  • 青島
  • 天津
  • 杭州
  • 重慶
  • 哈爾濱
  • 濟(jì)南
  • 沈陽(yáng)
  • 合肥
  • 鄭州
  • 長(zhǎng)春
  • 蘇州
  • 長(zhǎng)沙
  • 昆明
  • 太原
  • 無(wú)錫
  • 石家莊
  • 南寧
  • 佛山
  • 珠海
  • 寧波
  • 保定
  • 呼和浩特
  • 洛陽(yáng)
  • 煙臺(tái)
  • 運(yùn)城
  • 濰坊
  • 開(kāi)課名稱(chēng)
  • 開(kāi)班時(shí)間
  • 搶座
  • 咨詢(xún)
  • 開(kāi)課名稱(chēng)
  • 開(kāi)班時(shí)間
  • 搶座
  • 咨詢(xún)
預(yù)約申請(qǐng)?jiān)嚶?tīng)課
收起