免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

行为驱动开发关注点从数据库转向领域模型

  • 2013-08-06
  • 本文字数:757 字

    阅读完需:约 2 分钟

Julie Lerman 在 MSDN 杂志中建议,设计应用的时候应开始使用行为驱动开发(BDD),并着重关注在领域模型而不是数据库。

Julie Lerman,这位自 2003 年以来的一直都是微软 MVP、同时担任顾问和.NET 平台的导师说,BDD 让开发者在构建逻辑和测试的时候关注用例和行为,并用作在和客户讨论问题时定义验收的标准。对于BDD 的初学者,Julie 使用Visual Studio、C#和SpecFlow 实现了一个例子。

SpecFlow 是一个在.NET 平台上开源的工具,作为 Cucumber 家族中的一员,它也支持其他平台的集成。他们使用 Gherkin ,一种基于关键字的语言去描述一个用户故事场景,其中最重要的是 Given,When 和 then。Julie 给出了场景中的一个小例子:

Given(对于)指定的某个用户输入了用户的信息,

When(当) 她完成输入了更多的信息

then(那么) 这个用户的信息应该保存在系统中

SpecFlow 整合了 Visual Studio 并能为指定场景生成和执行测试。从一个简单的用例故事开始,Julie 使用这些工具创建了测试项目并且执行了需要为描述用户故事场景所创建和运行的测试的步骤。

Julies 认为自己是一名数据极客,她十分关注和客户的协作和对其业务的理解。因此她相信领域驱动开发 (DDD) 和行为驱动开发是需要遵守的重要原则。

用户可以在 SpecFlow 的网站上找到更多的导学手册文档

BDD 是在大约 2006 年由 Dan North 创立的,他还写了一篇介绍和关于从BDD 角度去看用例故事的文章。

《实例化需求》一书介绍的是一种跟BDD 关系密切的需求定义方法。

查看英文原文: Get Started With Behaviour-Driven Development Focusing on the Domain Instead of on the Database


感谢杨赛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-08-06 01:581564
用户头像

发布了 81 篇内容, 共 23.9 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

4.从legacy或concurrent开始(从入口开始,然后让我们奔向未来)

全栈潇晨

React React Hooks react源码

温故而知新!腾讯Android开发面试记录,薪资翻倍

欢喜学安卓

android 程序员 面试 移动开发

区块链难在落地,亟需补人才缺口迎爬升期

CECBC

区块链

【LeetCode】K 连续位的最小翻转次数Java题解

Albert

算法 LeetCode 2月春节不断更

6.render阶段(厉害了,我有创建Fiber的技能)

全栈潇晨

React React Hooks react源码

进程管理:kill命令之-9与-15

程序员架构进阶

Java Linux 进程 七日更 2月春节不断更

我用 go-zero 一周实现了一个中台系统,已开源!

万俊峰Kevin

微服务 go-zero Go 语言

如何提升网页核心指标

Vincent

Java架构大牛之路必备“微服务架构笔记”

Java架构之路

Java 程序员 架构 面试 编程语言

诊所数字化:诊所医护人员绩效指标评估方式

boshi

绩效 数字化转型 医疗 七日更

5.state更新流程(setState里到底发生了什么)

全栈潇晨

React React Hooks react源码

元旦立下的Flag,春节后该如何实现?

脑极体

新闻|2021 FOSDEM为期两天的活动成功举办,一大波学习资源来袭!

PostgreSQLChina

数据库 postgresql 软件 开源社区

话题讨论 | 今年,你回家过年了吗?

xcbeyond

话题讨论 春节 就地过年

腾讯云大神用这份“redis深度笔记”把Redis入门到精通全部精髓全部展现出来了

redis 架构 计算机

01 | Mysql基础架构

zach

MySQL

翻译:《实用的Python编程》01_06_Files

codists

人工智能 后端 python 爬虫 数据结构与算法 文件操作

程序员成长第九篇:真实项目中的注意事项

石云升

程序员 项目实战 2月春节不断更

offer稳了!四面阿里面经分享,定级P6之路。

Java架构之路

Java 程序员 架构 面试 编程语言

十四五期间我国区块链技术趋势特征分析

CECBC

区块链 大数据

技术需求文档,应当这么写!

穿甲兵

需求 文档

OAuth:每次授权暗中保护你的那个“MAN”

华为云开发者联盟

大前端 协议 权限 Oauth web服务

28天写作再次开启,你准备好来挑战了吗?

TGO鲲鹏会

28天写作 热门活动

大厂必问算法!查漏补缺LeetCode必考“1024道技术点面试题”

Java架构之路

Java 程序员 架构 面试 编程语言

资本之外,区块链破圈正当时

CECBC

区块链

电信的标准化组织

Geek_古藤模根

标准化 电信

LeetCode题解:63. 不同路径 II,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

阿里面试这样问:redis 为什么把简单的字符串设计成 SDS?

程序员小富

Java redis 面试

探究Python源码,终于弄懂了字符串驻留技术

华为云开发者联盟

Python 字符串 Python解释器 字符串驻留 字符

真牛皮!2021最新Android大厂面试真题大全,BAT大厂面试总结

欢喜学安卓

android 程序员 面试 移动开发

百度Hydra工具在移动端UI兼容性测试上的高效应用

百度Geek说

测试 UI

行为驱动开发关注点从数据库转向领域模型_语言 & 开发_Jan Stenberg_InfoQ精选文章