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%自动化;业务人员认可性能需求;性能测试可重复执行