写点什么

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

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

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

关注

评论

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

MySQL:如果被更新字段的新值与旧值相等,SQL会被真正执行吗?

程序员拾山

MySQL

工信部电子标准院:龙蜥操作系统获评“优秀”

OpenAnolis小助手

工信部 开源项目 获奖 龙蜥操作系统 生态构建

架构误区系列11:无聊的架构归一

agnostic

架构治理

技术如何分担产品之忧?

石云升

极客时间 1月月更 技术领导力实战笔记

复习前端:浏览器缓存策略

devpoint

Service Worker 浏览器缓存 缓存技术

Best Wishes「兔」You!

阿里云CloudImagine

从员工批量离职中,认识管理的价值

石云升

极客时间 1月月更 技术领导力实战笔记

复习前端:前端安全

devpoint

CSRF xss攻击 前端安全

Kratos微服务框架API工程化指南

golang gRPC microservice Kratos 工程化

2022年终总结-无所吊谓

wood

年终总结 稳定 开心 普通的一年

如何快速优雅的用Know Streaming创建Topic

石臻臻的杂货铺

获取 topic等信息 后端、

架构误区系列12:一切皆依赖云平台

agnostic

云计算 部署架构

极客时间运维进阶训练营第十二周作业

9527

万字长文搞懂产品模式和项目模式

俞凡

团队管理

开源移动核心网Magma架构设计启示

俞凡

架构 网络 通信

WSL中使用vcpkg安装pcl库出现编译失败的原因

大伟

【Java应用服务体系】「序章入门」全方位盘点和总结调优技术专题指南

码界西柚

Java 技术分析 应用调优 优化指南

【Linux技术专题系列】「必备基础知识」一起探索和实践sftp配置之密钥方式登录

码界西柚

Linux SSH SSH工具 sftp

复习前端:JavaScript V8 引擎机制

devpoint

chrome JIT V8

JSON.stringify() 的 5 使用场景

devpoint

JavaScript 前端开发 JSON格式化

技术管理者如何获得下属的认同?

石云升

极客时间 1月月更 技术领导力实战笔记

MySQL统计总行数:听说count(*)性能更好,是真的吗

程序员拾山

MySQL

你知道哈希算法,但你知道一致性哈希吗?

JAVA旭阳

Java 架构

Python 内置界面开发框架 Tkinter入门篇 甲

eng八戒

Python GUI tkinter

工作这么多年,我总结的数据传输对象 (DTO) 的最佳实践

JAVA旭阳

Java 架构

精华推荐 | 【JVM深层系列】「GC底层调优系列」一文带你彻底加强夯实底层原理之GC垃圾回收技术的分析指南(GC原理透析)

码界西柚

Java JVM JVM原理 2023

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