类似推荐
编辑推荐
以一种综合的、项目驱动的方式,帮助你学习一些成为高效开发人员所需的核心主题。
内容简介
本实践指南提供了一种综合的、项目驱动的方式,来帮助你学习一些成为高效Java开发人员所需的核心主题。
本书展示了如何开发真实项目,并同时学习最佳实践。每一章会聚焦于一个项目,该项目从一个命令行批处理程序开始,然后发展成一个功能齐全的应用程序。
本书也给了你一个以面向开发者的角度去学习的机会,包含大量的代码示例。
作者简介
作者Raoul-Gabriel Urma,剑桥大学计算机科学博士,软件工程师,演讲者,培训师,Cambridge Coding Academy联合创始人、CEO。曾与谷歌、eBay、甲骨文和高盛集团等大公司合作,并参与过多个创业项目。撰写过十余篇经同行审阅的技术文章,并在国际会议上发表过40多篇演讲。
章节目录
版权信息
O’Reilly Media,Inc.介绍
本书赞誉
推荐序
译者序
前言
为什么写作本书
面向开发者的方式
本书内容
本书目标读者
排版约定
示例代码
O’Reilly在线学习平台(O’Reilly Online Learning)
如何联系我们
第1章 开始旅程吧
1.1 主题
1.1.1 Java特性
1.1.2 软件设计及架构
1.1.3 SOLID原则
1.1.4 测试
1.2 章节概要
1.3 迭代
第2章 银行账单分析器
2.1 挑战
2.2 目标
2.3 银行账单分析器需求
2.4 KISS原则
2.5 代码可维护性和反模式
2.5.1 上帝类
2.5.2 代码重复
2.6 单一职责原则
2.7 内聚
2.7.1 类级别内聚
2.7.2 方法级别内聚
2.8 耦合
2.9 测试
2.9.1 自动化测试
2.9.2 使用JUnit
2.9.3 代码覆盖率
2.10 要点
2.11 迭代
2.12 完成这个挑战
第3章 扩展银行账单分析器
3.1 挑战
3.2 目标
3.3 银行账单分析器的扩展需求
3.4 开闭原则
3.4.1 创建函数式接口的实例
3.4.2 lambda表达式
3.5 接口陷阱
3.5.1 上帝接口
3.5.2 粒度太细
3.6 显式API和隐式API
3.7 多样化导出
3.7.1 引入领域对象
3.7.2 定义并实现合适的接口
3.8 异常处理
3.8.1 为什么使用异常
3.8.2 异常的模式与反模式
3.8.3 异常使用准则
3.8.4 异常的替代品
3.9 使用构建工具
3.9.1 为什么使用构建工具
3.9.2 使用Maven
3.9.3 使用Gradle
3.10 要点
3.11 迭代
3.12 完成这个挑战
第4章 文档管理系统
4.1 挑战
4.2 目标
4.3 文档管理系统需求
4.4 充实这个设计
4.4.1 导入器
4.4.2 文档类
4.4.3 文档属性及层次结构
4.4.4 实现及注册导入器
4.5 里氏替换原则
4.6 可选方案
4.6.1 让Importer成为一个类
4.6.2 作用域和封装的选择
4.7 扩展和重用代码
4.8 保持测试健康
4.8.1 测试命名
4.8.2 测试行为而不是实现
4.8.3 不要重复你自己
4.8.4 良好的诊断
4.8.5 测试错误的情况
4.8.6 常量
4.9 要点
4.10 迭代
4.11 完成这个挑战
第5章 业务规则引擎
5.1 挑战
5.2 目标
5.3 业务规则引擎需求
5.4 测试驱动开发
5.4.1 为什么使用TDD
5.4.2 TDD周期
5.5 mocking
5.6 添加条件
5.6.1 状态建模
5.6.2 局部变量类型推断
5.6.3 switch表达式
5.6.4 接口隔离原则
5.7 流式API设计
5.7.1 什么是流式API
5.7.2 领域建模
5.7.3 建造者模式
5.8 要点
5.9 迭代
5.10 完成这个挑战
第6章 Twootr
6.1 挑战
6.2 目标
6.3 Twootr的需求
6.4 设计概述
6.4.1 拉模式
6.4.2 推模式
6.5 从事件到设计
6.5.1 通信
6.5.2 图形用户界面
6.5.3 持久化
6.5.4 六边形架构
6.6 从哪里开始
6.7 密码和安全性
6.8 关注者和twoot
6.8.1 对错误建模
6.8.2 发送twoot
6.8.3 创建mock
6.8.4 mock验证
6.8.5 mocking库
6.8.6 SenderEndPoint
6.9 位置
6.9.1 equals和hashcode方法
6.9.2 equals和hashCode之间的约定
6.10 要点
6.11 迭代
6.12 完成这个挑战
第7章 扩展Twootr
7.1 挑战
7.2 目标
7.3 回顾
7.4 持久性和存储库模式
7.4.1 设计存储库
7.4.2 查询对象
7.5 函数式编程
7.5.1 lambda表达式
7.5.2 方法引用
7.5.3 环绕执行
7.5.4 流
7.5.5 Optional
7.6 用户界面
7.7 依赖倒置和依赖注入
7.8 包和系统构建
7.9 限制和简化
7.10 要点
7.11 迭代
7.12 完成这个挑战
第8章 总结
8.1 基于项目的结构
8.2 迭代
8.3 刻意练习
8.4 下一步及附加资源
作者介绍
封面介绍
软件开发实践:项目驱动式的Java开发指南是2020年由机械工业出版社华章分社出版,作者[英]Raoul-Gabriel Urma。
得书感谢您对《软件开发实践:项目驱动式的Java开发指南》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。