软件预构艺术
软件预构艺术
Ken Pugh
O'Reilly Taiwan公司 编译
出版时间:2007年09月
页数:226
利用经验累积而得的洞察力开发新的解决方案被称为预构。透过重构而获得的专业知识也属于这类经验,而预构的词源即重构。重构是修改程序或软件系统内部结构的实践,以此在保留其现有行为的基础上改良设计。重构的原因有多种:方便后期增加功能、提高可维护性、提升性能。
本书作者是经验老道的软件开发人员。书中,作者运用他个人和其他众多开发人员的丰富经验,展示由其推衍而得的各项实践方针。这些方针把优秀的开发人员在设计时隐而未显的考虑细节如实地呈现出来。许多方针都围绕着极致抽象化、极致隔离以及极致可读性这个概念。在假想的软件项目和实际项目的介绍中,作者把实践方针呈现在读者面前。其中几条于稍后列出。
把作者的方针应用到你的软件项目,有助于写出可读性、可维护性更棒的程序。这些方针可以协助你前期决策,以减少后期重构的工作量。在这样的前提下,你可以预测未来,减少修改。
简言之,就是程序预构会使你更有效率。
● 要抽象,就彻底抽象
● 整合小块要比分拆大块容易
● 做好小差事,就能常受重用
● 全局计划,局部开发
● 让你的程序能够沟通
● 最容易调试的程序是还没写的程序
● 使用客户的语言
● 不要让冷气进来
● 绝不沉默
● 不要加速,直到你知道要去哪儿
Ken Pugh是Puge-Killen协会主席之一。Ken担任顾问、从事教育培训、担任教师以及出庭提供证词,涉足的科技领域有面向对象设计、Linux/Unix、网络以及系统开发实践。他参与过的项目包括山羊血清流程控制、担保抵押处理软件以及摄影分级。Ken时常在全国会议和区域会议发表演讲,从伦敦到悉尼都有他的客户。不工作时,他喜欢滑雪、冲浪、骑自行车以及到阿帕拉契山径徒步旅行。
  1. 前言
  2. 第一章 预构简介
  3. 何谓预构?
  4. 三个极致
  5. 探索方针
  6. 本书的情境
  7. 第二章 系统纪实
  8. 和Sam会谈
  9. 避免重复创造
  10. 名称里有什么?
  11. 碎块vs.整块
  12. 凝结成块
  13. 抽象化
  14. 原型值千言
  15. 第三章 一般开发议题
  16. 从大蓝图开始
  17. 接口契约
  18. 验证
  19. 程序代码传达的信息
  20. 一致性就是简易性
  21. 预构的态度
  22. 不要自我重复
  23. 把假设和决策形成说明文档
  24. 处理误差和错误
  25. 速度
  26. 电子表格难题
  27. 工具只是工具——要善用
  28. 第四章 大蓝图
  29. 系统续论
  30. 过程
  31. 初始设计
  32. 全局规划,局部设计
  33. 测试功能
  34. 测试品质
  35. 安全
  36. 第五章 撰写类
  37. 范畴和类
  38. 声明vs.执行
  39. 适当的继承
  40. 以文本通信
  41. 不止一个
  42. 第六章 再谈类
  43. 尊重类箴言
  44. 对象的三条定律
  45. 需求决定类
  46. 多态
  47. 一件小差事
  48. 原则vs.实现
  49. 极致命名
  50. 函数的重载
  51. 第七章 快完成了
  52. 我们在哪儿?
  53. 关注点的隔离
  54. 迁移至新系统
  55. 第八章 第一个版本
  56. 实践见真章
  57. 回顾时间
  58. 系统实情
  59. 操作接口
  60. 抽象数据类型
  61. 配置
  62. 测试
  63. 处理误差和错误
  64. 预构一下
  65. 第一轮发布的初版
  66. 实践和理论偶尔不相吻合
  67. 剩余的类
  68. 第九章 关联性和状态
  69. Sam的新需求
  70. 以谁为主?
  71. 对象的状态
  72. 第十章 接口和调整
  73. 目录搜索用例
  74. 设计接口
  75. 接口开发
  76. 接口测试
  77. 接口分割
  78. 有东西能用
  79. 第十一章 邮政编码和接口
  80. 调整
  81. 把钱交出去
  82. 未写的程序代码
  83. 间接性
  84. 日志记录
  85. 范式互斥
  86. 第十二章 更多的报表
  87. 花哨的报表
  88. 修改发生了
  89. 导出
  90. 第十三章 发票、信用卡、折扣
  91. 下一步
  92. 客户的语言
  93. 安全和隐私
  94. 第十四章 Sam在扩张事业
  95. 第二家店
  96. 新的开发工作
  97. 第三家店
  98. 再见了,Sam
  99. 通用性
  100. 第十五章 打印服务器范例
  101. 简介
  102. 系统
  103. 消息
  104. 测试
  105. 日志记录
  106. 还可以隔离一点
  107. 后记
  108. 第十六章 反垃圾邮件范例
  109. 情境
  110. 检查垃圾邮件
  111. ReceivingMailServer类
  112. ReceivedMailExaminer类
  113. 完整流程
  114. 第十七章 后记
  115. 附录一 方针与原则
  116. 附录二 源代码
书名:软件预构艺术
作者:Ken Pugh
译者:O'Reilly Taiwan公司 编译
国内出版社:东南大学出版社
出版时间:2007年09月
页数:226
书号:978-7-5641-0906-6
原版书出版商:O'Reilly Media
Ken Pugh
 
Ken Pugh在软件分析和设计领域有相当广泛的经验。参与过的系统包括山羊血清流程控制、金融分析以及卫星轨道噪音记录等。他之前写过书讨论C和Unix,以前也替《C/C++ Users Journal》写专栏。他在威斯利学院、夏威夷大学以及许多公司教授程序设计课程,也时常在全国会议上发表演说。他担任个人顾问已经超过20年,从伦敦到悉尼都有他的客户。身为专家级证人,他也在民事诉讼和刑事案件中提供证词。
不工作时,他喜欢滑雪、冲浪、骑自行车,还喜欢到阿巴拉契亚山徒步旅行。
KEN PUGH has extensive experience in the area of software analysis and design. He has worked on systems ranging from goat serum process control to financial analysis to noise recording to satellite tracking. His previous books were on C and Unix, and he is a former columnist for the C/C++ Users Journal. He has taught programming courses for Wellesley College and the University of Hawaii, as well as numerous corporate courses, and he frequently presents at national conferences. As an independent consultant for over 20 years, he has served clients from London to Sydney.
As an expert witness, he has provided testi-mony in both civil suits and criminal cases. When not computing, he enjoys snowboarding, windsurfing, biking, and hiking the Appalachian Trail.