極客時間出品的《程式碼精進之路》由範學雷所作,範學雷是Oracle首席軟體工程師,Java SE安全組成員,OpenJDK評審成員。本專欄課程,我們邀請到了範學雷老師,他將帶你開啟一段程式碼精進之旅。
《程式碼精進之路》背景介紹
2014 年 2 月,安全研究人員爆出蘋果公司旗下的 iOS 和 OS X 作業系統出現了嚴重的安全漏洞,黑客可以利用這一漏洞輕鬆獲取使用者的資料。
if ((error = doSomething()) != 0)
goto fail;
goto fail;
if ((error= doMore()) != 0)
goto fail;
fail:
return error;
其實這個漏洞產生的原因僅僅是因為出現了一行多餘的程式碼,導致後面的其他程式碼“失效”,這一低階錯誤也讓所有的安全人員大跌眼鏡。你可能會說,這開發人員真是太粗心了,是不是他複製程式碼的時候,多複製了一行,然後忘記刪除了?
可能是這個原因,但問題的源頭肯定不是粗心。有專家在看完了程式碼檔案之後,發現相關的 bug 程式碼沒有正確使用縮排,也沒有正確使用括號,並且其中的空格、製表符和程式碼註釋也都不統一。
你看,蘋果公司的這個案例給我們上了教科書般的一課,深刻地告訴我們程式設計的基礎能力是有多麼重要。一個小小的疏忽,可能就會造成嚴重的後果。
編寫安全、高效、易讀和可擴充套件的程式碼,是每一個程式設計師的畢生追求。那到底怎麼才能實現這個目標呢?
《程式碼精進之路》講師介紹
範學雷,Oracle 首席軟體工程師,Java SE 安全組成員,OpenJDK 評審成員。範學雷是 Java SE 安全的主要推動者和貢獻者之一,也是 Java 語言平臺的設計實現者之一。
在專欄裡,他將帶著自己 20 多年的程式設計心得和豐富的程式碼評審經驗,圍繞程式碼的規範、經濟和安全三個方面展開講解,選取實際工作中最常遇到的 40 多個經典細節,通過多種語言來描述,幫你糾正錯誤的編碼認知,帶你挖掘實際工作場景中的編碼隱患,教給你最具體實用的優化方案,一起培養良好的編碼習慣,寫出優秀的程式碼。
《程式碼精進之路》專欄模組
專欄共 45 期,分為 4 個模組。
認知篇
什麼樣的程式碼是優秀的程式碼?如何才能寫出優秀的程式碼?優秀的軟體工程師什麼樣?這一模組將為你清楚介紹優秀程式碼的準則和達成路徑,其中的核心認知將貫穿每一個程式設計師的程式設計生涯。
“規範”修煉篇
怎麼給你的程式碼起好名字?寫好註釋很容易嗎?異常處理都有哪些陷阱?這一模組將帶你討論程式碼規範的十個關鍵維度,結合正反面案例,手把手教你編寫規範的程式碼。
“經濟”修煉篇
Java 垃圾管理器可以提高多少效率?列表查詢速度可以提高多少?這些問題都能通過編寫“經濟”的程式碼搞定。這一模組將帶你深入十餘個編碼細節,教你寫出維護性高、相容性好的高質量程式碼。
“安全”修煉篇
程式碼安全是老生常談的問題,一個疏忽的小細節就有可能造成一個大漏洞。這一模組將從案例入手,教你規避編碼過程中常見卻又容易疏忽的安全隱患,編寫“牢固”的程式碼。
《程式碼精進之路》課程目錄
認知篇
- 從條件運算子說起,反思什麼是好程式碼
- 把錯誤關在籠子裡的五道關卡
- 優秀程式設計師的六個關鍵特質
“規範”修煉篇
- 程式碼規範的價值:覆盤蘋果公司的GoToFail漏洞
- 怎麼給你的程式碼起好名字?
- 程式碼整理的關鍵邏輯和最佳案例
- 寫好註釋,真的是小菜一碟嗎?
- 寫好宣告的“八項紀律”
- 怎麼用好Java註解?
- 異常處理都有哪些陷阱?
- 組織好程式碼段,讓人對它“一見鍾情”
- 組織好程式碼檔案,要有“使用者思維”
- 介面規範,是協作的合約
- 怎麼交付程式碼的使用者指南?
- 編寫規範程式碼的最佳實踐清單
- “規範”模組熱點問題答疑
“經濟”修煉篇
- 導讀:為什麼說你要關注程式碼的效能問題?
- 思考框架:什麼樣的程式碼才是高效的程式碼?
- 少即是多,該怎麼避免過度設計?
- 簡單和直觀,是永恆的解決方案
- 怎麼設計一個簡單又直觀的介面?
- 高效率,從超越執行緒同步開始!
- 怎麼減少記憶體使用,減輕記憶體管理負擔?
- 黒白灰,理解延遲分配的兩面性
- 使用有序的程式碼,調動非同步的事件
- 怎麼讓程式碼“少招惹麻煩”?
- 怎麼讓程式碼“可持續發展”?
- 怎麼儘量“不寫”程式碼?
- 編寫經濟程式碼的最佳實踐清單
- “經濟”模組熱點問題答疑
“安全”修煉篇
-
- 為什麼安全的程式碼這麼重要?
- 如何衡量安全的程式碼?
- 整數的運算有哪些安全威脅?
- 怎麼處理陣列和集合的安全陷阱?
- 怎麼處理敏感資訊?
- 繼承有什麼安全缺陷?
- 怎麼處理跨界資料的安全隱患?
- 物件序列化的危害有多大?
- 怎麼控制好程式碼的權力?
- 怎麼用好Java的內在安全機制?
- 怎麼保持程式碼的長治久安?
- 怎麼防範軟體安全風險?
- 編寫安全程式碼的最佳實踐清單
- “安全”模組熱點問題答疑
- 尾聲:如何成為一個程式設計好手?
訂閱價格:
為回報猿人學的粉絲,所有通過我分享的二維碼購買的使用者,請加我微訊號:dismissmewp,備註:返現。
享受完其它優惠後,我再給大家立即返¥12元現金。
我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。
***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***