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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

垃圾代码书写准则

發(fā)布時(shí)間:2023/12/2 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 垃圾代码书写准则 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

開門見山地說吧,在逛 GitHub 的時(shí)候,發(fā)現(xiàn)了一個(gè)非常有意思的項(xiàng)目,地址如下所示:

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

名叫“垃圾代碼書寫準(zhǔn)則”,瞧這名字,我真的是服了。作者也是良苦用心,從反面教材的角度來闡述正確書寫代碼格式的重要性。作者使用 JavaScript 編寫的代碼示例,我把它重制成了 Java 版,并且用我自己的語言風(fēng)格翻譯成了中文,希望小伙伴們能夠喜歡。

💩 以一種容易造成代碼混淆的方式命名變量

命名越短,就需要越多的時(shí)間去思考代碼邏輯等問題。

Good 👍🏻

int a = 42;

Bad 👎🏻

int age = 42;

💩 變量/方法命名風(fēng)格不統(tǒng)一

為風(fēng)格不統(tǒng)一干杯。

Good 👍🏻

int wWidth = 640; int w_height = 480;

Bad 👎🏻

int windowWidth = 640; int windowHeight = 480;

💩 不寫注釋

反正沒人能讀懂你的代碼。

Good 👍🏻

int cdr = 700;

Bad 👎🏻

注釋應(yīng)該包含一些“為什么”,而不是一些“是什么”。如果代碼連是“什么”都表達(dá)不清楚,那代碼也太爛了。

// 700ms 的數(shù)量是從 UX A/B 測(cè)試結(jié)果中得到的一個(gè)經(jīng)驗(yàn)值。 // @查看: <詳細(xì)解釋 700 的一個(gè)鏈接> int callbackDebounceRate = 700;

💩 使用母語寫注釋

如果你的母語是英語,那么請(qǐng)忽略這條準(zhǔn)則。

Good 👍🏻

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

Bad 👎🏻

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

PS:如果英語書寫能力不是很強(qiáng)的話,建議還是用母語吧。畢竟說清楚總比說不清楚要強(qiáng)。

💩 聲明變量的風(fēng)格不統(tǒng)一

再次為風(fēng)格不統(tǒng)一干杯。

Good 👍🏻

String [] i1 = {"沉", "默", "王", "二"}; String i2 [] = {"沉", "默", "王", "三"};

Bad 👎🏻

String [] wanger = {"沉", "默", "王", "二"}; String wangsan [] = {"沉", "默", "王", "三"};

💩 盡可能把代碼寫成一行

Good 👍🏻

IntStream.range(1, 5).boxed().map(i -> { System.out.print("Happy Birthday "); if (i == 3) return "dear NAME"; else return "to You"; }).forEach(System.out::println);

Bad 👎🏻

for (int i = 1; i < 5; i++) {System.out.println("Happy Birthday " + (i == 3 ? "dear NAME" : "to you")); }

💩 對(duì)錯(cuò)誤信息不管不顧

無論什么時(shí)候發(fā)現(xiàn)錯(cuò)誤,都沒有必要讓其他人知道。

Good 👍🏻

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

Bad 👎🏻

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

💩 使用大量的全局變量

全球化的原則。

Good 👍🏻

int x = 5;void multi() {x = x * 2; }multi(); // 現(xiàn)在 x 是 10

Bad 👎🏻

int x = 5;int multi(int num) {return num * 2; }x = multi(x); // 現(xiàn)在 x 是 10

💩 聲明根本不會(huì)使用的變量

萬一以后用了呢?以備不時(shí)之需。

Good 👍🏻

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

Bad 👎🏻

int sum(int a, int b) {return a + b; }

💩 如果條件允許的話,從不指定類型。

Good 👍🏻

// 享受便捷的快樂 List list = new ArrayList(); list.add("沉默王二"); list.add(18);

Bad 👎🏻

List<String> nameList = new ArrayList<String>();// 編譯出錯(cuò) nameList.add(18);

💩 沒鳥用的代碼

看起來更嚴(yán)謹(jǐn),其實(shí)很多余。

Good 👍🏻

Integer multi(Object num) {if (!(num instanceof Integer)) {return null;} else if (num != null) {return (Integer) num * 2;}return null; }

Bad 👎🏻

Integer multi(Object num) {if (num instanceof Integer) {return (Integer) num * 2;}return null; }

💩 大量的 if-else 嵌套

Good 👍🏻

void someMethod(int a, int b, int c) {if (a > 0) {if (b > 0) {if (c > 0) {int result = a / b / c;}}} }

Bad 👎🏻

void someMethod1(int a, int b, int c) {if (a < 0 || b < 0 || c < 0) {return;}int result = a / b / c; }

💩 參差不齊地縮進(jìn)

參差不齊乃幸福本源。

Good 👍🏻

String [] wanger = {"沉", "默", "王", "二"}; String [] wangsan = {"沉", "默", "王", "三"}; Arrays.asList(wanger).stream().forEach(System.out::println); Arrays.asList(wangsan).stream().forEach(System.out::println);

Bad 👎🏻

String [] wanger = {"沉", "默", "王", "二"}; String [] wangsan = {"沉", "默", "王", "三"}; Arrays.asList(wanger).stream().forEach(System.out::println); Arrays.asList(wangsan).stream().forEach(System.out::println);

💩 代碼行數(shù)多的方法的比少的好

不要把代碼邏輯分成可讀的部分。

  • 一個(gè)類中的代碼行數(shù)超過 10000 行。
  • 一個(gè)方法中的代碼行數(shù)超過 1000 行。
  • 一個(gè)方法里既做減法處理又做加法處理,還做乘除的處理。

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

代碼測(cè)試是測(cè)試工程師的事,關(guān)我屁事。

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

隨心所欲地編寫代碼,特別是在一個(gè)團(tuán)隊(duì)中有多個(gè)開發(fā)人員的情況下,我崇尚“自由”。

💩 不要寫文檔

從一開始就不要。

💩 不要?jiǎng)h除廢棄掉的代碼

代碼盡管已經(jīng)廢棄了,注釋掉就行了,沒必要?jiǎng)h掉。

好了,小伙伴們還有需要補(bǔ)充的嗎?

喜歡逛 GitHub 的小伙伴們可以點(diǎn)擊下面的地址跳轉(zhuǎn)過去查看,我已經(jīng)提交了:

https://github.com/itwanger/state-of-the-art-shitcode/blob/master/README.zh-CN.md

另外再推薦一個(gè)項(xiàng)目,里面包含了 Java 程序員常讀的書單,幫你構(gòu)建最強(qiáng)知識(shí)體系,機(jī)不可失時(shí)不再來。但不限于 Java,包括設(shè)計(jì)模式、計(jì)算機(jī)網(wǎng)絡(luò)、操作系統(tǒng)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)與算法、大數(shù)據(jù)、架構(gòu)、管理等等。

https://github.com/itwanger/JavaBooks

小伙伴們也可以去 star 下。周四加油,記得點(diǎn)贊,重拾我們的傳統(tǒng)美德!

總結(jié)

以上是生活随笔為你收集整理的垃圾代码书写准则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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