科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道访MOCO框架创始人郑晔:功到自然成

访MOCO框架创始人郑晔:功到自然成

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

MOCO是一个用于JAVA开发领域测试和集成简单搭建stub的框架,其精髓就是将繁琐的集成过程简化。中国“Duke选择奖”得主之一、MOCO框架创始人、ThoughtWorks首席咨询师郑晔表示,MOCO框架的诞生得益于ThoughtWorks的微创新机制。

作者:张琎 来源:ZDNet开发频道 2013年8月7日

关键字: MOCO框架 ThoughtWorks 郑晔 java MOCO

  • 评论
  • 分享微博
  • 分享邮件

ZDNet至顶网软件频道消息(文/张琎): 渠那得清如许?为有源头活水来。”自古至今,人类创新的步伐就没有停止过。在软件开发领域,程序员如果能自己开发出一个框架,就可以称之为技术牛人了。MOCO是一个用于JAVA开发领域测试和集成简单搭建stub的框架,其精髓就是将繁琐的集成过程简化。中国“Duke选择奖”得主之一、MOCO框架创始人、ThoughtWorks首席咨询师郑晔表示,MOCO框架的诞生得益于ThoughtWorksThoughtWorks的微创新机制。

MOCO框架 郑晔                        MOCO框架创始人、ThoughtWorks首席咨询师郑晔 张琎 摄

在澳洲出差期间,在酒店的阳台,面对布里斯班著名的故事桥,MOCO框架最早的版本成型了。虽然听起来有些诗情画意,但郑晔表示,最初MOCO框架的构思理念实际上早在十几年前就开始了,2002年开始做软件开发时,就遇到过类似企业集成的问题。当时所谓的土法炼钢的解决方案,解决问题可能非常的底层,自己写了很多的东西,解决这种模拟服务的问题。

企业级开发项目中的痛点就是企业级开发会有一大堆系统要集成,通常尤其是基于HTTP协议的集成——web service,REST等,在项目开发中被广泛应用。以前每次都要往Jetty或Tomcat等应用服务器上部署一个新的WAR。开发部署一个WAR的过程很枯燥,即使在嵌入式服务器上也是如此。而且,每次做一点改动,整个WAR都要重新组装。而MOCO能很好地解决这些问题,开发团队只要根据自己的需要进行相应的配置,就会很方便得到一个模拟服务器。

由于MOCO本身的灵活性,其用途已经不再局限于最初的集成测试,在移动开发模拟尚未开发的服务,在前端开发可以模拟一个完整的Web服务器。目前,MOCO直接支持的使用方式有两种,一种是Java API,另一种是独立服务器。Java API可以在单元测试框架里,通过简单的配置,运行起一个模拟服务,而独立服务器的方式,则可以通过一个配置文件,配置模拟服务器。无论是Java API,还是独立服务器,相对于传统做法,MOCO有两个非常明显的优势,一是提供DSL,可以非常直白地表现目的,二是启动速度非常快,无需漫长等待。

MOCO与ThoughtWorks创新漏斗

郑晔表示,MOCO的诞生,是在ThoughtWorks创新传统下催生的。ThoughtWorks的微创新,有一个漏斗型的机制:发现痛点、解决问题、泛化桥接、推广宣传。在日常工作中发现问题,留意别人的问题;发挥持续改进的精神,去解决问题。当你将解决方案抽象出具有普适性的概念,这就是一个通用的创新。最后积极地去推广它,让更多的人使用它,并为它提出反馈。发现、总结、提升、应用并分享,这就是MOCO的诞生之道。

通过在ThoughtWorks实施的各种各样的项目,在不同的这种项目里面,有一些问题是有通用的,有一些问题是有共同的痛点。当你去解决这样的问题的时候,往往不仅仅适用与这个项目,也可能适用其它的项目。比如MOCO框架,几乎每个项目都会用到企业集成的问题,几乎每个项目都要解决集成测试的问题。只不过这次刚好通过了一段时间的思考,给出了自己的解决方案。从ThoughtWorks来说,一方面给大家提供了各种各样的项目的机会,另外一方面在这里也有很多实力非常雄厚的软件开发技术人员。你经常有机会跟不同的人,去探讨你自己的一些基本的想法,让你自己得到能力上的提升。

最近,ThoughtWorks逐渐把一些关于创新的理念,开始融入到日常工作中。在公司内部提出一个创新漏斗,希望让这个创新,不再让大家认为是非常华丽的东西,而是让它变成每个人日常工作的一部分。这个创新漏斗是什么?从发现痛点,到提出一个解决方案,到把这个解决方案分享给更多的人,到把这个解决方案,看能不能做一个泛化,让它找到更广的适用范围,到把这个创新推广给更多的人,业界也好,整个的社区也好,让更多的人知道。ThoughtWorks搭建的这样一个平台,让更多的程序员有机会把自己一些好的东西表达出来,有机会也借助这样一个平台,把自己的一些分享的工作让更多的人知道在这个环境做了一些什么?实际上,很多年前ThoughtWorks国外有很多的同事已经做了很多优秀的工作,给这个业界创建了很多优秀的工具和框架。ThoughtWorks中国区,通过七、八年的积累,中国区员工的创新能力也在不断提高。

MOCO与开源

郑晔,是中国“Duke选择奖”得主之一,曾翻译过国内第一本Scala书《Scala程序设计》, 他还作为主力开发者参与了第一个Ruby编译器XRuby的开发。不仅如此,郑晔还是开源领域的积极推行者。MOCO框架与开源也是紧密联系在一起的,即MOCO框架的代码大部分都是利用业余时间完成的,里面也有很多其他的贡献者,为MOCO贡献了很多的代码。比如帮MOCO修一些bug,或者是帮MOCO提一些新的特性。

郑晔还谈到了对开源的理性认识,做开源的时候,主要是知识分享的理念,更多的时候求的不是回报。当你把这个东西分享给别人,更享受在这个过程中跟别人交流,在其中获得别人反馈, 让自己产生新的思考的过程,别人给你一些反馈的时候,这时候对于你自己的知识体系提升是非常大的。我可以去鼓励别人为这个开源项目做贡献,但是我不能要求别人为这个开源项目做贡献。如果你想让这个项目不断向前发展,你作为这个项目的拥有者来说,你是这个项目最核心的贡献者。

无论是哪个项目,即便现在比较有名的开源社区的项目,你会看到其实真正的核心的贡献力量也是有限的,其他的人可能是提供一些需求给你,或者是修一些bug给你,像linux这种很多公司赞助的项目,才会有专职的开发人员,其实绝大多数的开源项目,都是最核心的那几个人,他大部分时间投入其中,为里面写代码。

由MOCO框架延伸开来 程序员的职涯之路如何发展?

许多IT巨头的创始人都是程序员出身,但郑晔表示:“不是说所有的程序员,最终都会发展成那样的人物。软件开发不是说你今天来做,你马上就能做得很好,软件开发需要时间、环境的积累,慢慢地对问题有一个思考,提出新的解决方案。MOCO框架问题,我十年前就遇到了,但是我不知道怎么解决,去年是我工作的第十年,在工作到十年的时间上,我突然有这样的灵感去写这个东西。”

关于软件开发有一个说法,编程需要写到十年。有一本书《哪里来的天才》里面提到过一万个小时,可能一万个小时,换算成实际的写代码时间,需要十年的时间,你在上面不断的沉积,不断的有自己的思考。你的软件开发能力,就会不断提升。

郑晔表示,希望看到更多的程序员,追求的是自己软件开发能力的提升,真正的是能跟更多的一些高水平的程序员打交道,让自己的能力不断的得到锻炼。“像ThoughtWorks这样的一个环境,可以接触到更高水平的程序员。虽然可能很多人觉得我水平不错,但是在 ThoughtWorks里面,有比我水平高很多的人,他们才是让我觉得不断前进的一种动力。他们已经做了十几年、二十几年的开发,他们还在做。对我来说,我就没有理由放弃这个事情。我也可以像他们一样做软件那么长时间,不断有新的思考出来,做一些对其他人有价值的事情,这才是我真正的人生价值所在。”

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章