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