写点什么

第五届敏捷中国大会现场采访敏捷宣言创始人:Martin Fowler 和 James Grenning

  • 2010-10-14
  • 本文字数:1633 字

    阅读完需:约 5 分钟

由 ThoughtWorks 主办、InfoQ 全程提供票务支持的第五届敏捷中国大会昨日在北京成功举办,两位敏捷宣言的创始人 Martin Fowler 和 James Grenning 受邀分别作了题为“ 21 世纪的软件设计”和“测试不再是发现Bug ”的主题演讲,并接受媒体访问。InfoQ 编辑在大会现场就REST、敏捷、嵌入式开发等相关话题和两位大师进行了简短的交流。

受访者简介: Martin Fowler,著名作家,软件开发咨询师及演讲家,ThoughtWorks 首席科学家。他以其超过 20 年的专业经验帮助企业核心系统应用面向对象技术 。

InfoQ:作为技术领域的权威,很多人认为您代表着技术的潮流或者发展方向,请问您最近在关注什么技术?

Martin Fowler(以下简称 Martin):在过去的几年,包括现在,我一直在关注 DSL(领域特定语言),我的新书《Domain Specific Languages》也主要关注的这个方面。对于我来说,我喜欢在某一个时间段只关注一个领域。在未来一段时间,持续交付是我很想去关注的,想多花一些时间。

InfoQ:最近您为 Jim Webber 等人撰写的《REST in Practice》写了一个序言,里面提到对REST 要谨慎地使用,您认为REST 技术的应用前景如何?

Martin:对于我个人来讲我非常不愿意预测未来,但是我仍然认为 REST 是个非常好的技术,可以用来在互联网上做集成,做可扩展性的集成等。另外我也有一些同事,他们对 REST 这个领域非常专注,并曾经成功地应用 REST 做过很多的项目,这些都可以证明 REST 在可扩展集成领域有比较好的基础。

InfoQ:以您的观点,您如何定义一个成熟的敏捷开发团队?

Martin:我想最重要的度量标准就是这个团队能够快速地、及时地、经常地发布软件,而且能够比较高质量地发布软件,开发人员能够把代码安全地放在系统中,而不出现问题。这些都是一个高质量的敏捷团队所应该具备的素养。

受访者简介:James Grenning, Renaissance Software Consulting 公司创始人,全球知名讲师,过程教练及咨询师。他拥有超过 30 年的软件开发行业经验,擅长技术指导与管理。他专注于嵌入式软件研发,也是将敏捷实践带入 IT 世界的重要先驱力量,是敏捷宣言创始人之一。

InfoQ:在嵌入式开发领域,敏捷的实施现状如何?另外在这个领域的敏捷实施过程中,最大的难点是什么?

James Grenning(以下简称 James):在传统的开发过程中,团队可能会认为一开始就进行设计、定义,然后再编程才是正常的途径,等到以后出现问题时,再回过头来找解决方案。其实嵌入式开发团队通常也是这样,这也是他们在实施敏捷的过程中必须要注意的。在嵌入式开发领域最大的一个秘密就是嵌入式开发和其他的开发没有什么本质上的区别,实际上当我们觉得它很特殊的原因,是因为它有一些复杂的依赖,比如对硬件设备的依赖。但是,事实上,在其他的软件开发领域也有类似的依赖。

InfoQ:在嵌入式开发中常用的语言是 C 和 C++,而 C 还不是面向对象语言,很多人认为用 C 很难写出干净的代码。请问您如何看待这个说法?另外在用 C 做嵌入式开发的时候,您认为有些有价值的原则值得遵循?

James:用 C++ 可以写出很好的面向对象的程序。对于 C 语言来说,它是很灵活的。根据过去两年的实践证明,基于 C 语言也能够写出具有紧密的、封闭性的模块。特别是 CPT(一种 C 语言编程软件)可以帮助开发人员做出更好的设计,写出有更好封装性的模块或者代码。不像以前写 C 语言的时候,人们倾向于写的非常长,通过 CPT 大家都会自觉不自觉地将程序写得更小,更有封装性。

对于用于嵌入式的 C 语言开发来讲,它使用的原则其实和其他的面向对象编程的原则一样。都应该遵循面向对象开发的那些原则,特别是像封装性、高内聚等。比如我们要测试一辆汽车,要对其引擎做具体的测试,这是比较困难的,因为通常来说引擎装在汽车里才能完全展示驱动汽车的性能。但是如果我们能够将引擎拆下来,对它进行单独测试,也许会更加有效。对于 C 语言开发也是这样,如果所编写的代码都是相互关联、耦合的,那么就无法进行有效的验证。所以说,C 语言的编程也应该遵循面向对象开发的原则:高内聚、低耦合!

2010-10-14 23:111628

评论

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

鲲鹏一粤,智算万里

脑极体

知道时间轮算法吗?在Netty和Kafka中如何应用的?为什么不用Timer、延时线程池?

yes

kafka Netty Timer ScheduledThreadPool 时间轮

Github被攻击。我的GitPage博客也挂了,紧急修复之路,也教会你搭建 Jekyll 博客!

小傅哥

Java GitHub 小傅哥 博客

数据治理第一步,摆脱“手工作坊”

KAMI

大数据 数据治理 数据开发 数据平台

Git命令可视化展示,代码管理再也不愁了,建议收藏!

诸葛小猿

git git merge git rebase git fetch git reset

区块链一新基建 新动能 新发展大会将在南昌举办

CECBC

新基建 区块链技术

架构师训练营 - 第 7 周命题作业

红了哟

一文了解对称加密与非对称加密

我是程序员小贱

安全

Python中的单下划线和双下划线使用场景

wangkx

Python Python基础知识 Python基础

抽象类、接口、Trait

书旅

接口 面向对象 抽象 对象 Trait

非科班学习编程一定得知道这几个网站!

我是程序员小贱

契约测试:解决微服务测试的问题

陈磊@Criss

MySQL-技术专题-共享锁与排他锁

洛神灬殇

MySQL 架构与历史

多选参数

MySQL 数据库 MySQL优化

MySQL-技术专题-InnoDB存储引擎

洛神灬殇

LeetCode题解:88. 合并两个有序数组,双指针遍历+从前往后,JavaScript,详细注释

Lee Chen

大前端 LeetCode

Go: Goroutine, 系统线程和CPU管理

陈思敏捷

mpg Go 语言

为什么修改hosts不立即生效?--浏览器DNS缓存机制分析

陈磊@Criss

Golang+Flutter实现聊天APP

Alber

IM Go 语言

想要成功,你需要的是目标与动机,目标是你的助攻,动机是你的爱人。

叶小鍵

成功学 心理学 海蒂·格兰特·霍尔沃森

Dubbo2.7试用

心平气和

dubbo 灰度 hessian

用故事去理解「文件 I/O」

小林coding

操作系统 异步 文件系统 同步 非阻塞网络I/O

国内与国外区块链关键技术现状及差异

CECBC

区块链 应用技术

源码分析 | Mybatis接口没有实现类为什么可以执行增删改查

小傅哥

Java 源码分析 小傅哥 mybatis

并不想吹牛皮,但!为了把Github博客粉丝转移到公众号,我干了!

小傅哥

Java 小傅哥 博客 微信公众号

Git设置分支保护实现CodeReview卡点

陈磊@Criss

记一次腾讯云(西安)后台开发面试经历

z小赵

面试 分布式 高并发

架构师训练营 - 第十周作业

坂田吴奇隆

Flexible Box Layout 原理剖析

catcoolion

CSS 大前端

手撕二分查找及其变种,就是干!

我是程序员小贱

手把手教你从零开始使用python编写大型冒险类游戏01之游戏介绍

Geek_8dbdc1

第五届敏捷中国大会现场采访敏捷宣言创始人:Martin Fowler和James Grenning_SOA_霍太稳@极客邦科技_InfoQ精选文章