中国开发网: 论坛: 程序员情感CBD: 贴子 155088
mhappy
Borland瞄准更好的开发方式
Borland首席宣传官:Borland瞄准更好的开发方式
(2005.06.28) 来自:ZDNET

Borland公司的David Intersimone认为,采用更好的协作工具是开发高级软件的唯一途径。


Week:在过去的几年来,Borland拓展了其扮演的软件开发者的角色,Borland提供了对新的开发工具的支持,并且从收购Starbase和TogetherSoft中盈利。作为公司负责同开发者关系方面事务的副总裁,您认为前面会有什么样的困难?

David Intersimone:在这方面有很多问题需要考虑。我们在所谓性能保障(performance assurance)方面做了一些测试,但我们还需要依靠同Mercury Interactive或Segue的集成工作以对负载进行测试。在这些方面,有很多尤其是大型企业用户所关注的问题。

您认为企业开发团队组织是否普遍组织比较合理呢?如Alan Cooper和Jakob Nielsen等用户关系专家要求将应用程序中用户界面设计部分同程序员所编写的函数代码进行区分,您认为这种方法有它的优点么?

我在技术领域还没有遇到过任何类型的困难,但毕竟没有人在真空状态下工作。比如他们或许会设计web图片,但最终这些都将会在应用程序中全部出现。这些成员需要一同经历所有的开发步骤,从需求分析开始。随着情况的不断变化,团队中的每个人都需要时时警醒。无论我是一名平面设计人员或是代码编写者,我都希望在情况有所改变时得到提醒。现在,在一个小的团队中,你可以通过与人之间的交流来达到这点,比如通过即时通信工具。你也可以通过一些小小的努力来同别人合作。但在实现企业级的开发项目时就无法这样了。在这一领域有更多的数字零件,有更多的部分需要被整合起来。因此我们并没有剥夺团队成员的沟通能力,而是让他们在一起以更加高效和集成化的方式工作。

近年来,一些易于使用的脚本语言不断面世。这样的状况会在诸如可靠性等方面对应用程序产生改变么?

我总是把可靠性从所希望创建的程序中独立出来。无论你是在实现什么,可靠性是每个人努力的方向。真正的选择是你希望如何进行开发,如何将商业需求直观的表达出来。因此脚本在应用中有自己的一席之地,尤其在web应用程序开发方面。但如果你看看例如微软的ASP.NET,你会发现脚本实际上就是简单编译的一堆代码,而在这些用到脚本的地方你可以使用你熟悉的编程语言,而无需去使用另一种语言或脚本。因此,实际上应当取决于团队中成员所认识到的:我们将使用什么技术?如果在客户端有一些类似于确认输入的功能,那么使用脚本的确正确;但企业计算的重任总是落在服务器端。因此现在这些功能都是通过.NET语言或者J2EE来完成。

但似乎有一种对脚本的预编译组件进行调整的趋势,是么?

如今的节约观念告诉你需要对每一样东西都进行重新使用,对你有的函数进行重新利用。这就是web服务所做的。简单的办法是不要重写后台程序而让它维持原状,然后采用更为现代化的方式来实现它。Web服务是做到这点的唯一方式。有人会说,不,我们正打算重新编写后台程序。但很多企业都不会有时间金钱和人力来完成这个任务。

无代码开发这一目标的实现将会产生什么样的影响?画几张图表就能创建程序会是一个现实的概念么?就如同我们重新审视十年前的计算机辅助软件工程(CASE)工具一样?

对于这个问题有两个方面。总有一些地方需要自定义的代码。但在另一领域中我们已经花费了大量的时间,那就是所谓的模型驱动开发(model-driven development,MDD)。你可以通过它定义模型,然后让其产生独立于平台的函数。我们将这一技术引入到目前在Windows和.Net构架之上的Delphi产品中。我们在将来同样还要发布大量同Java和其他语言相关的版本。这一技术基于OMG MDA。因此对于由数据库提供后台支持的特定应用程序来说,你可以使用UML和OCL来定义模型以及商业逻辑,并生成应用程序以及合理的对象。因此,我们目前所做的关于MDA的工作还有很长一段路要走。在过去,每个人都有自己的解决方案,无论是第四代语言(4GL),还是一些CASE工具等等。但使用诸如UML这样的业界标准,你可以采纳某种模型,或对模型导入导出,还可以利用来自其他应用程序的模型来创建模型驱动应用程序,这样可以使应用程序工作得更好。MDA被越来越多的厂商支持的事实表明,这一技术能够使得应用程序同模型之间的交互会更为简单。当然,还有很多类型的应用程序需要使用其他的构架来进行开发。面向服务构架(SOA)正在兴起,web服务也正成为能将所有东西集成到一起的方法。

对MDA开发的支持是Borland业务的一个重要部分么?




这一趋势才刚刚开始显现。到现在,我们发布基于MDA技术的产品已经18个月了,这一趋势还将继续朝好的方向发展下去。由于这一技术依靠模型,因此你需要寻找那些对使用模型抱有坚定信念的用户,并且保持模型的实时更新。一些用户仅仅是把模型作为或对构架进行描述或编写文档的方法。另一些则用模型来进行逆向工程(reverse-engineering):来看看一段老的C++代码可以作些什么,从而更好的理解这段代码。但如果你将进行模型驱动的开发,那么你就得全力以赴。随着应用程序日趋复杂,更多的人参与到开发过程中,尤其如果进行的是分布式的开发,因此有效的共享开发环境,及时获取更改信息等等因素对于开发的成功越来越重要。

您的主要工作之一就是同开发人员保持联系。他们现在到底需要什么?

高层次的生产效率。他们想做更多的工作。二十年前是通过高速编译器、集成调试、高层次的抽象或组件库来实现这点。现在,我们采用像重构这样的技术。你可以通过在可视化界面中拖动一种方法(method)到另一个对象上的方式来修改你的代码。单元测试(unit testing)是另一大的方面。在定义了对象和一些方法后你就希望立即对其进行测试。并不想再等或者把它交给专门的测试人员。那么这里就会有一个完整的协作过程。类似于极限编程(extreme programming),通过让编程人员和用户更为紧密的协作来获得更高质量的程序。

很有趣,您提到了集成测试。传统的测试方式都是单独分开进行的,因此编程人员或许都会有这样的想法:“不需要谁来测试我的代码,因为它太完美了。”

部分原因是测试过程同完成程序功能性的理念背道而驰。有时你会陷在里面,不得不后退一步并且对程序重新进行构架。因此,在测试过程中保持与在设计和配置过程中相同的能见度是件好事。

关于DAVID INTERSIMONE
作为Borland负责开发者关系的副总裁和首席宣传官(chief evangelist),David Intersimone负责Borland开发者网络(Borland Developer Network)以及Borland技术伙伴(Borland Technology Partner 即BTP)两个项目。他同样还同专业开发人员一同工作,以把从中获得的反馈信息加入到Borland产品的相关开发计划中。

Intersimone于1985年作为产品服务经理加入到Borland,曾经担任过语言和工具研发经理。在加入Borland之前,他曾是Softsel Computer Products(即现在的Merisel公司)的产品服务经理。

他拥有加利福尼亚州立理工大学的计算机科学学士学位。

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录