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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

19 条法则,教你写出火爆 GitHub 的烂代码!

發(fā)布時(shí)間:2025/3/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 19 条法则,教你写出火爆 GitHub 的烂代码! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

古人云:好代碼萬里挑一,爛代碼千篇一律。

作為一名開發(fā)者,除了我自己寫的,別人的代碼在我眼里大部分都是「爛代碼」。但苦于資歷尚欠,所以爛代碼見得并不是很多,也沒總結(jié)出來什么規(guī)律。但 GitHub 上的這個(gè)項(xiàng)目,實(shí)現(xiàn)了我多年來的夢(mèng)想。


垃圾代碼書寫準(zhǔn)則

state-of-the-art-shitcode

這個(gè)項(xiàng)目其實(shí)是一個(gè)垃圾代碼書寫準(zhǔn)則的列表,一共有 19 項(xiàng)規(guī)范。這個(gè)項(xiàng)目目前在 GitHub 上已經(jīng)獲得了 600+ Star,我覺得他的潛力絕對(duì)不止于此

友情提示:下方截圖中的「Good」代表符合「爛代碼原則」,「Bad」則代表不符合「爛代碼原則」,不要搞錯(cuò)哦~

1.?以一種容易被混淆的方式命名變量

如果我們鍵入的東西越少,那么就有越多的時(shí)間去思考代碼邏輯等問題。如下圖所以,將變量命名為「a」,誰也不知道代表什么意思,相反,命名為「age」,就是普普通通的一般貨色了。


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

為不同慶祝一下。一般人會(huì)把變量名稱和函數(shù)名稱設(shè)定為同一格式,但使用不同風(fēng)格才能既體現(xiàn)我們的編碼能力,還能體現(xiàn)出我們的起名能力,一舉兩得。

3.?不要寫注釋

這一點(diǎn)作者給了一個(gè)官方吐槽:反正沒人會(huì)讀你的代碼,為什么要寫注釋?這一點(diǎn)我深以為然,寫注釋的人是對(duì)自己代碼沒有信心的體現(xiàn),難道不是么?(手動(dòng)狗頭

4. 使用母語寫注釋

如果您違反了“無注釋”原則,那么至少嘗試用一種不同于您用來編寫代碼的語言來編寫注釋。

比如母語是英語的開發(fā)者,可以用日文、韓文或俄文來做注釋,實(shí)現(xiàn)一邊寫代碼,一邊進(jìn)行外語學(xué)習(xí)。我們國內(nèi)的開發(fā)者也可以嘗試用一些小語種來寫注釋,畢竟我們是神秘的一群人。

5. 盡可能混合不同的格式

為不同慶祝一下。在符合代碼規(guī)范的情況下,盡可能的混合不同的格式,比如示例中的單引號(hào)和雙引號(hào)。

6. 盡可能把代碼寫成一行

相信大家都看過那些“一行代碼xxx”的鐵子,為什么他們一行代碼實(shí)現(xiàn)大家就覺得很酷,我們寫成一行就不行呢?

7. 不要處理錯(cuò)誤

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

8. 廣泛使用全局變量

作者說這是為了符合全球化的原則,有道理,有格局。

9. 構(gòu)建你用不上的變量

以防萬一。雖然現(xiàn)在用不上,萬一之后有用呢?abc 是鐵三角,永遠(yuǎn)不能分割。

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

沒有類型才是最好的類型。

11. 你應(yīng)該要有運(yùn)行不到的代碼

作為「Plan B」,你需要有一些運(yùn)行不到的代碼,這表示你做了額外的思考。

12. 三角法則

如果寫代碼是一項(xiàng)藝術(shù),那么三角法則顯然是最有藝術(shù)設(shè)計(jì)感的了。

13. 混合縮進(jìn)

避免縮進(jìn),因?yàn)樗鼈儠?huì)使復(fù)雜的代碼在編輯器中占用更多的空間。如果你不喜歡回避他們,那就搗個(gè)亂,使用混合縮進(jìn)策略。(這條實(shí)在洗不動(dòng)了)

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

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

15. 長函數(shù)比短函數(shù)好

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

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

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

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

16. 不要測(cè)試你的代碼

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

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

編寫您想要的代碼,特別是在一個(gè)團(tuán)隊(duì)中有多個(gè)開發(fā)人員的情況下。這是一個(gè)“自由”的原則。不特殊一些,怎么體現(xiàn)自己的特立獨(dú)行!

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

從一開始我們就應(yīng)該保持不寫 README 的好習(xí)慣(這個(gè) GItHub 項(xiàng)目就沒有 README,作者也是知行合一了)。

19. 保存不必要的代碼

不要?jiǎng)h除不用的代碼,最多是注釋掉。畢竟寫過的每一行代碼都是我們?cè)?jīng)流過的汗水,刪掉了別人怎么知道我們寫過呢~


玩歸玩,鬧歸鬧,別拿工作開玩笑

有一句話流傳的挺廣:“代碼是給人讀的,順便讓機(jī)器執(zhí)行。

我覺得很有道理,雖然代碼是機(jī)器語言,但使用和調(diào)試還是由人來進(jìn)行的,所以仍然需要最大程度的滿足人性化的需求和設(shè)計(jì)思路。

看完那么多爛代碼的設(shè)計(jì)規(guī)范,其實(shí)就是圖一樂,我們也能從這些爛代碼規(guī)范中了解到想寫出優(yōu)秀的的代碼應(yīng)該避免踩到哪些坑。下面是收集的一些資料,大家可以先收藏,沒事兒的時(shí)候看一看,爭(zhēng)取人人都能寫得一手好代碼~

- END -

相關(guān)資料:


爛代碼指南:

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

JavaScript 代碼規(guī)范(中文版):

https://github.com/BingKui/javascript-zh

谷歌開源代碼評(píng)審規(guī)范:

https://github.com/google/eng-practices

谷歌風(fēng)格指南:

http://google.github.io/styleguide/

開發(fā)人員需要了解的定律法則:

https://github.com/dwmkerr/hacker-laws

有道無術(shù),術(shù)可成;有術(shù)無道,止于術(shù)

歡迎大家關(guān)注Java之道公眾號(hào)

好文章,我在看??

總結(jié)

以上是生活随笔為你收集整理的19 条法则,教你写出火爆 GitHub 的烂代码!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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