偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

訪MOCO創(chuàng)始人鄭曄:談MOCO框架技術(shù)和Java未來(lái)發(fā)展

原創(chuàng)
開(kāi)發(fā) 架構(gòu)
51CTO記者采訪到了Moco框架創(chuàng)始人鄭曄。關(guān)于Moco,和記者分享了更多的其誕生過(guò)程的設(shè)計(jì)理念、成長(zhǎng)過(guò)程的思考、未來(lái)發(fā)展的期望。還對(duì)未來(lái)幾年Java技術(shù)的發(fā)展情況和Java編程風(fēng)格的現(xiàn)狀和未來(lái)趨勢(shì)闡述了自己的觀點(diǎn)和期盼,讓我們對(duì)未來(lái)幾年如何提升和把握企業(yè)Java項(xiàng)目開(kāi)發(fā)有了新的認(rèn)識(shí)。

MOCO是一款基于Java開(kāi)發(fā)、用來(lái)簡(jiǎn)單搭建模擬服務(wù)器的程序庫(kù)。MOCO的目的,旨在解決企業(yè)級(jí)系統(tǒng)集成測(cè)試等方面的問(wèn)題。簡(jiǎn)化傳統(tǒng)Jetty或Tomcat等應(yīng)用服務(wù)器上部署一個(gè)新的JAR所需要的耗時(shí)工序,同時(shí),MOCO的API設(shè)計(jì)采用了內(nèi)部 Domain Specific Language (DSL)的 方式,提升了代碼的可讀性。與此同時(shí),還將新的Java編程風(fēng)格融入其中、并不斷加入新的功能來(lái)滿足更多企業(yè)項(xiàng)目需求。

為此,51CTO記者采訪到了Moco框架創(chuàng)始人鄭曄。關(guān)于Moco,和記者分享了更多的其誕生過(guò)程的設(shè)計(jì)理念、成長(zhǎng)過(guò)程的思考、未來(lái)發(fā)展的期望。還對(duì)未來(lái)幾年Java技術(shù)的發(fā)展情況和Java編程風(fēng)格的現(xiàn)狀和未來(lái)趨勢(shì)闡述了自己的觀點(diǎn)和期盼,讓我們對(duì)未來(lái)幾年如何提升和把握企業(yè)Java項(xiàng)目開(kāi)發(fā)有了新的認(rèn)識(shí)。

[[83127]]

鄭曄,ThoughtWorks公司首席咨詢師,MOCO框架創(chuàng)始人。JavaOne 2013大會(huì)上,首屆中國(guó)“Duke選擇獎(jiǎng)”得主之一。對(duì)Java和Ruby等方面的開(kāi)發(fā)有著深刻的理解,致力于探尋合理的軟件開(kāi)發(fā)方式。07年加入ThoughtWorks公司后,投入到敏捷開(kāi)發(fā)方法的實(shí)踐之中,為其他公司提供敏捷開(kāi)發(fā)方法方面的咨詢服務(wù)??梢哉f(shuō)MOCO的誕生,就是在ThoughtWorks創(chuàng)新傳統(tǒng)下催生的。

以下是采訪的具體內(nèi)容:

記者:MOCO項(xiàng)目獲得了今年Duke’s Choice Awards最具創(chuàng)新項(xiàng)目獎(jiǎng),能不能具體的說(shuō)說(shuō)MOCO框架在企業(yè)系統(tǒng)的集成測(cè)試方面有哪些針對(duì)性的優(yōu)勢(shì)?

嘉賓:可以說(shuō)所有的團(tuán)隊(duì)在項(xiàng)目上都會(huì)遇到企業(yè)集成問(wèn)題,但是卻一直沒(méi)有做出非常好的解決方案。我們知道,在測(cè)試的時(shí)候,我們需要一個(gè)模擬服務(wù)器。十幾年前去做開(kāi)發(fā)的時(shí)候沒(méi)有現(xiàn)成的服務(wù)器,我們就從Socket最底層開(kāi)始一層一層寫(xiě)到應(yīng)用層,完成一個(gè)HTTP級(jí)的應(yīng)用服務(wù)器。有過(guò)開(kāi)發(fā)Java經(jīng)驗(yàn)都知道,一次應(yīng)用的重新部署,看似簡(jiǎn)單,但重復(fù)多次會(huì)影響整個(gè)團(tuán)隊(duì)項(xiàng)目的開(kāi)發(fā)速度。所以就一直在想,能不能找到更好的解決方案,讓開(kāi)發(fā)人員在項(xiàng)目中省去這樣的重復(fù)環(huán)節(jié)、讓這個(gè)過(guò)程變得更輕松。這也是我直到現(xiàn)在都在追求的目標(biāo)。

開(kāi)始著手去做MOCO之前的一段時(shí)間,我翻譯了Martin Fowler的《特定語(yǔ)言》這本書(shū),從書(shū)里獲得了很多新的知識(shí)和想法。憑借十幾年項(xiàng)目開(kāi)發(fā)的經(jīng)驗(yàn)總結(jié),我決定開(kāi)始自己動(dòng)手解決這個(gè)問(wèn)題。然后就有了MOCO這樣一個(gè)解決方案,可以成功的解決企業(yè)集成問(wèn)題。

記者:您剛才提到,在實(shí)際開(kāi)發(fā)中很多團(tuán)隊(duì)都會(huì)遇到企業(yè)集成的問(wèn)題,但卻一直沒(méi)有好的解決方案提出來(lái)。您認(rèn)為導(dǎo)致這個(gè)現(xiàn)象的原因是什么?

嘉賓:目前來(lái)說(shuō),其實(shí)很多的項(xiàng)目開(kāi)發(fā)團(tuán)隊(duì)都在嘗試去解決這些問(wèn)題,甚至有些公司還在自己的的開(kāi)發(fā)團(tuán)隊(duì)里專(zhuān)門(mén)設(shè)立一個(gè)項(xiàng)目組去維護(hù)這樣一個(gè)類(lèi)似項(xiàng)目。但他們所做出來(lái)的框架僅僅用來(lái)解決自身項(xiàng)目,并沒(méi)有想過(guò)把這樣的框架泛化出來(lái),作為一個(gè)通用的解決方案,應(yīng)用到不同的項(xiàng)目中去。 所以,解決方案就停留在解決某個(gè)特定項(xiàng)目的層面上。

現(xiàn)在做技術(shù),不應(yīng)該僅僅是為了某個(gè)人或某個(gè)項(xiàng)目去做,而是應(yīng)將技術(shù)成果分享出來(lái),不斷去完善和發(fā)散,使它成為一個(gè)通用技術(shù)方案,方便更多開(kāi)發(fā)者使用。最近一段時(shí)間,公司一直在談“創(chuàng)新漏斗”這樣一個(gè)概念。“創(chuàng)新漏斗”倡導(dǎo)的就是在工作中發(fā)現(xiàn)問(wèn)題,持續(xù)改進(jìn)從而解決問(wèn)題。然后,從中抽象出具有普適性的概念,再去積極地推廣它。發(fā)現(xiàn)痛點(diǎn)、解決問(wèn)題、泛化橋接、推廣宣傳。這也是MOCO的誕生之道。

記者:除了上述原因,從技術(shù)方面講,它的實(shí)現(xiàn)有沒(méi)有很高的技術(shù)要求在里面?抽象出來(lái)問(wèn)題,但是在技術(shù)實(shí)現(xiàn)的層面會(huì)有一些難度?

嘉賓:有這種可能。其實(shí)整個(gè)軟件開(kāi)發(fā)過(guò)程中最難的事并不是代碼的編寫(xiě),而是能提供出一個(gè)問(wèn)題的抽象模型。

在做MOCO解決方案的過(guò)程中,遇到的一些技術(shù)難點(diǎn)并新鮮。從十幾年前做第一個(gè)項(xiàng)目開(kāi)始就已經(jīng)遇到過(guò)的,但一直都沒(méi)有很好的解決辦法。原因是無(wú)法將這些問(wèn)題的概念抽象出來(lái)。經(jīng)過(guò)了這些年的項(xiàng)目經(jīng)驗(yàn)積累,腦子里才開(kāi)始有了對(duì)這些問(wèn)題的抽象概念。所以,直到去年才開(kāi)發(fā)出來(lái)MOCO這樣一個(gè)解決方案。

記者:有了新的功能以后,會(huì)不會(huì)把新的功能集成在MOCO框架里面,讓它成為一個(gè)通用的功能?

嘉賓:會(huì)的。 MOCO去年已經(jīng)基本完成了,但實(shí)際上直到現(xiàn)在MOCO框架的內(nèi)容還在不斷的修改和擴(kuò)充。使用過(guò)MOCO框架開(kāi)發(fā)團(tuán)隊(duì),很及時(shí)的將他們?cè)谑褂眠^(guò)程中遇到的問(wèn)題和需求反饋給我,如果提出的需求符合MOCO框架的設(shè)計(jì)理念,就及時(shí)的將新的功能加到框架里,。只有這樣MOCO才會(huì)不斷地成長(zhǎng),這也是通用解決方案必須做到的一點(diǎn)。

記者:MOCO的發(fā)展是隨著實(shí)際企業(yè)項(xiàng)目的需求而不斷前進(jìn)的,那么除了企業(yè)級(jí)的系統(tǒng)集成測(cè)試之外,它還具備了哪些較好的應(yīng)用場(chǎng)景嗎?

嘉賓: MOCO的設(shè)計(jì)目的旨在解決企業(yè)級(jí)項(xiàng)目系統(tǒng)集成問(wèn)題。但實(shí)際上,MOCO的第一個(gè)應(yīng)用,用在了移動(dòng)開(kāi)發(fā)項(xiàng)目里面。當(dāng)時(shí)我們給成都的一家圖書(shū)館做一個(gè)項(xiàng)目,項(xiàng)目包括手機(jī)端和服務(wù)器端兩個(gè)應(yīng)用。一開(kāi)始大家都想去做手機(jī)端的項(xiàng)目,而想去做服務(wù)器端的人寥寥無(wú)幾。當(dāng)時(shí)就在想,如果只有一個(gè)手機(jī)項(xiàng)目,我們?cè)趺醋屗\(yùn)轉(zhuǎn)起來(lái)?后來(lái)的辦法是,我們用MOCO搭了服務(wù)器,提供各種服務(wù)給手機(jī)應(yīng)用。問(wèn)題就這樣解決了。也就在沒(méi)有服務(wù)器端應(yīng)用的情況下,把手機(jī)端實(shí)現(xiàn)了。后來(lái)服務(wù)器端的開(kāi)發(fā)人員就參考MOCO的這套配置,比較輕松的將服務(wù)器端做了出來(lái)。

在技術(shù)交流過(guò)程中,很多人給我提出建議,希望MOCO可以支持這樣或是那樣的API。所以慢慢的MOCO應(yīng)用的場(chǎng)景將會(huì)越來(lái)越對(duì),功能會(huì)更加的豐富,具體還會(huì)有哪些方面的應(yīng)用大家拭目以待。但MOCO的核心目標(biāo)不會(huì)改變,現(xiàn)在的實(shí)際應(yīng)用中,大多數(shù)團(tuán)隊(duì)還是將MOCO用來(lái)解決企業(yè)系統(tǒng)的集成測(cè)試的問(wèn)題。

記者:做為一款輕量級(jí)解決方案,MOCO擁有很高的工作效率。對(duì)于他人提出的功能需求,您怎樣判斷這些需求是否符合框架的主線發(fā)展?

嘉賓:首先MOCO的架構(gòu)方式確保了這個(gè)服務(wù)器不會(huì)加入特別復(fù)雜的東西,因此,不會(huì)影響服務(wù)器的工作效率。其次,在新的功能加入之前,還要衡量這個(gè)需求多大程度上能夠在MOCO框架范圍之內(nèi)去解決??偨Y(jié)成一句話。如果能幾句話概括清楚這個(gè)需求怎么在MOCO中實(shí)現(xiàn),那么它就是符合MOCO本身特性的。這樣的話,我就會(huì)把它加進(jìn)來(lái)。

#p#

記者:現(xiàn)在國(guó)內(nèi)的開(kāi)發(fā)人員參與MOCO項(xiàng)目維持在什么程度?又是以什么方式進(jìn)行參與?

嘉賓:開(kāi)源項(xiàng)目本身是沒(méi)有國(guó)界的。在使用中,我們不會(huì)去特別強(qiáng)調(diào)這個(gè)是中國(guó)人做的,還是外國(guó)人做的。目前,絕大部分的代碼還是我一個(gè)人在寫(xiě)。有些人會(huì)提供一些新的功能建議,然后給MOCO做一些調(diào)整和修改,再給我看。大部分人是直接把問(wèn)題提出來(lái),我和他們就一起來(lái)討論這個(gè)問(wèn)題,有了結(jié)果后,功能的實(shí)現(xiàn)還是我一個(gè)人來(lái)完成。。

記者:現(xiàn)在國(guó)內(nèi)的大眾點(diǎn)評(píng)網(wǎng)在使用MOCO,對(duì)他們目前的使用情況有所了解么?還有哪些開(kāi)發(fā)團(tuán)隊(duì)在使用MOCO框架?

嘉賓:首先我們公司內(nèi)部的很多項(xiàng)目都已經(jīng)開(kāi)始使用MOCO了。除此之外,我在OpenParty上做過(guò)技術(shù)分享后,有更多的公司知道MOCO,然后邀請(qǐng)我去給他們公司更加深入的講解MOCO,之后就在他們自己的項(xiàng)目中用MOCO解決問(wèn)題。大眾點(diǎn)評(píng)網(wǎng)開(kāi)始使用MOCO的,我也是最近才知道。在上海的活動(dòng)上,和他們項(xiàng)目的負(fù)責(zé)人簡(jiǎn)單的做了了解,他們。他們也說(shuō)了,有了技術(shù)上的問(wèn)題或需求會(huì)及時(shí)的溝通反饋。這也正是我所需要的。

記者:對(duì)MOCO框架未來(lái)的發(fā)展方向,您有怎樣的計(jì)劃?

嘉賓:最初的想法沒(méi)有變,MOCO還是在實(shí)際應(yīng)用中不斷的進(jìn)步。只要有好的建議提出來(lái),MOCO就會(huì)一直改進(jìn)。比如MOCO現(xiàn)在是簡(jiǎn)單地模擬服務(wù)器端,未來(lái),也許MOCO會(huì)有客戶端的模擬功能??傊?,用的人多了、意見(jiàn)就多了,集思廣益,MOCO就會(huì)集成更多的特性,變成一個(gè)更強(qiáng)大的模擬服務(wù)器。這是我對(duì)MOCO未來(lái)發(fā)展的一個(gè)預(yù)期。

記者: MOCO這個(gè)框架,最開(kāi)始的發(fā)行版是3000行代碼,相當(dāng)輕量級(jí)的一個(gè)框架。根據(jù)您十幾年的開(kāi)發(fā)經(jīng)驗(yàn),把代碼由多寫(xiě)到少,其中的關(guān)鍵點(diǎn)是什么?

嘉賓: 最近這段時(shí)間,雖然在進(jìn)行MOCO的更新,但是還在做一件更重要的事:總結(jié)關(guān)于Java開(kāi)發(fā)的一些新知識(shí)。這里我想說(shuō)說(shuō)函數(shù)式編程,這種編程風(fēng)格已經(jīng)被我用在了MOCO的代碼編寫(xiě)中,個(gè)人認(rèn)為這種編程方式將會(huì)是未來(lái)編程發(fā)展的一個(gè)重點(diǎn)趨勢(shì),會(huì)讓Java程序員對(duì)Java世界編程有一個(gè)重新的認(rèn)識(shí)。實(shí)際上在Java 8里面已經(jīng)有了”Lambda"的引用,”Lambda"就是函數(shù)式編程里面最最基礎(chǔ)的東西。這種編程風(fēng)格可以大幅度提升Java代碼之間的靈活度,減少對(duì)特定API的依賴,讓用戶來(lái)決定怎樣使用這個(gè)API,縮減代碼的編寫(xiě)量。 我現(xiàn)在也在對(duì)外推廣這種編程方式。

記者: MOCO框架是基于Java編寫(xiě)的,在剛剛JavaOne的技術(shù)大會(huì)上,發(fā)布Java EE未來(lái)發(fā)展的路線圖,您是怎么看待Java未來(lái)發(fā)展的?

嘉賓:Java語(yǔ)言一直是編程語(yǔ)言中的佼佼者。每個(gè)月的編程語(yǔ)言排行榜上,Java基本是排在前三的。所以未來(lái)很長(zhǎng)的一段時(shí)間里Java必然還會(huì)是軟件開(kāi)發(fā)語(yǔ)言的核心力量。對(duì)于已經(jīng)采用Java平臺(tái)的客戶來(lái)說(shuō),很難在短時(shí)間內(nèi)做出拋棄Java的決定,因?yàn)镴ava不僅僅是一種語(yǔ)言,還是一個(gè)平臺(tái),我們能看到越來(lái)越多的設(shè)計(jì)語(yǔ)言利用Java平臺(tái),發(fā)揮各自的威力。同時(shí)為Java編程帶來(lái)新的設(shè)計(jì)理念。

Java作為一個(gè)平臺(tái),所需要的的不是被推翻,而是不斷地更新。不可否認(rèn)的是Java確實(shí)存在自己的弊端,比如Java語(yǔ)言的更新和其他新型語(yǔ)言比起來(lái)顯得緩慢。但是我們能看到Java世界里的逐步變化。函數(shù)式編程風(fēng)格的推廣、Java8的發(fā)布,都會(huì)對(duì)Java世界產(chǎn)生巨大影響。

記者:基于Java平臺(tái)開(kāi)發(fā)的方式會(huì)相對(duì)固定,這個(gè)現(xiàn)象您怎么看?

嘉賓:Java語(yǔ)言的最大優(yōu)勢(shì)在于,編程容易上手、開(kāi)發(fā)項(xiàng)目比較簡(jiǎn)單。但也因?yàn)檫@樣,大多數(shù)人寫(xiě)Java的風(fēng)格按照教科書(shū)上講的一板一眼,一直保持這鐘傳統(tǒng)的編程風(fēng)格。但這種傳統(tǒng)編碼風(fēng)格不適合現(xiàn)代項(xiàng)目開(kāi)發(fā)。從零二年到現(xiàn)在,軟件開(kāi)發(fā)的巨大變化,讓我們對(duì)敏捷開(kāi)發(fā)變得不再陌生,讓我們了解了越來(lái)越新的編程理念。

Java所需要的新風(fēng)格,得靠擁有其他開(kāi)發(fā)經(jīng)驗(yàn)的人帶進(jìn)來(lái)。GO、Scala等新型語(yǔ)言的出現(xiàn),會(huì)讓我們看到Java世界里的東西在慢慢的改變,更多的開(kāi)發(fā)思想、編程風(fēng)格會(huì)涌入Java。那個(gè)時(shí)候,Java程序員的設(shè)計(jì)模式會(huì)有新的標(biāo)配,對(duì)編程方式會(huì)有一個(gè)新的認(rèn)識(shí)。

 

 

責(zé)任編輯:陳四芳 來(lái)源: 51CTO
相關(guān)推薦

2014-07-26 22:18:51

2015-05-22 08:59:04

Java十年Java路Moco創(chuàng)始人鄭曄

2015-05-18 14:39:23

MySQL開(kāi)源OpenStack

2016-06-16 17:13:59

Hadoop

2013-08-15 13:29:52

Moco程序庫(kù)設(shè)計(jì)

2009-07-02 08:59:56

ubuntuLinux開(kāi)源

2009-05-20 13:40:22

GoogleTwitter即時(shí)搜索

2009-02-06 17:23:13

NetApp閃存固態(tài)盤(pán)

2009-09-09 17:45:25

Ruby的blocks

2019-01-02 09:10:13

RustGraydon Hoa社區(qū)

2011-09-28 09:32:14

Linux

2009-10-28 08:46:31

WIndows 7Ubuntu對(duì)比

2016-06-21 11:16:49

小牛學(xué)堂大數(shù)據(jù)

2011-04-29 14:30:05

2010-10-11 10:21:49

Flipboard移動(dòng)開(kāi)發(fā)

2012-04-10 09:58:11

UbuntuLinux烏班圖

2014-10-23 09:03:40

創(chuàng)業(yè)合伙人

2011-09-22 15:24:34

Python

2014-10-24 10:17:56

程序員

2024-04-26 10:44:39

云計(jì)算平臺(tái)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)