www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀] 程序員最怕讀別人的代碼,比這個更可怕的是什么? 從別人那里接手一個老項(xiàng)目 前任程序員或者是編碼能力不行,或者是跳槽之前故意擺爛……

今天愚人節(jié),可以皮一下,可以開點(diǎn)玩笑,所以我決定這篇文章開啟嘲諷模式。

程序員最怕讀別人的代碼,比這個更可怕的是什么?

從別人那里接手一個老項(xiàng)目

前任程序員或者是編碼能力不行,或者是跳槽之前故意擺爛……于是,一個隱藏著一堆爛攤子的項(xiàng)目,扔給了后來接手的人。

本來以前是代碼里夾翔,后來就是翔夾代碼了。

這些翔有各種各樣的風(fēng)味,其中就有那么十八種味道最是沖人。

1. 塊里堆上我滿滿的翔

Java 中有著無數(shù)的語句塊,這些語句塊可以嵌套。于是我們有很多優(yōu)秀的產(chǎn)翔大師會在這些語句塊中不斷地嵌套,猶如無數(shù)層的俄羅斯套娃。

2. 把翔藏在注釋里,有時候它會“驚艷”了世界

有些哥們兒很雞賊的把一些代碼藏在注釋里,這些代碼可以隨時成為定時炸彈。

public static void main(String[] args) {
  String a = "Hello"; // \u000d a="world"; System.out.println(a); // \u000a a="hello world!"; System.out.println(a);
}

上面這段代碼運(yùn)行之后,說好的“Hello”呢?

world
hello world!

3. 我家大門常打開,歡迎錯誤走進(jìn)來

在 Java 中,如果你想接手一個項(xiàng)目,看到一個父類的字段是非 private 的,而子類還存在同名字段,要注意了,這個項(xiàng)目的前任可能比較渣,你可能會惱火的想給他燒紙。比如:

public class Base { public int field = 0; public int getField() { return field;
  }
}
public class Sub extends Base { public int field = 1; public int getField() { return field;
  }
}

你這樣測試下看看

public static void main(String[] args) {
  Sub s = new Sub();
  Base b = s;

  System.out.println(s.field);

  System.out.println(b.field);

  System.out.println(((Sub) b).field);

  System.out.println(((Base) s).field);
}

4. 我抓到了異常,但是我不想處理了,因?yàn)槲乙x職了

有些哥們兒走之前可能人未動心已遠(yuǎn),也可能是懶的處理異常,他會給你留下一個謎之空白。

public class EmptyCatchBlockTest { public static void main(String[] args) { try { int a = 4, b = 0; int c = a/b;
    } catch(ArithmeticException ae) { // ??? }
  }
}

對不起,兄弟,你留下這種薛定諤的處理是想讓人幫你掀桌嗎?

5. 只要我不考慮任何意外的情況,那么項(xiàng)目就一定會出意外

有些直性子的人,認(rèn)為天下萬物都可以直來直去,就好像直男只會讓女生“多喝熱水”一樣。所以,他們寫的代碼非常直率,直接就不考慮意外情況。

public static void main(String[] args) { int a = args.length; int b = 42 / a; if (a == 1) {
      a = a / (a - a);
    } if (a == 2) { int c[] = {1};
      c[42] = 99;
    }
}

上邊的代碼很直率,既不考慮 a 可能為 0 的情況,也不考慮數(shù)組越界。直來直去,就好像“我不尷尬,尷尬的就是別人”。

6. 我要把方法里可能的異常藏起來不告訴任何人

還有些哥們也不知道是不是有什么見不得人的事情,該拋出來的異常從來不拋出來,導(dǎo)致你根本不知道發(fā)生了什么事情。

InputStream is = null; try {
  is = new FileInputStream("一個文件.txt");
} catch (FileNotFoundException e) {

} int b; try { while ((b = is.read()) != -1) {
  }
} catch (IOException e) {
  e.printStackTrace();
} finally { try {
    is.close();
  } catch (IOException e) {
    e.printStackTrace();
  }
}

上面的代碼里,如果文件找不到,接手人要撞墻的。

7. 我不走正道,因?yàn)槲沂莻€光榮的產(chǎn)翔俠

還有些人,不知道從哪里學(xué)會的邪門歪道,喜歡通過在捕獲異常里寫業(yè)務(wù)邏輯。對這種人,你九陰真經(jīng)練成了梅超風(fēng)啊。

public DateTime override Add(TimeSpan ts) { try { return base.Add(ts);
  } catch (ArgumentOutOfRangeException nb) { // calculate how much the MaxValue is exceeded // regular program flow TimeSpan saldo = ts - (base.MaxValue - this); return DateTime.MinValue.Add(saldo)
  } catch(Exception anyOther) { // 'real' exception handling. }
}

我就想問問,如果以異常來控制流程,那么如何在這些異常中尋找真正的異常情況?

8. 為了我走之前不出意外,我要捕獲所有的 NPE

有些哥們兒會把 NPE 捕獲住,恩,不解決問題,但是把提出問題的人給解決了。

private static void callInstanceMethodOfNull() { try {
    Integer age = null;
    age.toString();
  } catch (NullPointerException exception) {
    Logging.log(exception);
  } catch (Throwable exception) {
    Logging.log(exception, false);
  }
}

但是呢,這在正常的業(yè)務(wù)邏輯里很可能就把別人坑了,因?yàn)?Null 本身就是代表著一種非法狀態(tài)。拿著前朝的劍斬今朝的官,包大人干的好啊。

9. 一個方法我如果寫成一萬行,公司一定會倒閉的

有些朋友可能有分離焦慮癥,一個方法里能寫上 1 萬行代碼。對不起,讀書讀幾頁都會犯困,讀你這一萬行代碼……

10. 我要把所有業(yè)務(wù)邏輯都揉進(jìn)幾個類里,就好像女友第一次來我家

有些哥們,你看看他負(fù)責(zé)的項(xiàng)目,你發(fā)現(xiàn)整個項(xiàng)目沒幾個類。你很納悶,覺得業(yè)務(wù)很復(fù)雜,竟然可以實(shí)現(xiàn)的如此簡單嗎?你再打開他的類看源碼,哦豁,這就是個垃圾箱啊,什么都能往里塞啊。

哥們兒,這不是女朋友去你租的房子里,你為了顯得干凈,把你那些垃圾到處塞啊。

11. 是男人就來看我繼承一百層類

有些爺爺不知道怎么想的,在他們眼里可能只有兒子和老子,一個類很不得搞一百層的類繼承。你這樣繼承,您家萬貫家財(cái)還能遭得住嗎?

12. 如果我不用緩存,我就能多浪費(fèi)公司的幾臺服務(wù)器

還有些哥們兒,明明知道他這個功能可能被頻繁訪問,比如登錄的時候查相關(guān)的白名單、黑名單。哥兒們兒知道并發(fā)量大,可從來不想套個緩存,就是死從數(shù)據(jù)庫里要數(shù)據(jù)。數(shù)據(jù)庫想:生產(chǎn)隊(duì)的驢也沒我這么忙啊。

13. 線程安全?那是什么?能吃嗎?

有些號稱老程序員的老司機(jī)們,經(jīng)年有余的不管線程安全。上來口吐異步同步,可是到手上了,線程就是個后娘養(yǎng)的,不管人家的數(shù)據(jù)安全了。合著身前叫人家小甜甜,落地了叫人家牛夫人了?

14. 在我手中無物不鎖

還有些哥們兒,怕線程跟怕老婆一樣,一旦可能多線程了,上來先上個同步鎖。你打開他寫的代碼,十個方法十把鎖。于謙兒這種大戶人家也不帶這樣上鎖的啊。

15. 我只知道 ArrayList,LinkedList 它配我用嗎?

有些兄弟可能只知道 ArrayList 能放東西。就算需要動態(tài)調(diào)整的場景,哥們兒也從不考慮 LinkedList。系統(tǒng)慢的跟龜爬一樣,愣是說系統(tǒng)遇到瓶頸。

16. 我的方法里有無數(shù)的參數(shù),也許里面需要一個宇宙

有些程序大師,他需求可能比較多,性格比較貪婪。寫的方法也跟性格一樣邪惡,一個方法需要的參數(shù),從天上到地下,什么都需要。你要調(diào)他的方法,就跟有個黑洞吸住你不放一樣,陷進(jìn)去你就出不來了。放我去飛好不好?

17. 遞歸里偷偷抹掉出口條件,就讓服務(wù)器的 CPU 燃燒殆盡吧

有時候看到?jīng)]有出口的遞歸方法,你就知道,寫這段代碼的人的人生是多么悲催,他悲慘的連測試都不敢,生怕碰傷了自己。沒有出口的遞歸,就跟沒有出路的人生一樣。

18. 如果我不關(guān)閉資源,那么我就能讓公司多花些內(nèi)存錢

用了資源您不釋放,您是嫌山上的筍不夠采,下山來奪筍了吧。行行好,放了那個資源吧。

得,看到了這里,列位看官看個樂就行了,希望諸位千萬別使用這十八般兵器。

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉