Java避坑寶典《Java業務開發常見錯誤100例》上線了


寫這個專欄的緣起

之前我寫過一篇博客:《朱曄的互聯網架構實踐心得S2E2:寫業務代碼最容易掉的10種坑》,引起的關注還是挺多的。后來和極客時間的編輯一拍即合決定以這個為題寫一個專欄。其實所謂坑就是容易忽略但是不容易發現的問題,大部分生產事故都是發布、運維相關的配置引起,真正代碼中的問題上線后產生問題的坑並不多,雖然我接觸過很多生產事故,但是能提煉出寫代碼的坑的點不多。所以在內容整理方面我花了很多時間,最終我總結出100+的點,形成了這樣一個30+文章的專欄。

專欄名字叫《Java業務開發常見錯誤100例》,點擊這里可以進入專欄。不僅僅涉及代碼,還涉及設計方面的思考以及安全方面的誤區。在這個課程中,每節課都是Java業務開發的一個核心關注點,每個知識點對應2~5個案例,並按照“知識介紹->還原業務場景->錯誤實現->正確實現->原理分析->小總結”來講解每個案例,不僅幫你避開這個知識點的常見坑,更讓你能知道產生坑的根本原因,提升自己的技術能力。這些內容不僅可以幫助你寫出更好的代碼,同時也有助於你進一步補全你的知識網增加面試的信心。你甚至可以把這些案例當作代碼審核的Checklist,幫助別的項目一起避坑,幫助團隊一起成長。

專欄的內容

目錄

開篇詞
開篇詞 | 業務代碼真的會有這么多坑?
代碼篇
01 | 使用了並發工具類庫,線程安全就高枕無憂了嗎?
02 | 代碼加鎖:不要讓“鎖”事成為煩心事
03 | 線程池:業務代碼最常用也最容易犯錯的組件
04 | 連接池:別讓連接池幫了倒忙
05 | HTTP調用:你考慮到超時、重試、並發了嗎?
06 | 20%的業務代碼的Spring聲明式事務,可能都沒處理正確
07 | 數據庫索引:索引不是萬能葯
08 | 判等問題:程序里如何確定你就是你?
09 | 數值計算:注意精度、舍入和溢出問題
10 | 集合類:坑滿地的List列表操作
11 | 空值處理:分不清楚的null和惱人的空指針
12 | 異常處理:別讓自己在出問題的時候變為瞎子
13 | 日志:日志記錄真沒你想象的那么簡單
14 | 文件IO:實現高效正確的文件讀寫並非易事
15 | 序列化:一來一回,你還是原來的你嗎?
16 | 用好Java 8的日期時間類,少踩一些“老三樣”的坑
17 | 別以為“自動擋”就不可能出現OOM
18 | 當反射、注解和泛型遇到OOP時,會有哪些坑?
19 | Spring框架:IoC和AOP是擴展的核心
20 | Spring框架:幫我們做了很多工作也帶來了復雜度
設計篇
21 | 代碼重復:搞定代碼重復的三個絕招
22 | 接口設計:系統間對話的語言,一定要統一
23 | 緩存設計:緩存可以錦上添花也可以落井下石
24 | 業務代碼寫完,就意味着生產就緒了?
25 | 異步處理好用,但非常容易用錯
26 | 數據存儲:NoSQL與RDBMS如何取長補短、相輔相成?
安全篇
27 | 數據源頭:任何客戶端的東西都不可信任
28 | 安全兜底:涉及錢時,必須考慮防刷、限量和防重
29 | 數據和代碼:數據就是數據,代碼就是代碼
30 | 敏感數據:如何正確保存和傳輸敏感數據?
不定期加餐
加餐1:帶你吃透課程中Java 8的那些重要知識點
加餐2:定位應用問題,排錯套路很重要
加餐3:分析定位Java問題,一定要用好這些工具(一)
加餐4:分析定位Java問題,一定要用好這些工具(二)
加餐5:這15年來,我是如何在工作中學習技術和英語的?
結束語
結束語 | 寫代碼時,如何才能盡量避免踩坑?

知識點腦圖

你將獲得

  • 130 個代碼坑點及其解決方案
  • 100 個場景化案例解讀
  • 25 次源碼深度解析
  • 使用 10 個工具定位問題根因

專欄有下面的六個特點

  • 全面性:我們經常可以在一些公眾號中看到有關Java代碼踩坑的一些文章,這些內容比較零散,看過之后不會留下深刻印象,本專欄中的100個案例可謂是Java代碼避坑的大全,內容完整且連續,並且有因有果,這些內容不僅僅可以幫助你寫出更好的代碼,同時也有助於你進一步補全你的知識網增加面試的信心。你甚至還可以把二級目錄當作代碼審核的Checklist,幫助別的項目一起成長和避坑。
  • 不僅僅是代碼層面的坑:《Effective Java》和《碼出高效:Java 開發手冊》是兩本非常不錯的主要介紹Java代碼坑的書。但前者注重Java語言、后者更注重規范,而本課程覆蓋使用Java進行業務開發涉及的各種常用框架和技術,不會局限於Java或者JDK本身,且設計篇、安全篇會從更高的視角去看開發時遇到的各種誤區。因此,這個課程的講授思路和內容,和這兩本書有較大區別。
  • 深入淺出:專欄中有一部分案例涉及到一些比較復雜的場景,或是一些高級Java特性,對於這些案例,我會嘗試使用通俗的語言配合一些示意圖幫助你理解。
  • 知所以然也知其所以然:對於代碼中的坑,我不僅僅會給出一個甚至多個解決方案,並且我還會分析其根本原因,只要篇幅允許大部分案例我都會進行相關源碼剖析,讓你不僅僅知道怎么避坑,更知道其中的原理。
  • 授人以魚也授人以漁:有許多坑來自實際生產案例的總結,在遇到問題的時候,我們一定是先通過經驗加上使用工具來定位分析問題,然后才定位到坑,並不是一開始就知道為什么的。在專欄中,我會盡可能把分析問題的過程完整呈現給你,而不是直接告訴你為什么,這樣以后遇到問題你也有解決問題的思路。專欄中,我們會涉及到jclasslib、jvisuamlvm、jconsole、MAT、阿里Arthas、wireshark等工具。
  • 貼近實際有場景:不同於一般教科書式的編程書籍,只是在講述語法。專欄的大多數案例來自實際真實的案例,並且在專欄中我還會經常分享一些最佳實踐,體現的是我多年工作經驗的總結和思考。

趕緊點擊這里進入專欄吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM