從6個方面淨化你的Js程式碼
阿新 • • 發佈:2021-08-16
記錄一下怎樣寫出整潔規範的程式碼,用於共勉進步。對於什麼是整潔的程式碼,書中給出了大師們的總結:
Bjarne Stroustrup:優雅且高效;直截了當;減少依賴;只做好一件事
Grady booch:簡單直接
Dave thomas:可讀,可維護,單元測試
Ron Jeffries:不要重複、單一職責,表達力(Expressiveness)
其中,我最喜歡的是表達力(Expressiveness)這個描述,這個詞似乎道出了好程式碼的真諦:用簡單直接的方式描繪出程式碼的功能,不多也不少。
可讀性程式碼就是可維護性程式碼!
1、注重命名
為一個事件命名是很困難的。雖然困難但是非常有必要。
想象以下,將兩個數組合併成一個數組,並生成一個唯一值的陣列。那麼你會怎麼命名它呢?我們也許會這樣命名?
function mergeNumberListIntoUniqueList(listOne, listTwo) {
return [...new Set([...listOne, ...listTwo])]
}
上面的命名並不糟糕,但是還不是很友好。你可以將一個功能函式拆分為兩個功能函式,這樣命名更友好和函式複用性更好。
function mergeLists(listOne, listTwo) {
return [...listOne, ...listTwo]
}
function createUniqueList(list) {
return [...new Set(list)]
}
2、IF語句簡化
假設我們有下面的程式碼:
if(value === 'duck' || value === 'dog' || value === 'cat') {
// ...
}
我們可以這樣解決:
const options = ['duck', 'dog', 'cat'];
if (options.includes(value)) {
// ...
}
將亂七八糟的條件判斷放到一個變數中儲存,比看臃腫的表示式要好很多。
https://www.houdianzi.com/ logo設計公司
3、及早返回
有下面的程式碼:
function handleEvent(event) {
if (event) {
const target = event.target;
if (target) {
// Your awesome piece of code that uses target
}
}
}
及早返回使得我們的程式碼更加易讀:
function handleEvent(event) {
if (!event || !event.target) {
return;
}
// Your awesome piece of code that uses target
}
4、解構賦值
在JavaScript中,我們可以對objects和arrays進行解構賦值。
例如:
// object 解構賦值
const numbers = {one: 1, two: 2};
const {one, two} = numbers;
console.log(one); // 1
console.log(two); // 2
// array 解構賦值
const numbers = [1, 2, 3, 4, 5];
const [one, two] = numbers;
console.log(one); // 1
console.log(two); // 2
5、童子軍規則
童子軍有一條規則:永遠保持離開時的露營比你發現它時更整潔。如果你在地面上發現了髒東西,那麼無論是否是你留下的,你都要將它清理乾淨。你要有意地為下一組露營者改善環境。
我們編寫程式碼也是這樣子,如果你在程式碼中發現了髒程式碼,那麼你可以嘗試去修改它,即使是一個沒有被引用到的變數名。
6、程式碼風格
在你的團隊中使用一種程式碼風格,比如限定程式碼縮排的規範是兩空格呢還是四空格;使用單引號呢還是雙引號呢;使用同類的一種框架呢,還是流行兩種解決方案的框架呢...這樣團隊中人員接手專案的成本就會降低,開發人員的心裡減少排斥感~
所以,在開發的工作中為了不給別人造成排斥感,儘量去寫出整潔的程式碼,既方便自己也方便別人!!!