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

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

六星教育:程序員的10個編程小技巧,教你寫出高質(zhì)量代碼!

2023-07-12 10:13 作者:六星教育  | 我要投稿

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

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

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

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

3. 提升代碼的可讀性

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

?

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

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

?

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


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



案例

//錯誤的示范:

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),看著看著就暈了,這時可以將所有循環(huán)提取到單獨(dú)的函數(shù)中。


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


// 錯誤示范

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.注釋


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

?


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


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

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


// 錯誤示范

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)“深層嵌套”中的例子來舉例。


// 錯誤示范

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),名稱以小寫字母開頭,之后的每一個單詞首字母都用大寫,比如駱駝的大小寫為camelCase?


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


示例代碼:

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

?

7.函數(shù)命名


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


錯誤的示范:getUserInfo。

正確的示范:getUserBankInfo



8.命名時注意動詞的使用


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


//正確示范

function getUser(){//do something}


9. 常量值所有都大寫


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


//正確示范

const DAYS_IN_A_YEAR = 365;

?


10. 避免變量使用字母


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


//錯誤示范

const q = () => {

????//....

}

//正確示范

const query = () => {

????//....

}//this is also okay

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

????//...

}

?

結(jié)論


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

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

六星教育:程序員的10個編程小技巧,教你寫出高質(zhì)量代碼!的評論 (共 條)

分享到微博請遵守國家法律
布拖县| 安远县| 河东区| 惠水县| 舒兰市| 疏附县| 北宁市| 金湖县| 虞城县| 怀宁县| 武宣县| 宾川县| 白朗县| 黄陵县| 宜兰县| 荥经县| 娱乐| 南乐县| 怀化市| 龙游县| 兴安盟| 裕民县| 营山县| 渭源县| 鹤庆县| 获嘉县| 鸡泽县| 大安市| 霍山县| 项城市| 四会市| 新巴尔虎左旗| 马尔康县| 周口市| 万州区| 双辽市| 四平市| 承德县| 平凉市| 尚义县| 措美县|