日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

这样写的,一定是辣鸡代码!

發(fā)布時(shí)間:2025/3/16 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 这样写的,一定是辣鸡代码! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

來源:github.com/trekhleb/state-of-the-art-shitcode

  • ???? 以一種代碼已經(jīng)被混淆的方式命名變量

  • ???? 變量/函數(shù)混合命名風(fēng)格

  • ???? 不要寫注釋

  • ???? 使用母語寫注釋

  • ???? 盡可能混合不同的格式

  • ???? 盡可能把代碼寫成一行

  • ???? 不要處理錯(cuò)誤

  • ???? 廣泛使用全局變量

  • ???? 創(chuàng)建你不會(huì)使用的變量

  • ???? 如果語言允許,不要指定類型和/或不執(zhí)行類型檢查。

  • ???? 你應(yīng)該有不能到達(dá)的代碼

  • ???? 三角法則

  • ???? 混合縮進(jìn)

  • ???? 不要鎖住你的依賴項(xiàng)

  • ???? 函數(shù)長的比短的好

  • ???? 不要測試你的代碼

  • ???? 避免代碼風(fēng)格統(tǒng)一

  • ???? 構(gòu)建新項(xiàng)目不需要 README 文檔

  • ???? 保存不必要的代碼


???? 以一種代碼已經(jīng)被混淆的方式命名變量

如果我們鍵入的東西越少,那么就有越多的時(shí)間去思考代碼邏輯等問題。

Good ????????

let?a?=?42;

Bad ????????

let?age?=?42;

???? 變量/函數(shù)混合命名風(fēng)格

為不同慶祝一下。

Good ????????

let?wWidth?=?640; let?w_height?=?480;

Bad ????????

let?windowWidth?=?640; let?windowHeight?=?480;

???? 不要寫注釋

反正沒人會(huì)讀你的代碼。

Good ????????

const?cdr?=?700;

Bad ????????

更多時(shí)候,評(píng)論應(yīng)該包含一些“為什么”,而不是一些“是什么”。如果“什么”在代碼中不清楚,那么代碼可能太混亂了。

// 700ms的數(shù)量是根據(jù)UX A/B測試結(jié)果進(jìn)行經(jīng)驗(yàn)計(jì)算的。 //?@查看:?<詳細(xì)解釋700的一個(gè)鏈接> const?callbackDebounceRate?=?700;

???? 使用母語寫注釋

如果您違反了“無注釋”原則,那么至少嘗試用一種不同于您用來編寫代碼的語言來編寫注釋。如果你的母語是英語,你可能會(huì)違反這個(gè)原則。

Good ????????

//?Закрива?мо?модальне?в?конечко?при?виникненн??помилки. toggleModal(false);

Bad ????????

//?隱藏錯(cuò)誤彈窗 toggleModal(false);

???? 盡可能混合不同的格式

為不同慶祝一下。

Good ????????

let?i?=?['tomato',?'onion',?'mushrooms']; let?d?=?[?"ketchup",?"mayonnaise"?];

Bad ????????

let?ingredients?=?['tomato',?'onion',?'mushrooms']; let?dressings?=?['ketchup',?'mayonnaise'];

???? 盡可能把代碼寫成一行

Good ????????

document.location.search.replace(/(^\?)/,'').split('&').reduce(function(o,n){n=n.split('=');o[n[0]]=n[1];return?o},{})

Bad ????????

document.location.search.replace(/(^\?)/,?'').split('&').reduce((searchParams,?keyValuePair)?=>?{keyValuePair?=?keyValuePair.split('=');searchParams[keyValuePair[0]]?=?keyValuePair[1];return?searchParams;},{} )

???? 不要處理錯(cuò)誤

無論何時(shí)發(fā)現(xiàn)錯(cuò)誤,都沒有必要讓任何人知道它。沒有日志,沒有錯(cuò)誤彈框。

Good ????????

try?{//?意料之外的情況。 }?catch?(error)?{//?tss...????? }

Bad ????????

try?{//?意料之外的情況。 }?catch?(error)?{setErrorMessage(error.message);//?and/orlogError(error); }

???? 廣泛使用全局變量

全球化的原則。

Good ????????

let?x?=?5;function?square()?{x?=?x?**?2; }square();?//?現(xiàn)在x是25

Bad ????????

let?x?=?5;function?square(num)?{return?num?**?2; }x?=?square(x);?//?現(xiàn)在x是25

???? 創(chuàng)建你不會(huì)使用的變量

以防萬一。

Good ????????

function?sum(a,?b,?c)?{const?timeout?=?1300;const?result?=?a?+?b;return?a?+?b; }

Bad ????????

function?sum(a,?b)?{return?a?+?b; }

???? 如果語言允許,不要指定類型和/或不執(zhí)行類型檢查。

Good ????????

function?sum(a,?b)?{return?a?+?b; }//?在這里享受沒有注釋的快樂 const?guessWhat?=?sum([],?{});?//?->?"[object?Object]" const?guessWhatAgain?=?sum({},?[]);?//?->?0

Bad ????????

function?sum(a:?number,?b:?number):??number?{//?當(dāng)我們?cè)贘S中不做置換和/或流類型檢查時(shí),覆蓋這種情況。if?(typeof?a?!==?'number'?&&?typeof?b?!==?'number')?{return?undefined;}return?a?+?b; }//?這個(gè)應(yīng)該在轉(zhuǎn)換/編譯期間失敗。 const?guessWhat?=?sum([],?{});?//?->?undefined

???? 你應(yīng)該有不能到達(dá)的代碼

這是你的 "Plan B".

Good ????????

function?square(num)?{if?(typeof?num?===?'undefined')?{return?undefined;}else?{return?num?**?2;}return?null;?//?這就是我的"Plan?B". }

Bad ????????

function?square(num)?{if?(typeof?num?===?'undefined')?{return?undefined;}return?num?**?2; }

???? 三角法則

就像鳥巢,鳥巢,鳥巢。

Good ????????

function?someFunction()?{if?(condition1)?{if?(condition2)?{asyncFunction(params,?(result)?=>?{if?(result)?{for?(;;)?{if?(condition3)?{}}}})}} }

Bad ????????

async?function?someFunction()?{if?(!condition1?||?!condition2)?{return;}const?result?=?await?asyncFunction(params);if?(!result)?{return;}for?(;;)?{if?(condition3)?{}} }

???? 混合縮進(jìn)

避免縮進(jìn),因?yàn)樗鼈儠?huì)使復(fù)雜的代碼在編輯器中占用更多的空間。如果你不喜歡回避他們,那就和他們搗亂。

Good ????????

const?fruits?=?['apple','orange',?'grape',?'pineapple'];const?toppings?=?['syrup',?'cream','jam','chocolate']; const?desserts?=?[]; fruits.forEach(fruit?=>?{ toppings.forEach(topping?=>?{desserts.push([ fruit,topping]);});})

Bad ????????

const?fruits?=?['apple',?'orange',?'grape',?'pineapple']; const?toppings?=?['syrup',?'cream',?'jam',?'chocolate']; const?desserts?=?[];fruits.forEach(fruit?=>?{toppings.forEach(topping?=>?{desserts.push([fruit,?topping]);}); })

???? 不要鎖住你的依賴項(xiàng)

以非受控方式更新每個(gè)新安裝的依賴項(xiàng)。為什么堅(jiān)持使用過去的版本,讓我們使用最先進(jìn)的庫版本。

Good ????????

$?ls?-lapackage.json

Bad ????????

$?ls?-lapackage.json package-lock.json

???? 函數(shù)長的比短的好

不要把程序邏輯分成可讀的部分。如果IDE的搜索停止,而您無法找到所需的文件或函數(shù),該怎么辦?

  • 一個(gè)文件中10000行代碼是OK的。

  • 一個(gè)函數(shù)體1000行代碼是OK的。

  • 處理許多服務(wù)(第三方和內(nèi)部,也有一些工具、數(shù)據(jù)庫手寫ORM和jQuery滑塊)在一個(gè)' service.js ' ?這是OK的。

???? 不要測試你的代碼

這是重復(fù)的并且不需要的工作。

???? 避免代碼風(fēng)格統(tǒng)一

編寫您想要的代碼,特別是在一個(gè)團(tuán)隊(duì)中有多個(gè)開發(fā)人員的情況下。這是一個(gè)“自由”的原則。

???? 構(gòu)建新項(xiàng)目不需要 README 文檔

一開始我們就應(yīng)該保持。

???? 保存不必要的代碼

不要?jiǎng)h除不用的代碼,最多是注釋掉。

往期推薦

從String中移除空白字符的多種方式!?差別竟然這么大!


為什么程序員都不喜歡使用 switch ,而是大量的 if……else if ?


為啥不能用uuid做MySQL的主鍵!?

本文由“壹伴編輯器”提供技術(shù)支

?

直面Java第329期:哪個(gè)命令可以監(jiān)控虛擬機(jī)各種運(yùn)行狀態(tài)信息?

深入并發(fā)第013期:拓展synchronized——鎖優(yōu)化

如果你喜歡本文,

請(qǐng)長按二維碼,關(guān)注?Hollis.

轉(zhuǎn)發(fā)至朋友圈,是對(duì)我最大的支持。

點(diǎn)個(gè)?在看?

喜歡是一種感覺

在看是一種支持

↘↘↘

總結(jié)

以上是生活随笔為你收集整理的这样写的,一定是辣鸡代码!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。