12.17 老妹兒,如何編寫可怕的Java代碼?

來源:https://my.oschina.net/u/4232045/blog/3140320


我決定告訴你如何編寫可怕的Java代碼。如果你厭倦了所有這些美麗的設計模式和最佳實踐,並且想寫些瘋狂的東西,請繼續閱讀。


# 對一切使用異常



你知道循環對嗎?差一錯誤(英語:Off-by-one error,縮寫 OBOE,是在計數時由於邊界條件判斷失誤導致結果多了一或少了一的錯誤,通常指計算機編程中循環多了一次或者少了一次的程序錯誤,屬於邏輯錯誤的一種)很容易犯。當你迭代一個集合時,很容易出錯。讓我們看看如何使用 Java 異常處理來解決該問題,而不用擔心這些討厭的差一錯誤!


老妹兒,如何編寫可怕的Java代碼?


# 不用擔心訪問修飾符



你說什麼?Java 中的訪問修飾符,這不是浪費時間嘛!你是否知道將屬性/方法等設為私有隻是一個建議?如果你想修改它,那就去做吧!沒什麼能阻止你(除了缺乏知識之外)。如果是這種情況,請看如下代碼。

老妹兒,如何編寫可怕的Java代碼?

我們在這裡讀取 lineSeparator,這並沒有什麼。但是修改 lineSeparator 會帶來更多樂趣!在我們修改代碼中的 lineSeparator 之後,看看 System.out.println 發生了什麼:

老妹兒,如何編寫可怕的Java代碼?

輸出為:

Line separator is 
WARNING: All illegal access operations will be denied in a future release
.
Line one!!!Line two!!!Line three!!!

看起來不錯!

# 在 Java 中沒有什麼是真正的 final

一些開發人員認為他們通過將 final 關鍵字放在變量前面來以說明不會去更改這個值。事實是——有時候你真的想要改變一個 final 字段的值,所以這是如何做的:

老妹兒,如何編寫可怕的Java代碼?

注意,在構造函數中提供最終值時,這對我很有用。如果你在類中設置了 final 值,那麼它將不起作用。(可能是一些編譯器級別的優化破壞了所有的樂趣)


# 使用 Java 序列化,幹就對了



這很簡單,用 Java 序列化,玩得開心,好好享受。


好吧,我想你想要一些理由。我看到 Java 平臺首席架構師 Mark Reinhold 表示,他們後悔將序列化引入到 Java。顯然,Java 中大約 1/3 的安全漏洞僅來自於序列化。


# 將對象用於一切



你知道類嗎?浪費時間!你是否想看到代碼重用的巔峰之作?你去!

老妹兒,如何編寫可怕的Java代碼?

您可以相信我們一直以來都擁有這種力量嗎?另外,組合兩個模式還有額外的好處!


這只是你使用 Object 進行操作的開始。如果有疑問,請記住-使用對象。如果需要,你隨時可以使用這種驚人的模式進行回退!

老妹兒,如何編寫可怕的Java代碼?

這還是類型安全的,多麼健壯的解決方案。


# 充分擁抱便捷編程的藝術



你知道比爾·蓋茨更喜歡懶惰的開發人員嗎?比爾·蓋茨說過:


"I will always choose a lazy person to do a difficult job...because, he will find an easy way to do it. --Bill Gates"

"我總是會選擇一個懶人去完成一份困難的工作...因為,他會找到捷徑。" -- 比爾蓋茨


因此,有了比爾·蓋茨(Bill Gates)的大力支持,我們可以完全接受我們的懶惰。你準備好了嗎?那就開始吧!


  • 永遠不要編寫測試,只是不要編寫錯誤!
  • 將所有都定義為 public -方便訪問!
  • 支持全局變量–您可能需要它們!
  • 大型接口優於小型專用接口–可以使用的方法越多越好!
  • 支持繼承而不是合成(使用接口中的默認方法從未如此簡單)!
  • 始終使用裝箱類型–它們也可以用作對象!
  • 儘可能使用最短的名字(a, b, n 最好)!


# 不要學習任何新知識–你總是最瞭解



一個程序員最重要的品質就是對自己有信心。相信自己什麼都懂,沒有什麼可學的!


考慮到這一點,請確保不要學習:

  • 新類庫
  • 新語言
  • 新框架


這樣可以節省你的時間!你永遠都不應學習任何新知識,因為你已經是最好的了。


你有能力去做這件事,並不代表你應該做。


分享到:


相關文章: