写点什么

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

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

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

关注

评论

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

秒云“生活梦想家”计划,从一杯手冲开启

MIAOYUN

企业文化 中国咖啡市场

云原生(三) | Docker篇之轻松学会 Docker命令

Lansonli

Docker 云原生 7月月更

React Table 表格组件使用教程 排序、分页、搜索过滤筛选功能实战开发

蒋川

排序 React 表格 组件库

瑞云与宜宾职院开展校企合作,同深圳VR联合会共建元宇宙产业学院

3DCAT实时渲染

职业教育 虚拟现实 虚拟仿真 元宇宙

ShardingSphere 在数十个联通政务热线场景中的应用:稳定、高效、可复制

SphereEx

数据库 案例 ShardingSphere

云原生(一) | 介绍篇之大数据需要拥抱云原生吗?云原生为什么这么火?

Lansonli

云原生 7月月更

基于Redis + Lua脚本的设计红包雨

华为云开发者联盟

高并发 开发 红包雨

什么是hpaPaaS平台?低代码和hpaPaaS是什么关系?

优秀

低代码

6. 对象存储

MASA技术团队

C# .net 对象存储 框架 Framework

解读Go分布式链路追踪实现原理

华为云开发者联盟

Go 开发

云原生(二) | Docker篇之轻松学会原理|架构|安装|加速

Lansonli

Docker 云原生 7月月更

聊聊 API 管理-开源版 Yapi 到 SaaS 版 Apifox

Liam

WebRTC 音频抗弱网技术(下)

融云 RongCloud

3DCAT投屏功能升级,助力企业营销与培训

3DCAT实时渲染

虚拟仿真 实时云渲染 3DCAT 企业营销 实时渲染云

阿里云架构师马继雨:云超算解决方案全面助力生命科学行业普惠增效

阿里云弹性计算

高性能计算 生命科学 EHPC

长安链研究笔记-证书生成工具

长安链

Flutter 实现小姐姐渐现动画效果

岛上码农

flutter ios 前端 安卓开发 7月月更

「阿里云 RocketMQ 系列公开课」重磅来袭!

阿里巴巴云原生

Apache 阿里云 RocketMQ 云原生 直播

如何基于 Docker 快速搭建 Springboot + Mysql + Redis 项目

冉然学Java

MySQL Docker 源码 springboot Java’

GIS数据漫谈(三)

ThingJS数字孪生引擎

GIS QGIS

用我的事故告诉你:掌握异步很关键

华为云开发者联盟

开发

疫情冲击下,旅游SaaS是如何自救的?

ToB行业头条

后端实战手把手教你写文件上传接口:如何使用 Node.js + MongoDB 开发 RESTful API 接口(Node.js + Express + MongoDB)

蒋川

node.js mongodb API Express

中小企业的需求管理软件都有哪些

爱吃小舅的鱼

需求管理 中小企业

数据库系统设计:分区

华为云开发者联盟

数据库 系统设计 开发 分区

如何通过OpenHarmony系统中集成的ffmpeg库和NAPI机制,实现更多的多媒体功能?

OpenHarmony开发者

OpenHarmony

天天预约 | 2022年6月产品更新

天天预约

小程序 互联网+ 功能更新 SaaS设计 预约工具

华为游戏行业沙龙·出海专场:游戏出海3.0,本地化精细运营成为制胜关键

Geek_2d6073

云原生(四) | Docker篇之网络和存储原理

Lansonli

Docker 云原生

大数据15周作业

Asha

一位 sealer maintainer 的心路历程

阿里巴巴云原生

阿里云 开源 云原生 sealer

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