3個每個人都討厭的Java實踐 - Miloš
你使用靜態關鍵字嗎?你丟擲異常嗎?你把資料放在會話中嗎?這是三個每個人討厭的java實踐:
- 濫用靜態
- · 丟擲異常
- · 在會話中儲存所有內容
1. 你不應該濫用靜態
類包含靜態屬性。無需構造即可訪問屬性。
為什麼這很重要?靜態屬性不是變數,它們是常量。所有例項的常量。
靜態方法類似於過程化,這會破壞 OO 設計。
但是大多數Math庫方法都是靜態的,因為它們都是輔助方法,對輔助函式和實用函式使用靜態方法。
不要將靜態方法與多型混合。
直到最近,Mockito 才支援測試靜態方法:Mockito 更喜歡物件導向和依賴注入,而不是難以理解和更改的靜態程式程式碼。如果您處理可怕的遺留程式碼,您可以使用 JMockit 或 Powermock 來模擬靜態方法。
2.按預期丟擲異常
不要丟擲業務邏輯異常,把業務邏輯洩露到外部。
不要反覆丟擲相同異常。
最後辦法是翻譯轉化異常。
使用其他錯誤處理方法、謂詞或 Optionals 來顯示錯誤。異常應該通知錯誤、傳播翻譯後的錯誤或當場處理它們。
3. 不要將所有東西都儲存在會話中
Web 應用程式是無狀態的。會話為使用者建立一個狀態。在會話中儲存大量變數是不好的做法。你需要儲存使用者狀態嗎?使用會話,例如,身份驗證儲存在會話中。您需要儲存應用程式狀態嗎?使用快取而不是會話。
在會話中儲存資料本身並不是一個壞習慣。您需要在會話中儲存身份驗證。避免在會話中儲存其他資料。無狀態設計比有狀態應用程式有更多好處。會話使用記憶體,可能導致競爭條件,並可能導致執行緒問題。
會話的替代方法是什麼?會話的替代方案是:
- 將會話儲存在快取中;以Map的形式
- 將會話儲存在資料庫中
相關文章
- 為什麼每個人都討厭GO語言?Go
- 如果每個人都討厭OOP,為什麼它仍然如此廣泛傳播? - StackOverflowOOP
- 每個人都應認真思考的10個問題
- 每個人都應該知道的jQuery的提示jQuery
- 哪些API最佳實踐表示您很討厭客戶?- ACM QueueAPIACM
- 每個人都該懂點的版本管理技能
- 你知道嗎,Java之父也討厭BugJava
- 每個 Java 開發者都應該知道的 5 個註解Java
- 每個Java開發者都應該知道的5個JDK工具JavaJDK
- 去掉那討厭的windows域Windows
- 每個人對元宇宙的理解都錯了 - ShaanVP元宇宙
- Java的每個Thread都希望擁有自己的名稱Javathread
- 每個人都應該學習程式設計嗎?程式設計
- 《被討厭的勇氣》總結
- 我討厭技術猿
- 法外狂徒張三,我們每個人心裡都藏著一個張三
- 為什麼每個人都該知道阿蘭·圖靈?圖靈
- 程式設計師討厭專案經理的5個原因程式設計師
- ORM 是一種討厭的反模式ORM模式
- 越來越討厭爬蟲爬蟲
- 每個PHP開發者都應該看的書PHP
- 5個相見恨晚的Linux命令,每一個都非常實用Linux
- 每個開發者都應該知道的33個JavaScript概念JavaScript
- 相信我!這絕不是你討厭的那個數學函式函式
- RabbitMQ個人實踐MQ
- 這個錯誤,每個ScrumMaster都犯過ScrumAST
- Java三種面試者是面試官最討厭的,見之即斃!Java面試
- Stack Overflow:最令人討厭的程式語言
- 令人討厭的程式語言排行榜
- [譯] 熱愛 JavaScript,但是討厭 CSS ?JavaScriptCSS
- javascript實現的對陣列每一個元素都執行一個函式JavaScript陣列函式
- 每個人都應該知道網站建設的製作流程與方法!網站
- 每個JavaScript工程師都應懂的33個概念JavaScript工程師
- 每個 Linux 新手都應該知道的 10 個命令Linux
- 每個MySQL開發者都應該瞭解的10個技巧MySql
- IT職場:每個黑帶都應該知道的事
- 每個Javascript開發者都應當知道的那些事JavaScript
- 每個人都應該懂點函數語言程式設計函數程式設計