在工作中,我們大部分的時(shí)間都是在閱讀代碼,閱讀別人的代碼也是我們工作中的一部分,真正花在寫代碼上的時(shí)間其實(shí)并不多。
我們應(yīng)該都有這樣的體會,那就是剛?cè)肼氁患倚鹿荆枰S護(hù)公司的一些項(xiàng)目代碼,這個(gè)時(shí)候相信有的小伙伴們就很痛苦了,因?yàn)槊總€(gè)人寫代碼的風(fēng)格和編碼水平都是不一樣的,好的代碼更容易理解和易讀。
工作中,能很快熟悉別人的代碼,可以提升我們工作的效率,那么怎樣才能提高代碼質(zhì)量以及可讀性呢?
代碼評審
為什么要進(jìn)行代碼評審?
1、提高質(zhì)量
2、及早發(fā)現(xiàn)潛在缺陷與 BUG,降低事故成本。
3、促進(jìn)團(tuán)隊(duì)內(nèi)部知識共享,提高團(tuán)隊(duì)整體水平
4、評審過程對于評審人員來說,也是一種思路重構(gòu)的過程。幫助更多的人理解系統(tǒng)。
不知道你們的公司有沒有代碼評審環(huán)節(jié),我現(xiàn)在的公司是沒有這個(gè)環(huán)節(jié),其實(shí)我覺得代碼評審還是非常有必要的,自己的代碼被別人評審的時(shí)候,我們要保持一顆虛心的態(tài)度,認(rèn)真傾聽他人對自己代碼的一些建議,虛心請教,這樣我們會更容易突破自己的瓶頸,編碼的質(zhì)量會更上一個(gè)臺階。
每天抽出一個(gè)小時(shí),團(tuán)隊(duì)里每個(gè)人都對其他人的代碼進(jìn)行評審也是非常好的,不僅可以找到各自身上寫代碼的缺陷和毛病,還可以學(xué)習(xí)別人寫代碼的優(yōu)點(diǎn)。畢竟評審過程對于評審人員來說,也是一種思路重構(gòu)的過程。
持續(xù)學(xué)習(xí)能力
終身學(xué)習(xí)對程序員也非常重要,這個(gè)行業(yè)新技術(shù)日新月異,曾經(jīng)C++還風(fēng)靡全球,今天就換Java橫掃千軍,Python、node.js、Go這些新興的語言也層出不窮。這意味著程序員要不斷學(xué)習(xí)新東西,很難一招鮮吃遍天。
面對如此多的技術(shù),我認(rèn)為最重要的還是要牢固計(jì)算機(jī)體系基礎(chǔ)知識,這個(gè)是編程的內(nèi)功心法,如果不扎實(shí)一定很難走遠(yuǎn)。計(jì)算機(jī)體系基礎(chǔ)知識包括算法和數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、編譯原理、計(jì)算機(jī)組成原理、數(shù)據(jù)庫等等。
我之前寫過一篇關(guān)于計(jì)算機(jī)基礎(chǔ)知識的文章,計(jì)算機(jī)基礎(chǔ)知識對程序員來說有多重要?感興趣的小伙伴可以看看,希望對你們有點(diǎn)幫助。
良好的編程習(xí)慣
其實(shí)在工作中,看別人的代碼大概就知道他的編碼水平。養(yǎng)成良好的編程習(xí)慣,對你無論是工作還是技術(shù)發(fā)展本身都有極大的幫助,這能提高你代碼的可讀性,可擴(kuò)展性和整體質(zhì)量,也能提高你同事的工作效率。
代碼注釋
代碼在任何地方都沒有注釋。沒有函數(shù)的功能注釋,沒有類的使用概述,沒有對算法的解釋等等。
即使是寫的最好的代碼也不如注釋更容易被理解。在寫注釋的時(shí)候,要記住你的目的是為解釋代碼塊為什么存在,而不是解釋代碼塊在做什么。注釋能幫助你更好的理解自己和他人的代碼,減少工作量,所以不要忽視他們。
避免深度嵌套
深度嵌套的代碼并不總是很糟糕,但可能會產(chǎn)生問題,因?yàn)樗茈y理解,如果你發(fā)現(xiàn)自己正在編寫一個(gè)雙重,三重甚至四重for循環(huán),那么代碼將可能試圖在超出自身的范圍外查找數(shù)據(jù)。那么你應(yīng)該提供一種方法,使之可以通過包含該數(shù)據(jù)的對象或模塊函數(shù)調(diào)用來請求數(shù)據(jù)。
拒絕長函數(shù)
顧名思義,長函數(shù)是指函數(shù)太長了。雖然沒有一個(gè)特定的數(shù)字表示多少行代碼對于一個(gè)函數(shù)來說“太長”,但當(dāng)你看到這個(gè)函數(shù)時(shí),你就會知道它是不是太長。一個(gè)長函數(shù)意味著包含了太多的功能實(shí)現(xiàn)。一般情況下長函數(shù)應(yīng)該被分解成許多子函數(shù),其中每個(gè)子函數(shù)被設(shè)計(jì)為處理單個(gè)任務(wù)或問題。理想情況下,原始的長函數(shù)將變成一個(gè)子函數(shù)調(diào)用列表,從而使代碼更清晰,更易于閱讀。
重視自測
交付代碼之前反復(fù)自測,這樣能節(jié)省團(tuán)隊(duì)時(shí)間,也能減少線上bug。
文檔編寫
Java程序員不僅要掌握一定的技術(shù)能力,還需要具有一定的文檔編寫能力。良好的文檔能力能幫助我們更好地進(jìn)行開發(fā)。一般來說,軟件項(xiàng)目的發(fā)展需要經(jīng)過需求調(diào)研,概要設(shè)計(jì),詳細(xì)設(shè)計(jì)等一系列的步驟,這些都是編碼前的準(zhǔn)備工作,特別是大項(xiàng)目會把大部分時(shí)間都花在文檔整理上。
重構(gòu)你的代碼
重構(gòu)能改善軟件設(shè)計(jì)。
重構(gòu)使軟件更易理解。
重構(gòu)有助于找到Bug。
重構(gòu)有助于提高編程速度。
強(qiáng)烈推薦參閱 代碼整潔之道 這本書,通過結(jié)合這本書的理論和技巧,在寫代碼的過程中不斷重構(gòu),優(yōu)化,你的代碼質(zhì)量就會逐步提高。
學(xué)會思考
工作中,總是有很多新的需求,遇到新的需求,不要急于上手寫代碼。
編碼之前需要思考以下幾點(diǎn):
- 明確需求,我要做什么?
- 分析思路,我要怎么做?
- 確定步驟,每一個(gè)思路部分用到哪些語句、方法和對象。
- 代碼實(shí)現(xiàn)。
多接觸開源項(xiàng)目
GitHub
是全球最大的開源社區(qū),里面充斥著形形色色的大佬,如果你身邊沒有高級工程師來帶你提升,那這個(gè)社區(qū)絕對是最佳的選擇,閱讀別人的代碼,學(xué)習(xí)代碼風(fēng)格。
最后
其實(shí),作為一名程序員,我們都希望能寫出高質(zhì)量的代碼,我自己也在朝這個(gè)方向努力。文章來源:http://www.zghlxwxcb.cn/news/detail-497173.html
既然選擇了做IT,就要明白,程序員從來不適合語言上的巨人,行動上的小人。只有真正地付出實(shí)踐,從問題中復(fù)盤經(jīng)驗(yàn),才能使自己的編程水平不斷提高。文章來源地址http://www.zghlxwxcb.cn/news/detail-497173.html
到了這里,關(guān)于【程序員】工作中,如何提升自己的編程能力?的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!