技术开发 频道

SOA与Agile:来自Google的观点

【IT168技术新闻】

  在旧金山的Burton Group大会上,Google软件工程师Gregor Hohpe说,在同一个环境里谈论SOA与Agile,就像比较苹果与橘子一样。但从他的观点中可以看出,这有点类似在同一环境中谈论Google与搜索。
 
  Agile和SOA在共同改进商业与IT之间的关系,Hohpe对大会出席者这样说道。他不是在说理论,他谈论的是网络服务和应用程序如何为企业所运用和发展。
 
  Hohpe说,苹果和橘子的观点来自SOA,SOA的架构风格强调系统之间相互影响,而Agile的发展途径是强调人与人之间的相互影响。从他的观点来看,Agile实践能帮助开发者迁移SOA,当然,这一切是建立在理论基础之上。
 
  Agile更强调进展,而非复杂的前端界面设计,这将是SOA里非常完美的竞赛。因为通过应用程序来连接到网络服务会特别复杂,对工程师和开发者来说,他们得到项目完成以后才会真正明白这个道理。他引用了Domain-Driven Design作者Eric Evans的话:夸张的前端界面设计与禁闭你的迭代比起来,会差的很远。
 
  他让他的听众密切关注这个问题,SOA模块看起来简单,但是以前的容器不容易理解。从需求观点来出发,在理论基础上工作远没有通过实践来工作要好。Google的工程师也通过非常权威的Web Services方式诠释了这一观点。
 
  谁曾经看过WSDL文档?他问在场的听众,有很多人举起了手。谁从中受到了启发?当他问了这句话以后,很多人笑着放下了手。
 
  和理论不同,实践中的SOA有很多扩展性,Hohpe说,Agile发展技术包括频繁的测试,保证发布版本小而具有迭代性,与最终用户协同工作做好应用程序需求,能大大增加实际应用程序开发的经验值。
 
  他迫切要求每个人计划开始他们的第一个SOA项目,不仅仅是开始小型项目,并且他们应该知道自己到底在做什么。他希望他们能同意Agile原则,这样你就能在最后比开始知道的更多。
 
  他告戒那些反对在项目开始做假设的人,特别是假设一个复杂的系统能一次做好。这就是迭代处理的重要性,同时,他建议设置一个适度的目标。
 
  以他作为顾问和现进Google工程师的经验为基础,他建议,在开发Web Services或者开始一个SOA项目的时候,确定该项目能给最终用户带来商业价值是很重要的。这就是Agile原则--与顾客协作带来的帮助,他说。
 
  当许多听众问道你如何做一个好的服务的时候,Hohpe回答说:开发一个好的服务是很难的。所以说,在做项目的时候,要以高价值服务,高重用性为基础。这样一来,该服务会有很多用途,你也能得到许多反馈。
 
  他也给在座的管理人员提出建议,SOA和Agile开发对要让程序员从容的去学习,同时他反对没有经验的开发人员同时去学习这两项内容。

  在最后关于如何组建高效开发团队的陈述中,Hohpe说:在同一时间内减少大量新生事物,试着让他们在单一应用程序中小范围的使用Agile,然后再转移到SOA。

0
相关文章