3個每個人都討厭的Java實踐 - Miloš
你使用靜態關鍵字嗎?你丟擲異常嗎?你把資料放在會話中嗎?這是三個每個人討厭的java實踐:
- 濫用靜態
- · 丟擲異常
- · 在會話中儲存所有內容
1. 你不應該濫用靜態
類包含靜態屬性。無需構造即可訪問屬性。
為什麼這很重要?靜態屬性不是變數,它們是常量。所有例項的常量。
靜態方法類似於過程化,這會破壞 OO 設計。
但是大多數Math庫方法都是靜態的,因為它們都是輔助方法,對輔助函式和實用函式使用靜態方法。
不要將靜態方法與多型混合。
直到最近,Mockito 才支援測試靜態方法:Mockito 更喜歡物件導向和依賴注入,而不是難以理解和更改的靜態程式程式碼。如果您處理可怕的遺留程式碼,您可以使用 JMockit 或 Powermock 來模擬靜態方法。
2.按預期丟擲異常
不要丟擲業務邏輯異常,把業務邏輯洩露到外部。
不要反覆丟擲相同異常。
最後辦法是翻譯轉化異常。
使用其他錯誤處理方法、謂詞或 Optionals 來顯示錯誤。異常應該通知錯誤、傳播翻譯後的錯誤或當場處理它們。
3. 不要將所有東西都儲存在會話中
Web 應用程式是無狀態的。會話為使用者建立一個狀態。在會話中儲存大量變數是不好的做法。你需要儲存使用者狀態嗎?使用會話,例如,身份驗證儲存在會話中。您需要儲存應用程式狀態嗎?使用快取而不是會話。
在會話中儲存資料本身並不是一個壞習慣。您需要在會話中儲存身份驗證。避免在會話中儲存其他資料。無狀態設計比有狀態應用程式有更多好處。會話使用記憶體,可能導致競爭條件,並可能導致執行緒問題。
會話的替代方法是什麼?會話的替代方案是:
- 將會話儲存在快取中;以Map的形式
- 將會話儲存在資料庫中
相關文章
- 如果每個人都討厭OOP,為什麼它仍然如此廣泛傳播? - StackOverflowOOP
- 為什麼人們都討厭開會?
- 每個人都應該知道的jQuery的提示jQuery
- 每個人都應該懂點攻防
- 不是每個人的一生都會有貴人相助
- 每個人對元宇宙的理解都錯了 - ShaanVP元宇宙
- 每個 Java 開發者都應該知道的 5 個註解Java
- 每個開發人員都應該知道的 10 個 GitHub 倉庫Github
- Java的每個Thread都希望擁有自己的名稱Javathread
- 每個開發人員都應該知道的WebSockets知識Web
- RabbitMQ個人實踐MQ
- 5個相見恨晚的Linux命令,每一個都非常實用Linux
- 每個JavaScript工程師都應懂的33個概念JavaScript工程師
- 每個 Linux 新手都應該知道的 10 個命令Linux
- 每個JavaScript開發人員都應該瞭解UnicodeJavaScriptUnicode
- 每個 Linux 遊戲玩家都絕不想要的惱人體驗Linux遊戲
- Reflect API:每個 JavaScript 開發人員都需要的瑞士軍刀APIJavaScript
- 哪些API最佳實踐表示您很討厭客戶?- ACM QueueAPIACM
- 每個人都能實現“數字人自由”?HPG
- 你知道嗎,Java之父也討厭BugJava
- 每個綠帶都應該知道的事
- 相信我!這絕不是你討厭的那個數學函式函式
- 電波來信:每個人可能都會和這兩個字有交集:癌症
- 每個開發者都應該知道的33個JavaScript概念JavaScript
- 每個程式設計師都會的 35 個 jQuery 小技巧程式設計師jQuery
- 自媒體人必備的8個免費學習網站,每一個都值得收藏學習網站
- 每個人都應該知道網站建設的製作流程與方法!網站
- 每個人設計人員都需要的圖片無損放大軟體Topaz Gigapixel AIAPIAI
- 每個Java軟體架構師都應該知道的20件事Java架構
- 眾包趨勢:每個人都將與平臺發生關係
- 每個 PHPer 都應當掌握的註釋標記PHP
- IT職場:每個黑帶都應該知道的事
- 2022,每個 Leaper 都會有好未來
- 自媒體人必備的4個寶藏工具,每一個都很實用
- 每個JavaScript開發人員都應該知道的新ES2018功能(譯文)JavaScript
- 90%的Java開發人員都會犯的5個錯誤Java
- 2150: 令人討厭的手機號
- 《被討厭的勇氣》總結