最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

六星教育:知道這些編碼小技巧,幫助你提高50%的工作效率

2023-08-10 09:59 作者:六星教育  | 我要投稿

編碼規(guī)范是成為一個(gè)優(yōu)質(zhì)程序員的重要一課,它是編程的樣式的模板。這篇文章六星教育將介紹12中編程規(guī)范及技巧,相信學(xué)習(xí)之后你的代碼一定會(huì)提升一個(gè)檔次。

首先我們要明確,為什么要遵循編碼規(guī)范?遵循這樣的約定有什么好處?

1. 遵循規(guī)范可以寫出干凈簡(jiǎn)潔的代碼

2. 可以代碼的質(zhì)量

3. 提升代碼的可讀性

4. 使代碼維護(hù)更加容易

代碼整潔之道一書的作者羅伯特曾經(jīng)說過:

“干凈的代碼既簡(jiǎn)單又直接。干凈的代碼讀起來像寫得很好的散文。簡(jiǎn)潔的代碼永遠(yuǎn)不會(huì)掩蓋設(shè)計(jì)者的意圖,而是充滿清晰的抽象和直接的控制線?!?-羅伯特·馬?。≧obert C. Martin)

?

1.不要出現(xiàn)莫名其妙的數(shù)字


很多程序員在實(shí)現(xiàn)功能的時(shí)候會(huì)分配一個(gè)沒有明確意義的數(shù)字,用于特定的目的,寫完這個(gè)數(shù)字后沒有即使去做注釋,然后過兩天當(dāng)程序出現(xiàn)問題時(shí),翻看代碼碰到這個(gè)數(shù)字,連自己都忘了它的意義。當(dāng)程序需要固定的數(shù)值參與時(shí),給予特定的名稱。



案例

//錯(cuò)誤的示范:

for(let i = 0; i < 50; i++){

????//do something

}

//正確的示范:

let NUMBER_OF_STUDENTS= 50

for(let i = 0; i < NUMBER_OF_STUDENTS; i++){

????//do something

}

?

2.深度嵌套


有些程序需要使用到無數(shù)次的嵌套循環(huán),看著看著就暈了,這時(shí)可以將所有循環(huán)提取到單獨(dú)的函數(shù)中。


假設(shè)有一個(gè)包含兩層嵌套的數(shù)組,想要拿到最后一個(gè)數(shù)組的值?一般情況下開發(fā)者都會(huì)使用嵌套循環(huán),但不是最佳的辦法??梢試L試使用函數(shù)的反復(fù)調(diào)用來完成操作執(zhí)行相同操作的,這樣一來代碼重復(fù)性更小,更易于閱讀、重用性高。


// 錯(cuò)誤示范

const array = [ [ ['Shoaib Mehedi'] ] ]

array.forEach((firstArr) =>{

????firstArr.forEach((secondArr) => {

????????secondArr.forEach((element) => {

????????????console.log(element);

????????})

????})

})


// 正確示范

const array = [ [ ['Shoaib Mehedi'] ] ]

const getValuesOfNestedArray = (element) => {

????if(Array.isArray(element)){

????????return getValuesOfNestedArray(element[0])

????}

????return element

}

getValuesOfNestedArray(array)

?

3.注釋


注釋是一個(gè)老生常談的話題,很多人不重視,為了快速完成項(xiàng)目忽略注釋,導(dǎo)致后期修改和復(fù)用出現(xiàn)很大問題,得不償失。

?


4.避免創(chuàng)建大函數(shù)


當(dāng)一個(gè)函數(shù)或一個(gè)類需要實(shí)現(xiàn)的功能太多時(shí),建議將其分成多個(gè)小的函數(shù)。

假設(shè)我們需要加減兩個(gè)數(shù)字。我們可以用一個(gè)功能做到這一點(diǎn)。但是好的做法是將它們分為兩部分。如果有單獨(dú)的功能,則可以在整個(gè)應(yīng)用程序中重復(fù)使用。


// 錯(cuò)誤示范

const addSub = (a,b) => {

????// add

????const addition = a+b

????// sub

????const sub = a-b

????// returning as a string

????return `${addition}${sub}`

}


?

//正確示范

// add

const add = (a,b) => {

????return a+b

}

// sub

const sub = (a,b) => {

????return a-b

}

?

5.重復(fù)代碼


重復(fù)代碼也是常見的問題,如遇到此情況,將重復(fù)代碼提取到函數(shù)中。

繼續(xù)用上面的第2點(diǎn)“深層嵌套”中的例子來舉例。


// 錯(cuò)誤示范

const array = [ [ ['Shoaib Mehedi'] ] ]

array.forEach((firstArr) =>{

????firstArr.forEach((secondArr) => {

????????secondArr.forEach((element) => {

????????????console.log(element);

????????})

????})

})


// 正確示范

const array = [ [ ['Shoaib Mehedi'] ] ]

const getValuesOfNestedArray = (element) => {

????if(Array.isArray(element)){

????????return getValuesOfNestedArray(element[0])

????}

????return element

}

getValuesOfNestedArray(array)

?

6.變量命名


變量命名也是有講究的,好的變量命名可以讓代碼更加通俗易懂,一般來說命名遵循以下標(biāo)準(zhǔn),名稱以小寫字母開頭,之后的每一個(gè)單詞首字母都用大寫,比如駱駝的大小寫為camelCase?


函數(shù)和變量都必須遵循此規(guī)則。


示例代碼:

let camelCase = ''const thisIsCamelCase = () => {????//so something}

?

7.函數(shù)命名


函數(shù)的命名基本與上述提到的變量命名規(guī)則基本一樣,但需要注意的是,命名盡量注意詳細(xì),比如我們需要一個(gè)能夠獲取用戶銀行信息的功能,那么要盡量將命名具體化,如下


錯(cuò)誤的示范:getUserInfo。

正確的示范:getUserBankInfo



8.命名時(shí)注意動(dòng)詞的使用


比如我們需要從數(shù)據(jù)庫中獲取用戶信息,函數(shù)的名稱可以是userInfo,user或者fetchUser,但我推薦使用含有動(dòng)詞的命名 getUser。


//正確示范

function getUser(){//do something}


9. 常量值所有都大寫


常量命名都使用全大寫的名稱,并用下劃線分割所有單詞


//正確示范

const DAYS_IN_A_YEAR = 365;

?


10. 避免變量使用字母


在功能性的命名中盡量避免使用單個(gè)字母,不過如果在循環(huán)中,可以忽略這一點(diǎn)


//錯(cuò)誤示范

const q = () => {

????//....

}

//正確示范

const query = () => {

????//....

}//this is also okay

for(let i = 0;i < 10; i++){

????//...

}

?

結(jié)論


從長(zhǎng)遠(yuǎn)來看,遵循代碼編寫規(guī)范,對(duì)開發(fā)者的自身發(fā)展來說是百利而無一害的。每個(gè)項(xiàng)目的生命周期都很長(zhǎng),在很長(zhǎng)的周期中誰也無法確定會(huì)用到之前的哪段代碼,哪個(gè)功能。所以對(duì)現(xiàn)在的每一段代碼負(fù)責(zé),就是對(duì)以后的自己負(fù)責(zé)。加油,程序猿?。?!

以上就是本次分享的全部?jī)?nèi)容,想學(xué)習(xí)更多編程技巧,歡迎持續(xù)關(guān)注六星教育

六星教育:知道這些編碼小技巧,幫助你提高50%的工作效率的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
东光县| 宜良县| 新巴尔虎左旗| 平原县| 泸定县| 河池市| 邵东县| 越西县| 胶州市| 辽中县| 彭泽县| 抚远县| 青海省| 石门县| 新化县| 平江县| 获嘉县| 金门县| 故城县| 中超| 鄯善县| 民县| 大丰市| 威信县| 蒙城县| 温泉县| 四平市| 武功县| 西畴县| 手游| 尖扎县| 彰化县| 蒙阴县| 梨树县| 柯坪县| 肇州县| 阿拉尔市| 玉林市| 阿拉善盟| 吉林市| 宁武县|