演进式/敏捷数据库最佳实践

本文描述了一些敏捷/演进式数据库开发的最佳实践,包括数据库重构、敏捷数据建模、数据库回归测试、配置数据库工件的管理等,旨在帮助数据专家在演进式团队中成为有效成员。

原文地址:http://www.agiledata.org/essays/bestPractices.html

现代软件开发过程,包括统一软件开发过程(RUP)、极限编程(XP)、敏捷统一过程(AUP)以及Scrum本质上,如果不是敏捷的话,都是演进式的。这意味着如果数据专家想要成为这种团队中的有效成员,就需要采用能够使他们演进式工作的工具和技术。IT系统的数据方面没有什么特殊之处:它们可以像非数据方面一样采用演进式的方式进行开发。即使是数据仓库与商务智能项目,也可以采用演进式的方式(而且坦率地说这是一个首选方法)。本文描述了一些敏捷/演进式数据库开发的最佳实践。

这些演进式/敏捷数据库开发的“最佳实践”包括:

  1. 数据库重构。数据库重构是对数据库模式的微小改动,它改进了模式的设计但保持了语义(例如既不添加任何东西也不破坏任何东西)。数据库重构过程是数据库模式的演进式改进,使得你能够支持客户的新需求。
  2. 敏捷数据建模。使用数据建模的演进式方法,以迭代和增量的方式对系统的数据进行建模。使用敏捷方法,以高度协作的方式进行演进式建模。在项目初期,设计出一个初始的高层需求和体系结构,然后以一种即时生产(JIT)的方式针对细节进行风暴建模--不再使用预先大量建模(BMUF)。
  3. 数据库回归测试。应该确保数据库模式确实能够满足系统需求,最好的方式是测试。使用测试驱动开发(TDD)的方法时,在编写产品数据库模式代码之前先编写一个单元测试,最终的结果是拥有了一个100%数据库模式的回归测试。敏捷测试提供了具体的反馈,那就是需要确保数据质量。
  4. 配置数据库工件的管理。数据模型、数据库测试、测试数据等等都是重要的项目工件,应该像其他工件一样进行配置管理。
  5. 开发者沙盒。开发人员需要自己的工作环境,称为沙盒。他们能够在沙盒中修改系统的一部分,确认修改有效,然后与其他团队成员的工作进行集成。
  6. 数据标准化。数据标准化是组织数据模型中的数据属性,以增强实体类型的内聚性的过程。换句话说,数据标准化的目标是减少甚至消除数据冗余。这对于应用开发人员来说是一个重要的考虑因素,因为在关系数据库中多处维护相同的信息时,存储对象是非常复杂的。
  7. 设定一个现实的主键策略。事实上有时候需要使用自然键,有时候又需要替代键。作为专家需要明白什么时候应用何种策略,并且当你发现做出了错误选择时需要进行重构。
  8. 数据库封装。数据库封装层从业务代码中隐藏了数据的实现细节,包括物理模式。实际上,它为你的业务对象提供了持久化服务--能够针对数据源读取数据、写入数据以及删除数据。理想情况下,业务对象应该对如何持久化毫无了解。数据库封装层既不是魔术也不是学术理论;他是各种大小应用,简单或复杂,常用的实践。数据库封装层是一种重要的技术,每个敏捷软件开发人员都应该了解并学会使用。
  9. 培训开发人员的基本数据技能。这样能够使得开发人员更有效地改善数据方面的工作以及与数据专家的交流。基本技能包括:关系数据库基本原理、数据建模、对象与关系数据库映射(O/R映射)、遗留数据处理、XML、参照完整性与共享业务逻辑、如何从关系数据库中检索信息、编写报告、安全访问控制以及事务与并发控制。
  10. 培训DBA的基本开发技能。同样,DBA需要理解应用开发,以便能够在他们支持的团队中发挥积极的作用。
  11. 共同的开发指导方针。拥有一个容易理解和遵守的、共同的、有效的开发标准能够极大地提高系统的质量。这些方针可能包括,但不限于,编程指南、建模风格指南、数据命名约定以及用户界面约定(包括报表设计约定)。
  12. 精益数据管理。精益管理的目标是确保组织内部的数据质量、有效性、完整性、安全性以及可用性,而敏捷/精益数据管理的目的是使得开发团队在整个IT生态圈中能够有效地完成这些事情。许多传统的数据管理方法似乎在实践中奋力前行,我表示怀疑,部分因为文化差异阻碍,部分因为传统IT管理通常进行艰难。传统管理策略典型的命令与控制方法很像放羊,你做了许多努力但是从长远来看没有什么效果。另一方面,精益管理专注于人并且激励他们做正确的事情。精益数据管理方法促进数据专家和开发团队之间的健康协作的关系。
  13. 敏捷主数据管理(MDM)。如果你计划在组织内部采用MDM策略,至少应该采用敏捷方式。许多组织转向MDM是进展困难,通产是因为他们采用了传统的命令与控制策略。

参考资料与推荐在线阅读

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24945919/viewspace-742286/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24945919/viewspace-742286/

回顾1991~2017这27年,恰好覆盖了敏捷运动的前生后世,无数软件领域的英才和斗士为之前仆后继,层出不穷地创造出更有效的方法,在某些场景下影响深远,得到了广泛传播和实施,并取得了巨大的商业成功。 我列举了32种耳熟能详的敏捷精益方法或者方法论,大部分现在仍在使用和演进中。如有遗漏和错误,请读者与我微信(JINYI-4013)联系,这也是这个时代的社区文化和共创文化使然。 与之相对,我也搜集了36个中国互联网的著名LOGO,它们在这20多年间根本地改变了中国几代人的生活、工作和娱乐方,影响的总人数和金钱价值堪称世界第一。 拿这两个领域比较,不是横向比较,而是纵深比较:美国人发明的每一种更先进的方法都通过至少一本或更多的著作保护知识产权,并迅速传播到世界各地,与之配套的培训、认证、咨询可以成为很多人的job,产生持久的商业价值和社会价值。而中国的互联网经济模日新月异,映射出当代国民发财致富和寻求变化的强烈梦想以及实现梦想的超级行动力。 这项收集和总结工作比我想象的更耗时,也算是跨年完成的。希望大家像看电影一样看一看下面的编年史,这就是我们所经历的过去20多年的历史。 注:下面每一种敏捷方法的名称用红色背景色,并附一本代表作的书名,所有这些书籍在amazon.com有售。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值