您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
你真的会写代码吗
字数: 396000
装帧: 平装
出版社: 人民邮电出版社
作者: (意)马尔科·法埃拉
出版日期: 2021-07-01
商品条码: 9787115566348
版次: 1
开本: 16开
页数: 268
出版年份: 2021
定价:
¥89.8
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
编辑推荐
1.一条主线串联编程语言、算法与软件工程 2.一个实例,七次重构,助力明辨代码优劣 3.附赠在线代码库,按章节组织免费下载 4.Java开发技巧助力应对多样化开发需求 5.《Java核心技术》《写给大忙人看的Java核心技术》等书作者凯·霍思特曼作序推荐
内容简介
本书的核心思想是通过对各方面的代码质量进行比较,使读者了解经验丰富的开发者拥有的思维模式。为了展示软件开发很好实践,作者对一个水容器示例进行多次重构,讨论了18种实现,分别从7个方面改进代码质量:时间效率、空间效率、监控与可靠性、测试与可靠性、可读性、线程安全、可复用性。在此过程中,作者还探讨了与计算机科学、Java编程以及软件工程相关的专业话题,这些知识都有助于读者写出更好的代码。本书面向初级和中级Java程序员,其他面向对象编程人员也能从中受益。
目录
第一部分准备工作
第1章软件质量和待解决问题2
1.1软件质量2
1.1.1内部质量与外部质量3
1.1.2功能性质量与非功能性质量3
1.2主要的外部软件质量4
1.2.1正确性4
1.2.2稳健性5
1.2.3易用性5
1.2.4效率5
1.3主要的内部软件质量6
1.3.1可读性6
1.3.2可复用性6
1.3.3可测试性6
1.3.4可维护性7
1.4软件质量之间的关系7
1.5特殊的质量9
1.5.1线程安全9
1.5.2简洁性9
1.6演进示例:水容器系统9
1.6.1API10
1.6.2用例11
1.7数据的模型和表示12
1.7.1存储水量13
1.7.2存储连接13
1.8你好,容器(Novice)15
1.8.1字段和构造函数15
1.8.2getAmount和addWater方法17
1.8.3connectTo方法17
1.9小结19
1.10扩展阅读19
第2章Reference的实现20
2.1代码(Reference)21
2.1.1内存布局图22
2.1.2方法25
2.2内存需求26
2.3时间复杂度30
2.4学以致用32
2.5小结33
2.6小测验答案和练习答案34
2.7扩展阅读36
第二部分软件质量
第3章速度的要求:时间效率40
3.1常数时间内完成加水(Speed1)41
3.2常数时间内添加连接(Speed2)43
3.2.1用循环链表来表示容器组43
3.2.2延迟更新46
3.3优选的平衡:并查集算法(Speed3)49
3.3.2连接容器树52
3.3.3最坏情况时间复杂度53
3.3.4摊销时间复杂度55
3.3.5可调整大小数组的摊销分析56
3.4比较各种实现59
3.4.1实验59
3.4.2理论与实践60
3.5来点儿新鲜的61
3.5.1快速插入62
3.5.2快速查询62
3.5.3让三个方法都变快63
3.6真实世界的用例63
3.7学以致用64
3.8小结65
3.9小测验答案和练习答案65
3.10扩展阅读68
第4章宝贵的内存:空间效率70
4.1稍微挤一下(Memory1)70
4.2普通数组(Memory2)75
4.3弃用对象(Memory3)78
4.3.1无对象的API79
4.3.2字段和getAmount方法81
4.3.3用一个工厂方法来创建容器82
4.3.4通过ID连接容器84
4.3.5空间复杂度和时间复杂度87
4.4黑洞(Memory4)87
4.5空间和时间的权衡90
4.6来点儿新鲜的92
4.6.1重复对象少的情况92
4.6.2重复元素多的情况93
4.7真实世界的用例94
4.8学以致用94
4.9小结96
4.10小测验答案和练习答案96
4.11扩展阅读100
第5章有自我意识的代码:通过监控实现可靠性102
5.1契约式设计102
5.1.1前置条件和后置条件102
5.1.2不变式104
5.1.3正确性和稳健性105
5.1.4检查契约106
5.1.5更广泛的情况108
5.2基于契约设计水容器109
5.3检查契约的容器(Contracts)111
5.3.1检查addWater方法的契约114
5.4检查不变式的容器(Invariants)117
5.4.1检查connectTo方法的不变式118
5.4.2检查addWater方法的不变式120
5.5来点儿新鲜的120
5.5.1契约121
5.5.2一个基线版本实现121
5.5.3检查契约122
5.5.4检查不变式123
5.6真实世界的用例124
5.7学以致用125
5.8小结126
5.9小测验答案和练习答案126
5.10扩展阅读131
第6章别对我撒谎:通过测试保证可靠性132
6.1测试的基本概念132
6.1.1测试的覆盖率133
6.1.2测试和契约式设计133
6.1.3JUnit134
6.2测试水容器(UnitTests)136
6.2.1初始化测试136
6.2.2测试addWater138
6.2.3测试connectTo方法143
6.2.4运行测试144
6.2.5衡量代码覆盖率145
6.3可测试性(Testable)146
6.3.1可控性146
6.3.2可观察性147
6.3.3隔离:切断依赖关系148
6.4来点儿新鲜的149
6.4.1提高可测试性150
6.4.2一个测试套件151
6.5真实世界的用例153
6.6学以致用154
6.7小结155
6.8小测验答案和练习答案155
6.9扩展阅读160
第7章让代码说话:可读性161
7.1关于可读性的一些观点161
7.1.1企业编码风格规范162
7.1.2可读性因素163
7.2结构性的可读性特征164
7.2.1控制流语句164
7.2.2表达式和局部变量166
7.3外部可读性特征167
7.3.1注释167
7.3.2命名168
7.3.3空白及缩进169
7.4可读的容器(Readable)169
7.4.1用Javadoc描述类的头部170
7.4.2整理connectTo方法173
7.4.3整理addWater方法177
7.5可读性的终极思考178
7.6来点儿新鲜的179
7.7真实世界的用例181
7.8学以致用181
7.9小结183
7.10小测验答案和练习答案183
7.11扩展阅读186
第8章多个厨师一锅饭:线程安全188
8.1线程安全面临的挑战188
8.1.1并发级别190
8.1.2水容器的并发策略192
8.2处理死锁193
8.2.1原子的锁序列194
8.2.2有序的锁序列195
8.2.3一个隐藏的竞争条件196
8.3线程安全的水容器(ThreadSafe)198
8.3.1同步connectTo方法198
8.3.2同步addWater和getAmount方法199
8.4不可变性(Immutable)201
8.4.1API202
8.4.2实现204
8.5来点儿新鲜的206
8.6真实世界的用例208
8.7学以致用209
8.8小结210
8.9小测验答案和练习答案211
8.10扩展阅读213
第9章请重复利用:可复用性215
9.1确立边界215
9.2通用框架216
9.2.1属性API219
9.2.2可变收集器220
9.2.3将Attribute适配到函数接口224
9.3一个通用容器的实现225
9.4通用的考虑227
9.5复原水容器(Generic)228
9.5.1更新用例228
9.5.2设计具体的属性228
9.5.3定义具体的水容器类230
9.6社交网络的帖子230
9.7来点儿新鲜的231
9.7.1参数函数的接口233
9.7.2一个通信模式235
9.8真实世界的用例237
9.9学以致用238
9.10总结240
9.11小测验答案和练习答案240
9.12扩展阅读245
附录A代码高尔夫:简洁性246
附录B终极水容器类249
列表:每一章中主要的类252
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网