搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
软件设计的哲学(第2版)
0.00     定价 ¥ 69.80
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购23本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787115655615
  • 作      者:
    作者:(美)约翰·奥斯特豪特|责编:陈冀康|译者:茹炳晟//王海鹏
  • 出 版 社 :
    人民邮电出版社
  • 出版日期:
    2024-11-01
收藏
畅销推荐
内容介绍
本书深入探讨了软件设计中的核心问题:如何将复杂的软件系统分解为可以相对独立实现的模块(例如类和方法),从而降低其复杂性并提高开发效率。本书首先介绍了软件设计中的基本问题,即复杂性的本质。其次,讨论了有关如何处理软件设计过程的“哲学”问题,如通用设计的重要性、与《代码整洁之道》中设计哲学的对比,以及如何将重要的东西和不重要的东西区分开等内容。最后,总结了在软件设计过程中应遵循的一系列设计原则,以及一系列识别设计问题的警示信号。 本书适合软件工程师、计算机科学专业的学生、教育者、对软件设计和开发感兴趣的自学者和技术管理者阅读。通过应用本书中的思想,读者可以最大限度地降低大型软件系统的复杂性,从而更快地以更低的成本编写软件,并构建更易于维护和增强的系统。
展开
目录
第1章 导言
1.1 如何使用本书
第2章 复杂性的本质
2.1 复杂性的定义
2.2 复杂性的表现
2.3 复杂性的原因
2.4 复杂性是增量的
2.5 结论
第3章 能工作的代码是不够的
3.1 战术性编程
3.2 战略性编程
3.3 投资多少?
3.4 初创企业与投资
3.5 结论
第4章 模块应该深
4.1 模块化设计
4.2 接口包含哪些内容?
4.3 抽象
4.4 深模块
4.5 浅模块
4.6 类炎
4.7 示例:Java和UNIX I/O
4.8 结论
第5章 信息隐藏(和泄漏)
5.1 信息隐藏
5.2 信息泄漏
5.3 时序分解
5.4 示例:HTTP服务器
5.5 示例:类过多
5.6 示例:HTTP参数处理
5.7 示例:HTTP响应中的默认值
5.8 类内的信息隐藏
5.9 过犹不及
5.10 结论
第6章 通用模块更深
6.1 让类有点通用
6.2 示例:为编辑器存储文本
6.3 更通用的API
6.4 通用性带来更好的信息隐藏
6.5 要问自己的问题
6.6 将专用性向上推(和向下推)
6.7 示例:编辑器撤销机制
6.8 消除代码中的特例
6.9 结论
第7章 不同层,不同抽象
7.1 直通方法
7.2 接口重复何时可行?
7.3 装饰器
7.4 接口与实现
7.5 直通变量
7.6 结论
第8章 降低复杂性
8.1 示例:编辑器文本类
8.2 示例:配置参数
8.3 过犹不及
8.4 结论
第9章 合并好,还是分开好?
9.1 如果共享信息,则合并
9.2 如果可以简化接口,则合并
9.3 消除重复,则合并
9.4 区分通用代码和专用代码
9.5 示例:插入光标和选择区域
9.6 示例:单独的日志类
9.7 拆分和连接方法
9.8 不同意见:《代码整洁之道》
9.9 结论
第10章 避免处理异常
10.1 为何异常会增加复杂性
10.2 异常太多
10.3 定义错误不存在
10.4 示例:Windows中的文件删除
10.5 示例:Java的substring方法
10.6 异常屏蔽
10.7 异常聚合
10.8 就让它崩溃
10.9 过犹不及
10.10 结论
第11章 设计两次
第12章 为什么要写注释?4个借口
12.1 好的代码自己就是文档
12.2 我没有时间写注释
12.3 注释会过时,会产生误导
12.4 我见过的注释都没有价值
12.5 写好注释的好处
12.6 不同观点:注释就是失败
第13章 注释应描述代码中不明显的内容
13.1 选择约定
13.2 不要重复代码
13.3 低层注释增加精确度
13.4 高层注释增强直观性
13.5 接口文档
13.6 实现注释:做什么和为什么,而不是怎么做
13.7 跨模块设计决策
13.8 结论
13.9 13.5节问题解答
第14章 选择名称
14.1 示例:糟糕的名称会导致缺陷
14.2 塑造形象
14.3 名称应精确
14.4 一致地使用名称
14.5 避免多余的词
14.6 不同意见:Go风格指南
14.7 结论
第15章 先编写注释
15.1 拖延的注释是糟糕的注释
15.2 先编写注释
15.3 注释是一种设计工具
15.4 早期注释是有趣的注释
15.5 早期注释是否昂贵?
15.6 结论
第16章 修改现有代码
16.1 持续使用战略性编程
16.2 维护注释:让注释靠近代码
16.3 注释属于代码,而非提交日志
16.4 维护注释:避免重复
16.5 维护注释:检查差异
16.6 更高层次的注释更容易维护
第17章 一致性
17.1 一致性的例子
17.2 确保一致性
17.3 过犹不及
17.4 结论
第18章 代码应显而易见
18.1 让代码更显而易见
18.2 让代码不显而易见的因素
18.3 结论
第19章 软件发展趋势
19.1 面向对象编程和继承
19.2 敏捷开发
19.3 单元测试
19.4 测试驱动开发
19.5 设计模式
19.6 取值方法和设值方法
19.7 结论
第20章 性能设计
20.1 如何考虑性能
20.2 修改前(后)的度量
20.3 围绕关键路径进行设计
20.4 示例:RAMCloud的Buffer类
20.5 结论
第21章 确定什么是重要的
21.1 如何确定什么是重要的?
21.2 尽量减少重要的东西
21.3 如何强调重要的东西
21.4 错误
21.5 更广泛的思考
第22章 结论
设计原则总结
警示信号总结
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证