內容簡介
如果你剛剛開始你的Java職業生涯,掌握當今的許多軟體開發概念可能會讓你不知所措。你是否應該學習面向對象的實踐,比如測試驅動開發或者套用函式式編程思想?本書提供了一種綜合的、項目驅動的方式,幫助你學習一些成為高效開發人員所需的核心主題。
作者在本書中向你展示了如何開發真實項目,並同時學習*實踐。每一章會聚焦於一個項目,該項目從一個命令行批處理程式開始,然後發展成一個功能齊全的應用程式。如果能夠編寫基本的Java代碼,那么你將學習先進的軟體開發實踐,以構建現代的、健壯的和可維護的Java軟體。
通過閱讀本書,你將能夠:
●了解編寫可維護代碼的核心設計原則。
●增加代碼庫的靈活性,提升代碼可維護性,以及處理異常。
●理解如何套用耦合、內聚和SOLID原則。
●使用測試驅動開發來處理新的設計問題。
●從外到內思考:從全局轉移到應用程式領域的核心。
●了解函式式編程並學習如何在Java中使用它。
圖書目錄
1.1 主題7
1.2 章節概要9
1.3 疊代10
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.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.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.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.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.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.1 基於項目的結構181
8.2 疊代181
8.3 刻意練習182
8.4 下一步及附加資源183
作者簡介
★拉烏爾·加布里埃爾·烏爾瑪(Raoul-Gabriel Urma)博士是Cambridge Spark的CEO和創始人,該公司是數據科學和人工智慧培訓領域的領導者。Raoul擁有劍橋大學計算機科學博士學位和倫敦帝國理工學院計算機科學碩士學位,並以一等榮譽畢業,曾多次獲得技術創新獎項。他的研究興趣包括程式語言、編譯器、原始碼分析、機器學習和教育領域。他在2017年被提名為Oracle Java Champion,同時也是一位經驗豐富的國際會議演講者,發表過涉及Java、Python、人工智慧和商業的演講。Raoul曾經為幾個大型軟體工程項目的組織提供諮詢,包括Google、Oracle、eBay和Goldman Sachs。
★理察·沃伯頓(Richard Warburton)博士是Opsian.com的聯合創始人,也是Artio FIX引擎的維護者。他曾在不同領域擔任開發人員,包括開發工具、高頻交易和網路協定。Richard 是一位經驗豐富的會議演講者,曾在數十個活動中發表演講,並在歐洲和美國一些大型會議的委員會中擔任委員。他擁有華威大學計算機科學博士學位。