访MOCO创始人郑晔:谈MOCO框架技术和Java未来发展(1)

  MOCO是一款基于Java开发、用来简单搭建模拟服务器的程序库。MOCO的目的,旨在解决企业级系统集成测试等方面的问题。简化传统Jetty或Tomcat等应用服务器上部署一个新的JAR所需要的耗时工序,同时,MOCO的API设计采用了内部 Domain Specific Language (DSL)的 方式,提升了代码的可读性。与此同时,还将新的Java编程风格融入其中、并不断加入新的功能来满足更多企业项目需求。

  为此,51CTO记者采访到了Moco框架创始人郑晔。关于Moco,和记者分享了更多的其诞生过程的设计理念、成长过程的思考、未来发展的期望。还对未来几年Java技术的发展情况和Java编程风格的现状和未来趋势阐述了自己的观点和期盼,让我们对未来几年如何提升和把握企业Java项目开发有了新的认识。

  郑晔,ThoughtWorks公司首席咨询师,MOCO框架创始人。JavaOne 2013大会上,首届中国“Duke选择奖”得主之一。对Java和Ruby等方面的开发有着深刻的理解,致力于探寻合理的软件开发方式。07年加入ThoughtWorks公司后,投入到敏捷开发方法的实践之中,为其他公司提供敏捷开发方法方面的咨询服务。可以说MOCO的诞生,就是在ThoughtWorks创新传统下催生的。

  以下是采访的具体内容:

  记者:MOCO项目获得了今年Duke’s Choice Awards最具创新项目奖,能不能具体的说说MOCO框架在企业系统的集成测试方面有哪些针对性的优势?

  嘉宾:可以说所有的团队在项目上都会遇到企业集成问题,但是却一直没有做出非常好的解决方案。我们知道,在测试的时候,我们需要一个模拟服务器。十几年前去做开发的时候没有现成的服务器,我们就从Socket最底层开始一层一层写到应用层,完成一个HTTP级的应用服务器。有过开发Java经验都知道,一次应用的重新部署,看似简单,但重复多次会影响整个团队项目的开发速度。所以就一直在想,能不能找到更好的解决方案,让开发人员在项目中省去这样的重复环节、让这个过程变得更轻松。这也是我直到现在都在追求的目标。

  开始着手去做MOCO之前的一段时间,我翻译了Martin Fowler的《特定语言》这本书,从书里获得了很多新的知识和想法。凭借十几年项目开发的经验总结,我决定开始自己动手解决这个问题。然后就有了MOCO这样一个解决方案,可以成功的解决企业集成问题。

  记者:您刚才提到,在实际开发中很多团队都会遇到企业集成的问题,但却一直没有好的解决方案提出来。您认为导致这个现象的原因是什么?

  嘉宾:目前来说,其实很多的项目开发团队都在尝试去解决这些问题,甚至有些公司还

  在自己的的开发团队里专门设立一个项目组去维护这样一个类似项目。但他们所做出来的框架仅仅用来解决自身项目,并没有想过把这样的框架泛化出来,作为一个通用的解决方案,应用的不同的项目中去。 所以,解决方案就停留在解决某个特定项目的层面上。

  现在做技术,不应该仅仅是为了某个人或某个项目去做,而是应将技术成果分享出来,

  不断去完善和发散,使他成为一个通用技术方案,方便更多开发者使用。最近一段时间,公司一直再谈“创新漏斗”这样一个概念。“创新漏斗”倡导的就是在工作中发现问题,持续改进从而解决问题。然后,从创新中抽象出具有普适性的概念,再去积极地推广它。发现痛点、解决问题、总结提升、推广分享。这也是MOCO的诞生之道。

  记者:除了上述原因,从技术方面讲,它的实现有没有很高的技术要求在里面?抽象出来问题,但是在技术实现的层面会有一些难度?

  嘉宾:有这种可能。其实整个软件开发过程中最难的事并不是代码的编写,而是能提供出一个问题的抽象模型。

  在做MOCO解决方案的过程中,遇到的一些技术难点并新鲜。从十几年前做第一个项目开始就已经遇到过的,但一直都没有很好的解决办法。原因是无法将这些问题的概念抽象出来。经过了这些年的项目经验积累,脑子里才开始有了对这些问题的抽象概念。所以,直到去年才开发出来MOCO这样一个解决方案。

  记者:有了新的功能以后,会不会把新的功能集成在MOCO框架里面,让它成为一个通用的功能?

  嘉宾:会的。 MOCO去年已经基本完成了,但实际上直到现在MOCO框架的内容还在不断的修改和扩充。使用过MOCO框架开发团队,很及时的将他们在使用过程中遇到的问题和需求反馈给我,如果提出的需求符合MOCO框架的设计理念,就及时的将新的功能加到框架里,。只有这样MOCO才会不断的成长,这也是通用解决方案必须做到的一点。

  记者:MOCO的发展是随着实际企业项目的需求而不断前进的,那么除了企业级的系统集成测试之外,它还具备了哪些较好的应用场景吗?

  嘉宾: MOCO的设计目的旨在解决企业级项目系统集成问题。但实际上,MOCO的第一个应用,用在了移动开发项目里面。当时我们给成都的一家图书馆做一个项目,项目包括手机端和服务器端两个应用。一开始大家都想去做手机端的项目,而想去做服务器端的人寥寥无几。当时就在想,如果只有一个手机项目,我们怎么让他运转起来?后来的办法是,我们用MOCO搭了服务器,提供各种服务给手机应用。问题就这样解决了。也就在没有服务器端应用的情况下,把手机端实现了。后来服务器端的开发人员就参考MOCO的这套配置,比较轻松的将服务器端做了出来。

  在技术交流过程中,很多人给我提出建议,希望MOCO可以支持这样或是那样的API。所以慢慢的MOCO应用的场景将会越来越对,功能会更加的丰富,具体还会有哪些方面的应用大家拭目以待。但MOCO的核心目标不会改变,现在的实际应用中,大多数团队还是将MOCO用来解决企业系统的集成测试的问题。

  记者:做为一款轻量级解决方案,MOCO拥有很高的工作效率。对于他人提出的功能需求,您怎样判断这些需求是否符合框架的主线发展?

  嘉宾:首先MOCO的架构方式确保了这个服务器不会加入特别复杂的东西,因此,不会影响服务器的工作效率。其次,在新的功能加入之前,还要衡量这个需求多大程度上能够在MOCO框架范围之内去解决。总结成一句话。如果能几句话概括清楚这个需求怎么在MOCO中实现,那么它就是符合MOCO本身特性的。这样的话,我就会把它加进来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值