浮现式设计是一种敏捷技术,强调在开发过程中不断演进。《浮现式设计:专业软件开发的演进本质》的讨论围绕着专业软件开发方法的演进主题展开,强调了让软件成为一个真正专业的重要性,以及以演进方式开发软件的重大意义。书中谈到了如何在演进过程中综合运用设计模式、重构、单元测试和测试驱动开发等实践,以及何时制定耦合、内聚和封装等关键决策,而且通过准确生动的示例说明了如何开发出真正有用的软件。   《浮现式设计:专业软件开发的演进本质》主要面向软件开发者群体,尤其是对敏捷开发感兴趣的程序设计人员。 第1章 软件开发这个职业 1 1.1 人类制作软件已经有多久的历史了 1 1.2 软件开发是一种什么样的活动 2 1.3 软件开发缺少了什么 4 1.4 谁说了算 6 1.5 独特性 6 第2章 从衣橱到探月 8 2.1 软件开发中的模式和专业化 8 2.2 Andrea的衣橱 9 2.3 探月 13 2.3.1 因素的连锁变化 16 2.3.2 不同的因素导致不同的设计 16 2.3.3 还有更多环境因素 17 2.3.4 成本和获益 18 2.3.5 火星探险 18 2.4 模式的价值 19 2.5 小结 20 第3章 软件开发的本质 21 3.1 失败率过高 21 3.2 成功的定义 22 3.3 Standish Group 23 3.4 做了错误的事情 24 3.5 做事的方式错了 25 3.6 随着时间的推移,软件开发也有所改善 27 3.7 一个原因:土木工程的类比 27 3.8 放弃希望 29 3.9 有时等待和拖延也是必要的 30 3.10 桥是硬的,软件是软的 30 3.11 我们在变化的海洋中游泳 31 3.12 接受变化 31 3.13 拥抱变化 32 3.14 利用变化 32 3.15 更好的类比:不断演进的系统 34 3.16 小结 37 第4章 代码的演进:初级阶段 38 4.1 用对象结构来代替过程逻辑 38 4.2 面向对象和模式的起源 39 4.3 一个示例:简单条件和Proxy模式 40 4.4 下一步:多路径条件选择 43 4.5 为什么要采用对象结构 45 4.6 从多个条件中选择一个 46 4.7 小结 46 第5章 使用和发现模式 48 5.1 根据上下文进行设计:我做的另一个木匠活 48 5.2 模式引出了另一个看问题的角度 55 5.3 模式提供了一种讨论设计的语言 55 5.4 本书中的模式 56 5.5 小结 56 第6章 软件开发金字塔 58 6.1 构成专业的元素 58 6.2 一种形象的表示 60 6.3 小结 60 第7章 注重软件质量 61 7.1 封装 62 7.2 内聚 62 7.2.1 方法内聚 63 7.2.2 视角层的内聚 65 7.2.3 类内聚 66 7.2.4 内聚到何种程度才足够 67 7.3 耦合 67 7.3.1 有意耦合与意外耦合 68 7.3.2 耦合类型 69 7.4 冗余 73 7.5 可测试性 77 7.6 可读性 78 7.7 软件的病症 79 7.7.1 内聚性较差的信号 79 7.7.2 意外耦合或不合逻辑耦合的信号 80 7.7.3 冗余的信号 81 7.8 小结 81 第8章 注重原则和智慧结晶 83 8.1 使用与创建分离 83 8.1.1 Fowler的三层视角 83 8.1.2 另一种视角 84 8.1.3 使用的视角 85 8.1.4 一个单独的视角:创建 86 8.1.5 最后考虑构造细节 87 8.1.6 回到现实 88 8.2 开闭原则 89 8.2.1 类级的开闭原则 90 8.2.2 方法级的开闭原则 91 8.3 依赖倒置原则 92 8.4 GoF的建议 93 8.4.1 设计方法的接口 93 8.4.2 设计类的接口 94 8.4.3 GoF:优先使用对象聚合而非类继承 95 8.5 GoF:在设计中思考什么应该变化并封装会发生变化的概念 98 8.6 小结 100 第9章 注重实践 101 9.1 统一编码风格 101 9.1.1 注释 102 9.1.2 命名类、方法和变量 103 9.1.3 编码标准的好处 104 9.2 意图导向编程 105 9.3 封装构造函数 107 9.3.1 原则与实践 110 9.3.2 做出决定 110 9.4 公共性-可变性分析 111 9.5 实践与自由 114 9.6 小结 115 第10章 注重纪律:单元测试 116 10.1 测试的经济学 116 10.1.1 单元测试 117 10.1.2 先写测试 119 10.2 JUnit框架 120 10.2.1 JUnit基础知识 121 10.2.2 JUnit示例 122 10.2.3 Rule.java:先编码,再测试 122 10.2.4 RuleContainer.java:先测试,再编码 128 10.2.5 消除冗余:@Before和@After 135 10.2.6 自动化批量测试 137 10.2.7 异常和单元测试 139 10.3 模拟对象 141 10.3.1 MockObject框架 142 10.3.2 伪对象 145 10.3.3 依赖注入和Endo-Testing技巧 146 10.3.4 Endo-Testing 147 10.4 小结 148 第11章 注重纪律:重构 149 11.1 重构质量糟糕的代码 150 11.2 重构质量优秀的代码 151 11.3 结构变化与功能变化 152 11.4 重构可帮助你做出选择 153 11.5 模式可以成为重构的目标 154 11.6 避免重构:预构 154 11.7 重构技巧 155 11.8 重构遗留代码 162 11.9 小结 164 第12章 测试驱动开发 165 12.1 何谓测试驱动开发 165 12.1.1 测试驱动与先写测试 165 12.1.2 从单元测试的角度来设计 166 12.2 测试与质量 167 12.2.1 测试与内聚 167 12.2.2 测试与耦合 168 12.2.3 测试与冗余 169 12.3 测试驱动开发与模式 169 12.3.1 Strategy模式 169 12.3.2 乌龟站在乌龟上,一直向下 170 12.3.3 模拟对象/模拟乌龟 171 12.4 模拟对象 172 12.5 模拟乌龟 174 12.6 测试Decorator模式 174 12.7 小结 178 第13章 模式与因素 179 13.1 在演进的设计中做决策 179 13.2 Christopher Apexander与他所提出的“因素” 180 13.2.1 信号处理器示例 180 13.2.2 PKZip示例 184 13.2.3 测试与因素 186 13.3 更多选择,更多因素 187 13.4 小结 190 第14章 浮现式设计:案例分析 191 14.1 问题领域:MWave公司 191 14.2 团队 192 14.3 最简单的能够正常运作的设计 194 14.4 新需求:更复杂的机器 196 14.5 顺便介绍一下 198 14.6 更多好消息 199 14.7 小结:设计是一次漫长而奇特的旅行 200 第15章 结束语:展望2020年 202 附录A 演进路径 204 附录B 示例中用到的模式简介 213 附录C 有用幻觉之原理 274 参考书目 279
2023-01-28 10:15:26 23.86MB 软件工程 浮现式设计 软件开发 敏捷
1
STM32F4开发指南-寄存器版本,资料详细,包括环境搭建,配置,外设资源的使用等
2023-01-26 10:06:21 40.57MB STM32F4XX
1
SDIO卡的CIA初始化有点纠结,看过该文档之后,相信会有个比较深的理解。
2023-01-19 00:42:29 210KB CIA 初始化
1
UNIGUI开发文档,我收集了好长时间,里面有开发遇到的各种解决办法。
2023-01-18 20:54:43 20.85MB 开发 DELPHI10.3 unigui
1
Hadoop的2.0版本的yarn的框架介绍啊 Hadoop yarnYARN 本身框架的优势是扩展性与支持多计算模型。对于扩展性目前主要体现在计算节点规模上,以前 JobTracker-TaskTracker 模型下最多大约在 5000 台机器左右,对于 YARN,官方说可以支持大约 10w 台机器,当然这个目前还没有一家公司去试用过,连 300 台机器目前估计也是测试阶段。 对于支持多计算模型,目前 YARN 理论是可以支持更多的计算模型的,如: MAP-REDUCE、 MPI、 Giraph、 Spark 等。目前 MAP-REDUCE 是默认支持的
2023-01-17 14:31:09 1.88MB yarn hadoop 框架代码分析
1
logback日志配置文件的详细注解,介绍指定哪个java包或者java类输出日志,输出什么level的日志,日志的文件命名,路径等
2023-01-17 10:09:33 20KB logback日志配置
1
一、稳压电源1、3~25V电压可调稳压电路图此稳压电源可调范围在3.5V~25V之间任意调节,输出电流大,并采用可调稳压管式电路,从而得到满意平稳的输出电压。工作原理: 经整流滤波后直流电压由R1提供给调整管的基极,使调整管导通,在V1导通时电压经过RP、R2使V2导通,接着V3也导通,这 时V1、V2、 V3的发射极和集电极电压不再变化(其作用完全与稳压管一样)。调节RP,可得到平稳的输出电压,R1、RP、R2与R3比值决定本电路输出的电压值。 2、10A3~15V稳压可调电源电路图无论检修电脑还是电子制作都离不开稳压电源,下面介绍一款直流电压从3V到15V连续可调的稳压电源,最大电流可达10A,该电路用了具有温度补偿特性的,高精度的标准电压源集成电路TL431,使稳压精度更高,如果没有特殊要求,基本能满足正常维修使用,电路见下图。工程师必阅:稳压电源、DC-DC电源、开关电源等详细电路图二、开关电源 UC3842工作原理下图为UC3842 内部框图和引脚图,UC3842 采用固定工作频率脉冲宽度可控调制方式,共有8 个引脚,各脚功能如下:①脚是误差放大器的输出端,外接阻
2023-01-16 20:18:25 194KB 稳压电源 DC-DC电源 开关电源 文章
1
模拟文件系统,操作系统课程设计的心血,含详细设计报告设计要求·设计思想·数据结构设计·实体关系图·数.rar
2023-01-16 13:23:50 136KB 模拟文件系统
1
内容有 hci l2cap rcomm sdp等内容
2023-01-15 21:31:21 6.08MB 蓝牙 协议 l2cap rcomm
1
一个scanf详细介绍的文本 包含很多你可能不会的技巧
2023-01-15 11:19:46 12KB scanf
1