展开全部

主编推荐语

以一种综合的、项目驱动的方式,帮助你学习一些成为高效开发人员所需的核心主题。

内容简介

本实践指南提供了一种综合的、项目驱动的方式,来帮助你学习一些成为高效Java开发人员所需的核心主题。

本书展示了如何开发真实项目,并同时学习最佳实践。每一章会聚焦于一个项目,该项目从一个命令行批处理程序开始,然后发展成一个功能齐全的应用程序。

本书也给了你一个以面向开发者的角度去学习的机会,包含大量的代码示例。

目录

  • 版权信息
  • 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 下一步及附加资源
  • 作者介绍
  • 封面介绍
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

机械工业出版社有限公司

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。