我在軟件行業(yè)已經(jīng)工作5年了,既和優(yōu)秀的程序員共事過(guò),也見(jiàn)過(guò)許多糟糕的程序員。我們被教育編寫(xiě)代碼以使程序正常運(yùn)轉(zhuǎn),新手通常非常關(guān)注輸出。如果代碼運(yùn)行良好,他們就會(huì)認(rèn)為事情已經(jīng)完成了,部分人甚至在未來(lái)的職業(yè)生涯中養(yǎng)成了這種習(xí)慣。
然而,一個(gè)優(yōu)秀程序員所應(yīng)該具有的最重要素質(zhì)之一,就是改進(jìn)自己代碼的能力。本文將討論五種改進(jìn)代碼的技巧,這將幫助新手以及更有經(jīng)驗(yàn)的程序員改進(jìn)他們的編碼。
每個(gè)程序員的編碼方式都不一樣。他們形成了一套自己習(xí)慣的方式來(lái)編寫(xiě)代碼。就像寫(xiě)字一樣,它是隨著練習(xí)而發(fā)展的,我們需要學(xué)習(xí)如何改進(jìn)這一過(guò)程。
把大部分時(shí)間花在分析上
大多數(shù)程序員在查看完需求后就直接開(kāi)始編碼,這種無(wú)知行為在軟件行業(yè)的菜鳥(niǎo)中相當(dāng)普遍。他們通常認(rèn)為編碼是解決方案的主要部分,但事實(shí)并非如此。一位高級(jí)開(kāi)發(fā)人員曾經(jīng)告訴我:用70%的時(shí)間分析,在剩下的時(shí)間里編碼。
這樣就不必在最后還花時(shí)間修復(fù)故障和優(yōu)化代碼。大多數(shù)人可以通過(guò)Google搜索邏輯來(lái)編寫(xiě)代碼,但是一個(gè)真正的程序員知道如何在匆忙進(jìn)行編碼之前進(jìn)行適當(dāng)?shù)姆治觥?/p>
怎么做:
無(wú)論何時(shí)處理何事,首先分析現(xiàn)有代碼,運(yùn)行并調(diào)試現(xiàn)有功能。然后必須想出一個(gè)解決方案,在其中可以添加功能而不破壞應(yīng)用程序的現(xiàn)有流程。做到了這一點(diǎn),就可以開(kāi)始編寫(xiě)代碼了。
尋找問(wèn)題的多種解決方案
大多數(shù)程序員都在尋找解決方案。找到之后,他們會(huì)面臨不同的問(wèn)題。然而,花更多時(shí)間尋找問(wèn)題的多種解決方案有很多好處:
邏輯思維將隨著時(shí)間而增強(qiáng)
可以從多個(gè)備選方案中選擇最佳解決方案
解決問(wèn)題的方法將有所改進(jìn)
這種方法將幫助你形成編程后期所需的批判性思維。優(yōu)秀的程序員應(yīng)提供多種解決方案,以便可以根據(jù)速度、內(nèi)存和其他因素選擇最佳方案。
怎么做:
如果無(wú)法找到多個(gè)解決方案,可以上網(wǎng)搜索。在StackOverflow和CodeProject等平臺(tái)上,肯定能找到解決問(wèn)題的替代方法。這樣,你就會(huì)慢慢養(yǎng)成針對(duì)單個(gè)問(wèn)題尋找更多解決方案的習(xí)慣。
不要只關(guān)注自己的事
至少對(duì)編碼來(lái)說(shuō)確實(shí)如此,你應(yīng)該嘗試定期閱讀其他人的代碼。
正如我所說(shuō),每個(gè)人都有獨(dú)特的編碼風(fēng)格。閱讀其他人的代碼將為我們提供更多有益的啟發(fā)。通過(guò)閱讀項(xiàng)目團(tuán)隊(duì)中其他開(kāi)發(fā)人員的代碼,我學(xué)到了很多東西。這也將幫助你了解全局。如果一直自己編寫(xiě)代碼,那么將不熟悉應(yīng)用程序的其他部分。
怎么做:
一旦完成自己的工作,就開(kāi)始閱讀其他開(kāi)發(fā)人員提交的代碼。這將有助于了解他們的思考過(guò)程,并進(jìn)一步了解產(chǎn)品。
測(cè)試耐心
單元測(cè)試比大多數(shù)開(kāi)發(fā)人員意識(shí)到的更加重要。程序員認(rèn)為單元測(cè)試的主要目的是覆蓋代碼,但事實(shí)并非如此。單元測(cè)試可刪除不需要的代碼行,改進(jìn)代碼和程序的整體應(yīng)用性能。
怎么做:
堅(jiān)持為模塊編寫(xiě)單元測(cè)試用例。努力實(shí)現(xiàn)高達(dá)90%的代碼覆蓋率,并在此過(guò)程中刪除不必要的部分。盡量與其他開(kāi)發(fā)人員討論方案,以免錯(cuò)過(guò)任何重要的內(nèi)容。
在更新代碼之前自我充電
如果不了解最新的技術(shù)功能,那么如何確保自己的代碼是最新的呢?大多數(shù)軟件會(huì)隨著時(shí)間的流逝而消亡,正是因?yàn)殚_(kāi)發(fā)人員忽略了更新代碼以進(jìn)行優(yōu)化。例如下面的C#代碼:
在舊方法中,首先檢查對(duì)象是否為null,然后檢查該對(duì)象中的特定值是否可用。之后,我們才將該值分配給變量。
在新方法中,使用6.0版中引入的新C#功能。這樣可以直接查詢對(duì)象的屬性。并且在屬性為null的情況下,它不會(huì)引發(fā)null引用異常,而是返回null值。
怎么做:
關(guān)注科技博客,閱讀關(guān)于新功能的文章,并在項(xiàng)目中使用它們。如果可能的話,也嘗試在工作項(xiàng)目中應(yīng)用它們。這有助于自我提升,同時(shí)維持代碼的健康和更新。
不要僅僅滿足于找到解決方案,優(yōu)秀程序員的目標(biāo)是——尋找最優(yōu)解。
責(zé)編AJX
-
編碼
+關(guān)注
關(guān)注
6文章
957瀏覽量
54924 -
源代碼
+關(guān)注
關(guān)注
96文章
2946瀏覽量
66882
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論