编辑推荐
1个示例,7次重构,助你辨别优劣代码。
内容简介
本书的核心思想是通过对各方面的代码质量进行比较,使读者了解经验丰富的开发者拥有的思维模式。为了展示软件开发最佳实践,作者对一个水容器示例进行多次重构,讨论了18种实现,分别从7个方面改进代码质量:时间效率、空间效率、监控与可靠性、测试与可靠性、可读性、线程安全、可复用性。在此过程中,作者还探讨了与计算机科学、Java编程以及软件工程相关的专业话题,这些知识都有助于读者写出更好的代码。
作者简介
作者马尔科.法埃拉(Marco Faella),意大利那不勒斯费德里克二世大学副教授,面向本科生和研究生讲授高级编程、软件工程、面向对象设计、编译器与程序分析、游戏设计等课程,同时为信息技术从业者开发和讲授Java编程课。
另外,他也是爱思唯尔、施普林格等旗下期刊的审稿人。
章节目录
版权信息
序
前言
致谢
关于本书
关于封面
第一部分 准备工作
第1章 软件质量和待解决问题
1.1 软件质量
1.2 主要的外部软件质量
1.3 主要的内部软件质量
1.4 软件质量之间的关系
1.5 特殊的质量
1.6 演进示例:水容器系统
1.7 数据的模型和表示
1.8 你好,容器(Novice)
1.9 小结
1.10 扩展阅读
第2章 Reference的实现
2.1 代码(Reference)
2.2 内存需求
2.3 时间复杂度
2.4 学以致用
2.5 小结
2.6 小测验答案和练习答案
2.7 扩展阅读
第二部分 软件质量
第3章 速度的要求:时间效率
3.1 常数时间内完成加水(Speed1)
3.2 常数时间内添加连接(Speed2)
3.3 最好的平衡:并查集算法(Speed3)
3.4 比较各种实现
3.5 来点儿新鲜的
3.6 真实世界的用例
3.7 学以致用
3.8 小结
3.9 小测验答案和练习答案
3.10 扩展阅读
第4章 宝贵的内存:空间效率
4.1 稍微挤一下(Memory1)
4.2 普通数组(Memory2)
4.3 弃用对象(Memory3)
4.4 黑洞(Memory4)
4.5 空间和时间的权衡
4.6 来点儿新鲜的
4.7 真实世界的用例
4.8 学以致用
4.9 小结
4.10 小测验答案和练习答案
4.11 扩展阅读
第5章 有自我意识的代码:通过监控实现可靠性
5.1 契约式设计
5.2 基于契约设计水容器
5.3 检查契约的容器(Contracts)
5.4 检查不变式的容器(Invariants)
5.5 来点儿新鲜的
5.6 真实世界的用例
5.7 学以致用
5.8 小结
5.9 小测验答案和练习答案
5.10 扩展阅读
第6章 别对我撒谎:通过测试保证可靠性
6.1 测试的基本概念
6.2 测试水容器(UnitTests)
6.3 可测试性(Testable)
6.4 来点儿新鲜的
6.5 真实世界的用例
6.6 学以致用
6.7 小结
6.8 小测验答案和练习答案
6.9 扩展阅读
第7章 让代码说话:可读性
7.1 关于可读性的一些观点
7.2 结构性的可读性特征
7.3 外部可读性特征
7.4 可读的容器(Readable)
7.5 可读性的终极思考
7.6 来点儿新鲜的
7.7 真实世界的用例
7.8 学以致用
7.9 小结
7.10 小测验答案和练习答案
7.11 扩展阅读
第8章 多个厨师一锅饭:线程安全
8.1 线程安全面临的挑战
8.2 处理死锁
8.3 线程安全的水容器(ThreadSafe)
8.4 不可变性(Immutable)
8.5 来点儿新鲜的
8.6 真实世界的用例
8.7 学以致用
8.8 小结
8.9 小测验答案和练习答案
8.10 扩展阅读
第9章 请重复利用:可复用性
9.1 确立边界
9.2 通用框架
9.3 一个通用容器的实现
9.4 通用的考虑
9.5 复原水容器(Generic)
9.6 社交网络的帖子
9.7 来点儿新鲜的
9.8 真实世界的用例
9.9 学以致用
9.10 总结
9.11 小测验答案和练习答案
9.12 扩展阅读
附录A 代码高尔夫:简洁性
A.1 我能想到的最短代码(Golfing)
A.2 扩展阅读
附录B 终极水容器类
B.1 提高可读性
B.2 提高可靠性
列表:每一章中主要的类
作者简介
你真的会写代码吗是2021年由人民邮电出版社出版,作者[意大利] 马尔科.法埃拉。
得书感谢您对《你真的会写代码吗》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。