摘要:
不论你曾经听到过什么传言,演进式技术和敏捷技术绝不只是“编码加修复”的一个新名字。在开始构建之前,你仍然需要探索需求并完整地思考架构和设 计;在编码之前,你需要一种好的方式进行建模。图1.1展示了敏捷模型驱动开发(AMDD)的生命周期(Ambler 2004;Ambler 2002)。通过AMDD,你在项目开始时创建一个初始的高层模型,对你打算处理的问题域的总体范围进行建模,并对构建的可能架构进行建模。你通常会创建 的一个模型是“苗条的(slim)”概念/领域模型,该模型描述了主要业务实体以及它们之间的关系(Fowler and Sadalage 2003)。图1.2展示了一个简单财务公司.. 阅读全文
posted @ 2012-04-24 00:50
ChaunceyHao
阅读(255)
评论(0)
推荐(0)
摘要:
为了安全地变更现有的软件,不论是重构它还是增加新的功能,你都需要验证在完成变更后没有造成什么破坏。换言之,你需要对系统执行一次全面的回归测 试。如果你发现造成了某种破坏,就必须进行修复,或图1.4测试先行的开发方式者回滚所做的变更。程序员在开发领域代码的同时开发一个完整的单元测试套 件,这种做法在开发社区中已经越来越普遍,实际上,敏捷开发者喜欢在编写“真正的”代码之前先编写测试代码。就像你测试应用的源代码一样,难道你不应该测 试你的数据库?重要的业务逻辑以存储过程、数据有效性规则、参照完整性(RI)规则等形式实现在你的数据库中,这些业务逻辑显然应该经过彻底的测试。 测试先行开发(TFD),也称 阅读全文
posted @ 2012-04-24 00:47
ChaunceyHao
阅读(495)
评论(0)
推荐(0)
摘要:
有时候事实证明,你对系统的改动并不是一个好主意,你需要将变更回滚到前一个状态。例如,将Customer.FName列改名为 Customer.FirstName会破坏50个外部程序,更新这些程序的费用可能过于巨大,所以目前不能进行。为了使数据库重构能够进行,你需要将下 列工件置于配置管理之下: 创建数据库schema的数据定义语言(DDL)脚本; 数据加载/抽取/迁移的脚本; 数据模型文件; 对象/关系映射元数据; 参考数据; 存储过程和触发器定义; 视图定义; 参照完整性约束; 其他数据库对象,如序列、索引等; 测试数据; 测试数据产生脚本; 测试脚本。 阅读全文
posted @ 2012-04-24 00:45
ChaunceyHao
阅读(189)
评论(1)
推荐(0)
摘要:
沙盒(sandbox)是一个完整的工作环境,在这个环境中可以对系统进行构建、测试和运行。出于安全的考虑,你希望不同的沙盒之间保持分离——开 发者应该能在自己的沙盒中工作而不必担心会破坏别人的工作,你的质量保证/测试小组应该能够安全地运行他们的系统集成测试,你的最终用户应该能够运行系统 而不必担心开发者会造成源数据或系统功能上的冲突。图1.5展示了沙盒的一种逻辑组织——我们称之为逻辑组织是因为大型/复杂的环境可能拥有7~8个物理 沙盒,而小型/简单环境可能只有2~3个物理沙盒。 图1.5 为用户提供安全性的逻辑沙盒为 了能够对数据库schema成功地进行重构,开发人员需要在他们自己的一... 阅读全文
posted @ 2012-04-24 00:41
ChaunceyHao
阅读(251)
评论(0)
推荐(0)
摘要:
如果不讨论采用本书中描述的技术时会遇到的常见障碍,我们的讨论就有疏忽。第一个障碍是文化,这也是最难克服的障碍。今天的许多数据专家都是从20 世纪70年代和80年代早期开始他们的职业生涯的,那时候“编码加修复”的编程方式是很普遍的。IT社区意识到这种方式导致了低品质、难以维护的代码,于 是采用了重型的结构化的开发技术,许多人至今仍按结构化的方式进行开发。因为这种经历,大部分数据专家认为,由20世纪90年代的对象技术革命所引入的演 进式技术不过只是20世纪70年代的“编码加修复”方式的rehash。公平地说,有一些面向对象的程序员确实是这样做的。他们把演进式开发与低品质画上 了等号,但将敏捷社区向 阅读全文
posted @ 2012-04-24 00:38
ChaunceyHao
阅读(181)
评论(0)
推荐(0)
摘要:
瀑布是美妙的旅游景点。但用来组织软件开发项目,瀑布式却是一种特别差劲的策略。 ——Scott Ambler现代软件过程,也称为方法学,在本质上都是演进式的,要求你以迭代和增量的方式工作。这些过程的例子包括Rational统一过程 (RUP)、极限编程(XP)、Scrum、动态系统开发方法(DSDM)、水晶方法系列、团队软件过程(TSP)、敏捷统一过程(AUP)、企业统一过 程(EUP)、特征驱动开发(FDD)和快速应用开发(RAD),等等。工作以迭代的方式进行,你在一段时间内,每项活动做一点,例如建模、测试、编码或 部署,然后是下一个迭代,再下一个迭代。这种过程有别于串行的方式,在串行方式中. 阅读全文
posted @ 2012-04-24 00:36
ChaunceyHao
阅读(894)
评论(0)
推荐(1)
浙公网安备 33010602011771号