国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼?

這篇具有很好參考價值的文章主要介紹了作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

  • 整潔的代碼

  • 有意義的命名

    • 函數(shù)命名

    • 變量命名

  • 函數(shù)的定義

  • 注釋的規(guī)范

  • 代碼的長度

  • 代碼的對齊

我寫代碼已經(jīng)有好幾年了,最近看了一本書叫做《代碼整潔之道》。我發(fā)現(xiàn)這本書中介紹的一些內(nèi)容對我來說非常有啟發(fā)性。書中提到的一些方法和技巧讓我重新審視了自己的代碼風格,讓我更加注重代碼的可讀性和可維護性。例如,書中提到了如何給變量和函數(shù)命名,編寫注釋和文檔,以及如何避免代碼重復等等。這些技巧和方法都非常實用,我會在今后的編程工作中盡可能地應(yīng)用它們來提高我的代碼質(zhì)量。?

整潔的代碼

來讓我們思考一個問題,什么樣的代碼才算是好代碼?

關(guān)于這一點我大概整理了一些自己的看法,羅列了之后如下所示:

準確性

可以通過測試用例,滿足具體應(yīng)用場景。

簡介性

沒有重復性的代碼,簡潔明了,沒有過多的繁瑣類的封裝,函數(shù),方法。

看到這里,你可能會想,說起來很能理解,但是實際工作中又該如何注意呢?別急,我們來看下邊這個反面案例:

?作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼?

這段代碼是早期我在工作時所寫的一段支付代碼,在進行支付之前,先判斷購物車里的商品庫存是否充足,如果充足則進行扣減操作。但是現(xiàn)在回過頭來看這段代碼,你就會發(fā)現(xiàn)存在一些問題。

  • 代碼優(yōu)化分析?首先上邊的代碼在業(yè)務(wù)含義上并沒有什么的問題,不過我們可以在代碼的精煉程度?上進行一些優(yōu)化。

對于參數(shù)校驗,購物車校驗,庫存校驗?,其實我們都可以加入一些類似于斷言組件之類的設(shè)計進行優(yōu)化。

另外一些對象構(gòu)建的代碼其實可以做一些封裝,因為調(diào)用這個接口的同事大多數(shù)時候都不會太愿意去關(guān)心這些參數(shù)的構(gòu)造過程,更多時候我們只需要將它封裝起來,然后通過一個函數(shù)的名字來告訴使用者就可以了。

進行優(yōu)化之后的代碼可以變成如下所示:作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼?

有意義的命名

函數(shù)命名

有的時候,我們對于函數(shù)的命名會有出現(xiàn)“名不副其實”的情況,例如下邊這個案例:

?作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼?

這段代碼中,返回的類型是Map類型,但是函數(shù)的命名卻以List結(jié)尾,這樣就給人有誤解的意思。如果函數(shù)的名字沒法給人很好的易讀性,就需要開發(fā)者再花費額外的時間趣深入理解,這就會顯得很費勁。再看下邊這個案例:作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼??

在這個函數(shù)里面,會自動生成一個隨機數(shù)組,但是數(shù)字的值如果是負數(shù),則會自動變?yōu)?。但是為什么我們不在函數(shù)命名中進行定義呢?例如定義命名為:getNonnegativeArr(int len), 這樣不是更好理解函數(shù)的意思嘛。

變量命名

對于函數(shù)變量的命名不要使用0或者o,1或者l很容易讓人看混,另外變量或者參數(shù)的命名也盡量使其具有意義,例如下邊這個案例所示:

 

例如這個案例中,參數(shù)命名采用了list1,list2,就很讓人容易誤解,不知道哪個參數(shù)是源集合,哪個參數(shù)是需要被比較的子集合。如果我們對它進行一些優(yōu)化,看起來的效果就會明顯不同,例如:作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼??

使用好的變量命名可以讓人清晰了解到這個變量的類型是什么樣的,另外在定義一些具有特殊含義的變量時候可以結(jié)合下具體的業(yè)務(wù)場景。例如下邊這段代碼,需要分別計算工作日 和 周末的訂單流水金額總數(shù),作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼??

其實在這里我們可以賦予一個特殊的業(yè)務(wù)命名來表示,例如下邊這樣的寫法:作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼??

相對于上邊的變量i,j寫法,這種具有業(yè)務(wù)含義的變量命名更加能讓人明確它的具體含義。

函數(shù)的定義

函數(shù)的命名

函數(shù)的命名盡量保證一個函數(shù)只做一件事的原則,不要參雜過多的其他業(yè)務(wù)操作。

函數(shù)的參數(shù)個數(shù)

通常參數(shù)的個數(shù)建議最多設(shè)置在3個左右,如果參數(shù)過多容易讓人看了有誤解,此時可以嘗試用一些類去進行封裝。

函數(shù)的參數(shù)命名

對于有共同含義的參數(shù),我們可以將它命名到同一個變量中,這樣能夠通過業(yè)務(wù)領(lǐng)域去定義他們,方便識別。

對于參數(shù)的命名可以結(jié)合一些工作術(shù)語,例如當我們需要定義一個隊列參數(shù)的時候可以定義JobQueue。

再來看下邊這個案例,我們定義了一個用戶基礎(chǔ)屬性類:

 

在這個案例中的name,number,street,city字段分別表示了用戶所居住的信息,但是如果我們不加以注釋或者沒有了解的同事和使用者預(yù)先說明的話,這些字段的具體含義是很難看出來的。這種時候我們可以嘗試給它加上一些特殊的業(yè)務(wù)前綴來表示,例如下邊兩種寫法:作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼??

不過更好的表示方式還是單獨設(shè)計一個對象來存儲這些具有明確業(yè)務(wù)含義的對象,例如定義一個Address對象來管理它們,例如下邊所示:作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼??

注釋的規(guī)范

不要太依賴于注釋

關(guān)于代碼注釋方面,相信工作了一段時間的開發(fā)都會有以下想法:不太相信代碼注釋所寫的內(nèi)容。為什么會有這樣的想法呢??我感覺主要原因還是和代碼的不斷迭代有關(guān),隨著代碼的不斷改動,其內(nèi)部的流程早已經(jīng)和注釋表達的含義背道而馳。所以有時候我們代碼注釋的意義并不是特別大。

有時候如果代碼注釋和核心內(nèi)容不符的時候,它反而成了一段“謊言”的存在。所以我認為:唯一真正好的注釋是你要想辦法去不用寫注釋。

別寫廢話注釋

在我早期工作的時候,這個點確實經(jīng)常會犯,例如定義一個對象的時候,我?guī)缀鯐o每個字段都加入一行注釋,例如下邊這個類:

 

雖然說給每個字段都備注了注釋,看起來也似乎很規(guī)范,但是這樣的做法反而給人感覺寫了一堆廢話。通過每個字段的命名來看,難道它們還能有別的意思嘛?而且時間久了,別人看到這些無用的注釋之后也會自動過濾掉它們的含義。

代碼的長度

通常我們定義的一個類,其包含的代碼量不建議設(shè)計得太大,大部分都濃縮在500行以內(nèi)這個范圍就好了。這是因為通常短的內(nèi)容會比長的內(nèi)容更方便讓人理解,這就好比現(xiàn)如今的人更喜歡刷短視頻,但是對于一些長達幾十分鐘或者幾個小時的短片/電影卻沒有那么感興趣。

除了好閱讀之外,在實際工作中,大家如果使用的電腦配置不高,在電腦運行了很久的情況下再去用編輯器去修改一些篇幅非常大的類,反而會塌癟慢。(我試過用Idea打開一份3000+行數(shù)的代碼文件,挪動一格光標大概會有1秒的延遲)

另外,也并不是說代碼的長度越短越好,有時候適當?shù)目崭衽c換行可以增加代碼片段的可讀性。

代碼的對齊

在編寫代碼的時候,對于變量的對齊格式不同,其實也是有講究的。來看下邊兩組不同代碼的書寫風格:

變量的名稱統(tǒng)一對齊:作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼?

變量的類型統(tǒng)一對齊:作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼??

在工作中,我更加會傾向于使用第二種書寫格式,因為它給我的感覺會讓人更加清晰看到對應(yīng)變量的格式類型是怎樣的。而對于第一種類型而言,給人感覺對于變量的類型不是那么地關(guān)注。

你們有哪些很好的代碼習慣,歡迎分享。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-433556.html

?

?

?

?

?

?

?

?

到了這里,關(guān)于作為一名程序員,如何寫出一手讓同事膜拜的漂亮代碼?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • chatGPT4問世,作為一個程序員應(yīng)當如何去理解?

    chatGPT4問世,作為一個程序員應(yīng)當如何去理解?

    前幾年 AI 發(fā)展也遇到過許多瓶頸,甚至很多AI投資者因為技術(shù)得不到突破而破產(chǎn)。但近幾年AI技術(shù)飛速發(fā)展,特別是今天的主題chatGPT 第一次問世還只是一個幫學生寫作業(yè)的工具,第二次迭代即可完成大部分市場業(yè)務(wù),回答很多刁鉆的問題。 有人測試過問chatGPT一些很難以回答

    2023年04月10日
    瀏覽(19)
  • 【做一名健康的CSDNer】程序員哪幾種行為最傷腎(程序員必看)

    【做一名健康的CSDNer】程序員哪幾種行為最傷腎(程序員必看)

    雖然沒有專門針對程序員這一職業(yè)群體特有的傷腎行為的研究報道,但根據(jù)一般人群的健康風險和生活習慣,程序員由于其特殊的工作模式和環(huán)境,可能更容易出現(xiàn)如下傷腎的行為: 熬夜加班 : 程序員由于項目進度、bug修復等原因,常需長時間熬夜工作,而長期熬夜會導致

    2024年04月23日
    瀏覽(26)
  • 程序員搞副業(yè)經(jīng)驗分享:賣書、做網(wǎng)課,探秘前同事的經(jīng)驗之談

    為了更深入了解程序員如何進行創(chuàng)收,今天與一位曾在幾年前成功通過賣書和網(wǎng)課獲取收益的前同事進行了交流。由于他曾有過豐富的經(jīng)驗,我向他請教了一些相關(guān)經(jīng)驗,以下是我想獲取的信息: 你目前還在通過做網(wǎng)課獲得收益嗎? 沒有。不再從事網(wǎng)課的主要原因有兩點:

    2024年03月09日
    瀏覽(31)
  • 作為程序員,你很有必要了解一下IVX

    作為程序員,你很有必要了解一下IVX

    iVX 是一個“零代碼”的可視化編程平臺,擁有方便的在線集成開發(fā)環(huán)境,不需要下載開發(fā)環(huán)境,打開瀏覽器即可隨時隨地進行項目編輯。iVX 還擁有“一站式”的云資源,通過這一套一站式服務(wù),iVX 可以實現(xiàn)一站式研發(fā)、一站式部署、一站式維護。iVX相當于“一款零代碼可視

    2024年02月15日
    瀏覽(25)
  • 作為一個程序員一定要掌握的算法之遺傳算法

    作為一個程序員一定要掌握的算法之遺傳算法

    目錄 一、引言 1.1 目的 1.2 意義 二、遺傳算法介紹 2.1 遺傳算法的基本思想 2.2 遺傳算法與其他算法的主要區(qū)別 2.3 基于Java的遺傳算法設(shè)計思想 三、遺傳算法的具體實現(xiàn) 3.1?系統(tǒng)功能模塊圖和說明 3.2 代碼和說明 3.2.1 初始化 3.2.2 選擇運算 3.2.3 交叉運算 3.2.4 變異運算 3.2.5 主函

    2024年02月15日
    瀏覽(95)
  • 【作為程序員,你有什么讓人眼前一亮的代碼實現(xiàn)方式?】

    隨著科技的不斷發(fā)展,編程語言也在不斷更新和改進。作為程序員,我們需要選取一種適合自己的高級編程語言來完成項目任務(wù)。下面將介紹常見的三種高級編程語言:Python、Java和C++。 Python Python是一種高級編程語言,具有簡單易學、可讀性強、效率高等特點。它廣泛應(yīng)用于

    2024年02月06日
    瀏覽(27)
  • 什么?作為程序員你還不知道人工智能搜索引擎?

    什么?作為程序員你還不知道人工智能搜索引擎?

    作者 :明明如月學長, CSDN 博客專家,螞蟻集團高級 Java 工程師,《性能優(yōu)化方法論》作者、《解鎖大廠思維:剖析《阿里巴巴Java開發(fā)手冊》》、《再學經(jīng)典:《EffectiveJava》獨家解析》專欄作者。 熱門文章推薦 : (1)《人工智能時代,軟件工程師們將會被取代?》 (2)

    2024年02月10日
    瀏覽(40)
  • 【Github】作為程序員不得不知道的幾款Github加速神器

    【Github】作為程序員不得不知道的幾款Github加速神器

    眾所周知,近幾年國內(nèi)用戶在訪問 Github 時,經(jīng)常間歇性無法訪問 Github 。 接下來推薦幾款 作為程序員不得不知道的 Github加速神器 。 FastGithub 是一款 Github 加速神器,解決github打不開、用戶頭像無法加載、releases無法上傳下載、git-clone、git-pull、git-push失敗等問題。 它支持多

    2024年02月12日
    瀏覽(24)
  • 「必學算法」- 作為一個程序員,你一生中必須掌握的幾種算法

    「必學算法」- 作為一個程序員,你一生中必須掌握的幾種算法

    作為一個程序員,學習算法是不可避免的一個過程。算法不僅可以提高編程能力,也可以讓我們更好地應(yīng)對各種實際問題。在實際編程過程中,我們經(jīng)常會用到一些常見的算法,這些算法具有廣泛的應(yīng)用,掌握它們對提升編程能力和解決實際問題非常有幫助。 下面列舉了一些

    2024年02月17日
    瀏覽(28)
  • 新技術(shù)越來越多,作為程序員,我們應(yīng)該怎么規(guī)劃職業(yè)生涯? | 社區(qū)征文

    新技術(shù)越來越多,作為程序員,我們應(yīng)該怎么規(guī)劃職業(yè)生涯? | 社區(qū)征文

    隨著科技的不斷進步,新技術(shù)不斷涌現(xiàn),對程序員的要求也在不斷提高。作為一名程序員,要想在這個競爭激烈的行業(yè)中立足,就需要制定一份明確的職業(yè)規(guī)劃,不斷學習和掌握新技術(shù),提升自己的職業(yè)能力和競爭力。 首先,程序員需要明確自己的職業(yè)方向和目標。程序員的

    2024年02月06日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包