10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

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

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

关注

评论

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

阿里JAVA架构师面试136题含答案:JVM+spring+分布式+并发编程!

程序知音

Java 程序员 java面试 后端技术 八股文

转转监控系统的内部原理及实践 审核中

转转技术团队

监控 Prometheus

JAVA编程规范之日志规约

源字节1号

后端技术

算法题每日一练---第5天:星系炸弹

知心宝贝

算法 前端 后端 7月月更

SENSORO 付刘伟:创新技术服务为基层政府筑造数字底座

SENSORO

人工智能 大数据 物联网 城市大脑 数字政府

C# 窗体应用DataGridView,使用数据库(Sql和MySQl)对DataGridView绑定数据源,获取数据

IC00

C# 7月月更

转转微服务框架的连接管理

转转技术团队

微服务 RPC 服务治理

干货分享-作为Lead 接手一个新的数据团队一 问题盘点 与Insights的发现

松子(李博源)

经验分享 数据分析师 成长笔记 带团队

开幕在即 | “万物互联,使能千行百业”2022开放原子全球开源峰会OpenAtom OpenHarmony分论坛

OpenHarmony开发者

OpenHarmony

一文读懂Elephant Swap的LaaS方案的优势之处

西柚子

Spring Cloud 与 K8s 的微服务设计

Damon

7月月更

java零基础入门-java8新特性(上篇)

喵手

Java 7月月更

TIME的新封面:元宇宙将改变一切

智捷云

元宇宙 Metaverse 智捷云 智捷云科技

SeekTiger的Okaleido有大动作,生态通证STI会借此爆发?

鳄鱼视界

面向高性能计算场景的存储系统解决方案

Baidu AICLOUD

异构计算 云原生存储 AI加速

万物皆可柯里化的 Ramda.js

掘金安东尼

前端 函数式编程 7月月更

NFT数字藏品系统搭建—app开发

开源直播系统源码

软件开发 数字藏品 NFT数字藏品系统

敏捷 ? DevOps ?

FunTester

优博讯助力深圳打造全球“鸿蒙欧拉之城”

极客天地

NFT卡牌链游系统Dapp开发搭建

薇電13242772558

NFT 链游

多商户系统的直播功能用过吗?用过的朋友扣个 666!

CRMEB

关于数据产品经理的三个小的知识点

松子(李博源)

数据中台 数据产品经理 数据产品

LeetCode-88. 合并两个有序数组(java)

bug菌

Leet Code 7月月更

如何做好研发精益需求管理

思码逸研发效能

研发管理 研发效能 科技

CSS 炫酷文本过渡动画

南城FE

CSS css3 前端 7月月更

面试突击67:说一下 TCP/IP 协议?以及每层的作用?

王磊

Java 面试

图文并茂,讲解TCP和UDP协议的原理以及区别

程序知音

程序员 网络 TCP/IP 后端技术 底层原理

实时计算基本概念解析

五分钟学大数据

实时计算 7月月更

在 Kyma 云原生平台上开发并部署 Node.js 应用

汪子熙

Kubernetes 云原生 SAP Kyma 7月月更

NFT挖矿分红系统开发模式定制

开发微hkkf5566

妙啊!美团 OCTO 分布式服务治理系统,这描述也太清晰了

冉然学Java

Java 分布式 美团 #技术干货# Java 开发

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