軟件開發實踐:項目驅動式的Java開發指南
內容描述
本實踐指南提供了一種綜合的、項目驅動的方式,來幫助你學習一些成為高效Java開發人員所需的核心主題。
本書展示瞭如何開發真實項目,並同時學習*佳實踐。
每一章會聚焦於一個項目,該項目從一個命令行批處理程序開始,然後發展成一個功能齊全的應用程序。
本書也給了你一個以面向開發者的角度去學習的機會,包含大量的代碼示例。
目錄大綱
目錄
前言1
第1章開始旅程吧7
1.1主題7
1.2章節概要9
1.3迭代10
第2章銀行賬單分析器11
2.1挑戰11
2.2目標11
2.3銀行賬單分析器需求12
2.4 KISS原則12
2.5代碼可維護性和反模式15
2.6單一職責原則16
2.7內聚21
2.8耦合27
2.9測試30
2.10要點35
2.11迭代35
2.12完成這個挑戰36
第3章擴展銀行賬單分析器37
3.1挑戰37
3.2目標37
3.3銀行賬單分析器的擴展需求38
3.4開閉原則38
3.5接口陷阱42
3.6顯式API和隱式API44
3.7多樣化導出47
3.8異常處理51
3.9使用構建工具61
3.10要點68
3.11迭代68
3.12完成這個挑戰68
第4章文檔管理系統69
4.1挑戰69
4.2目標69
4.3文檔管理系統需求70
4.4充實這個設計70
4.5里氏替換原則77
4.6可選方案79
4.7擴展和重用代碼81
4.8保持測試健康86
4.9要點95
4.10迭代96
4.11完成這個挑戰96
第5章業務規則引擎97
5.1挑戰97
5.2目標97
5.3業務規則引擎需求98
5.4測試驅動開發99
5.5 mocking102
5.6添加條件104
5.7流式API設計115
5.8要點120
5.9迭代120
5.10完成這個挑戰121
第6章Twootr122
6.1挑戰122
6.2目標122
6.3 Twootr的需求123
6.4設計概述124
6.5從事件到設計126
6.6從哪裡開始129
6.7密碼和安全性134
6.8關注者和twoot136
6.9位置145
6.10要點151
6.11迭代151
6.12完成這個挑戰151
第7章擴展Twootr152
7.1挑戰152
7.2目標152
7.3回顧152
7.4持久性和存儲庫模式153
7.5函數式編程160
7.6用戶界面173
7.7依賴倒置和依賴注入174
7.8包和系統構建177
7.9限制和簡化179
7.10要點180
7.11迭代180
7.12完成這個挑戰180
第8章總結181
8.1基於項目的結構181
8.2迭代181
8.3刻意練習182
8.4下一步及附加資源183
作者介紹
Raoul-Gabriel Urma
博士是Cambridge Spark的CEO和創始人,該公司是數據科學和人工智能培訓領域的領導者。
他出版過幾本編程書籍,包括暢銷書Modern Java in Action (Manning出版社)。
Raoul擁有劍橋大學計算機科學博士學位和倫敦帝國理工學院計算機科學碩士學位,並以一等榮譽畢業,曾多次獲得技術創新獎項。
他的研究興趣包括編程語言、編譯器、源代碼分析、機器學習和教育領域。
他在2017年被提名為Oracle Java Champion,同時也是一位經驗豐富的國際會議演講者,發表過涉及Java、Python、人工智能和商業的演講。
Raoul曾經為幾個大型軟件工程項目的組織提供諮詢,包括Google、Oracle、eBay和Goldman Sachs。
Richard Warburton
博士是Opsian.com的聯合創始人,也是Artio FIX引擎的維護者。
他曾在不同領域擔任開發人員,包括開發工具、高頻交易和網絡協議。
他為O''Reilly編寫了Java 8 Lambdas一書,並通過http://iteratrlearning.com和
http://www.pluralsight.com/author/richard-warburton幫助開發人員進行學習。
Richard是一位經驗豐富的會議演講者,曾在數十個活動中發表演講,並在歐洲和美國一些大型會議的委員會中擔任委員。
他擁有華威大學計算機科學博士學位。