写点什么

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

  • 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:582072
用户头像

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

关注

评论

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

DevOps|1024程序员节如何做?介绍下我的思路

laofo

DevOps 研发效能 1024程序员节 快手

SegmentFault 思否发布开源问答社区软件 Answer

万事ONES

Java | if语句和循环结构

陌上

ide Java、 10月月更

鸿蒙开发工具 DevEco Studio 3.0 体验与项目介绍

宇宙之一粟

HarmonyOS 鸿蒙应用开发 10月月更

【愚公系列】2022年10月 Go教学课程 038-异常处理

愚公搬代码

10月月更

Java领域又一神作!《凤凰架构》仅开源3小时,竟遭受Github万人哄抢

程序员小毕

程序员 架构 分布式 程序人生 系统设计

当我遇到10亿参数组合

FunTester

OpenCloudOS社区发起的程序员节专属系列活动

B Impact

Java实现随机人名抽取

魏铁锤

10月月更

Java之抽象类

魏铁锤

10月月更

C# 线程的优先级

IC00

C# 学习 程序员 上位机 10月月更

MapReduce作业生命周期

穿过生命散发芬芳

mapreduce 10月月更

Vue.nextTick核心原理

yyds2026

Vue

Spring Boot「13」使用 Actuator

Samson

Java spring 学习笔记 spring-boot 10月月更

算法题学习---链表内指定区间反转

桑榆

算法题 10月月更 C++

[极客大挑战 2019]Http 题解

w010w

Web HTTP CTF 10月月更

1024里的小温暖,用技术让生活变得更美好!

阿里技术

1024程序员节

大家都在“卷”的推荐系统还有进步空间吗?看技术大牛们怎么说

小红书技术REDtech

【web 开发基础】PHP 快速入门(9)-PHP 运算符之位运算符详解

迷彩

位运算 10月月更 PHP基础 PHP位运算

Opencv 图像处理:数字图像的必会知识

timerring

OpenCV 计算机视觉 10月月更

企业文档过多如何管理?文档协同能够帮到你

Baklib

文档 文档管理

【LeetCode】分割数组Java题解

Albert

算法 LeetCode 10月月更

观察者模式的基础原理

阿泽🧸

观察者模式 10月月更

“程”风破浪的开发者|APP自动化效果测试工具

芯动大师

学习方法 “程”风破浪的开发者 手机APP测试

2022-10-24:以下go语言代码输出什么?A:3 3;B:3 4;C:0 0;D:0 1。 package main func main() { m := make(map[int]int

福大大架构师每日一题

golang 福大大 选择题

一个“简单”的面试题:什么是环回地址127.0.0.1?

wljslmz

10月月更 127.0.0.1 环回地址

leetcode 191. Number of 1 Bits 位1的个数(简单)

okokabcd

LeetCode 数据结构与算法

知识管理是团队的心脏,让企业管理更上一层楼

Baklib

文档 文档协同

C# 快捷菜单ConTextMenustrip控件学习

IC00

C# 学习 程序员 上位机 10月月更

有没有完全自主的国产化数据库技术

王磊

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