《软件开发沉思录》读书笔记

来源:互联网 发布:什么是云计算? 编辑:程序博客网 时间:2024/04/29 14:03

1、  业务软件的最后一英里

l  何为最后一英里问题:简单-复杂-不堪重负-采用新系统来替换?风险?(替换的风险,不替换的风险,二难境地)

l  敏捷思潮的一大贡献,是对于软件开发作为社会行为的认识:有更好的沟通,才会有更好的软件

l  敏捷过程的价值,就在于减少“提出业务需求”到“软件投入使用来满足业务需求”的端到端的时间与成本。----------无版本软件!

l  自动化测试的重要意义。开发交付物,生成交付物

2、  一种巢穴,二十种Ruby DSL

Ruby最近得以流行的主要原因,是它非常适合写内部领域特定语言(InternalDSL)。所谓的内部领域特定语言,是指在另一种语言上编写的领域特定语言。

3、  语言的盛景

静态语言:编译与连接后才能加载到内存中执行

动态语言:编制的程序直接被执行

动态类型语言:类型直到语句内执行的时候才能确定。

4、  多语言开发

可以根据业务领域不同,采用不同的更加适合领域特征的语言,但这些语言能够在JVM/CLR上执行,从而可以达到快速构建与跨平台能力。

Groovy、JRuby、Jaskell

函数式编程

Java测试:JMock、Ruby(Mocha)

 

5、  领域标注

领域驱动设计。

利用Java标注或者.Net特性,来实现领域元数据模型

 

6、  一键发布

敏捷软件的核心流程之一:持续集成(CI)。CI是指,开发人员一旦将代码上传,就执行构建,并运行一系列的自动测试套件。

CI工具:CruiseControl

 

7、  敏捷测试和瀑布测试

l  快速失败。尽早测试,尽早失败

l  敏捷项目的准出标准:

单元测试:100%自动化;100%通过;>90%的通过率;纳入持续构建

集成测试:100%自动化;100%通过;纳入持续构建

功能测试:90%自动化;100%通过;纳入持续构建

用户验收测试:业务代表认可软件满足需求;认可程序的可用性

性能测试:100%自动化;业务人员认可性能需求;性能测试可重复执行

0 0
原创粉丝点击