自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Duke選擇獎獲獎作品Moco創(chuàng)始人鄭曄:十年Java路

原創(chuàng)
開發(fā) 后端 開發(fā)工具
我原本是個C程序員,陰差陽錯,步入Java大門,轉(zhuǎn)眼十余年。

我原本是個C程序員,陰差陽錯,步入Java大門,轉(zhuǎn)眼十余年。

[[134702]]

鄭燁·Duke選擇獎獲獎作品Moco的創(chuàng)始人

初涉Java

當我抱著一顆成為優(yōu)秀程序員的心和一些寫C程序的本領(lǐng)步入職場,加入了一個以做C為主業(yè)部門,準備大展手腳時,領(lǐng)導通知我,有一個Java項目缺人。于是,我捧起了一本Java教材,成為了一個Java程序員。

我的***個正式Java程序是實現(xiàn)一個服務器,其協(xié)議是一個基于SMTP的應用協(xié)議。生猛是職場新鮮人的基本屬性,我從Socket API開始一路寫了上來,先是實現(xiàn)了粗略的SMTP協(xié)議,然后,再實現(xiàn)我們的應用協(xié)議。今天開來,這實在是一種浪費時間的做法,找個開源的SMTP實現(xiàn),再上面直接做應用就好了。但在那個蠻荒年代,什么東西都要自己動手才能豐衣足食,開源的苗頭已有星火,但大多數(shù)企業(yè)的態(tài)度是,非我族類,其心必異。不過,這種做法對于我建立個人的知識體系來說,卻是大有裨益的。

后來,項目越做越多,代碼越寫越多,經(jīng)驗也越來越多,Java用起來也就越來越得心應手。但與經(jīng)驗一同增長的是困惑。Java開發(fā)中的一些內(nèi)容我雖然在實踐,卻無法理解,比如EJB。這種不理解不是技術(shù)上的,而是我想不明白為什么要用它?;蛟S今天的Java程序員已經(jīng)有很多人不知道EJB為何物了,但在十幾年前,那個Java企業(yè)級開發(fā)大行其道的年代,只要是Java開發(fā)服務端應用,必須談到企業(yè)級標準,也就是當時名滿天下的J2EE,而EJB又是J2EE中的當紅小生。即便應用只是一個非常簡單的應用,也一定需要一個價格昂貴的應用服務器,編寫只有部署到上面才能運行的EJB,因為這是官方推薦的做法,只有這么做才正宗,這有這么干,才叫企業(yè)級。

有一次出差在外,臨近下班,我發(fā)現(xiàn)了程序的一個bug。我們的程序就是一個按照官方推薦做法編寫的EJB,只有部署到應用服務器才能運行。我的調(diào)試方案就是加上一些打印語句,然后部署到應用服務器上,看輸出的結(jié)果,再加上另外一些語句,再部署,如此往復。那時我們用的是Sun的應用服務器,只有用它的發(fā)布工具將應用打包,然后把幾百兆的程序上傳到服務器上,每一次上傳都要至少十幾分鐘。最終,我定位到了問題,只修改了一行代碼,問題解決,但時間已經(jīng)晚上九點多,三個多小時的時間多半都在等待部署中浪費。

我不認為我所喜歡的軟件開發(fā)應該是無意義的消耗,一定是哪里出了錯。周邊的人給不了我答案,我只有到網(wǎng)上搜尋,于是,我知道了敏捷、知道了開源、知道了軟件設(shè)計,也知道了世界上有一堆Java程序員對官方說法的不滿。那段時間,我瘋狂補習著各種各樣的軟件開發(fā)知識,我越發(fā)覺得“簡單”開發(fā)才應該是軟件開發(fā)的本來面目。

那段時間恰逢軟件開發(fā)理念變革的年代,SpringFramework、Hibernate等如今還在影響Java程序員的框架剛剛發(fā)軔,企業(yè)級開發(fā)“Without EJB”理念初出茅廬。倍受J2EE開發(fā)模式折磨的程序員大量地討論著各種方法的優(yōu)劣。那時,我也開始帶隊做項目,于是,我便笨拙地踐行著這些新理念。我用的***個SpringFramework的版本是0.8,我開始用設(shè)計去隔離數(shù)據(jù)庫訪問,嘗試把EJB踢出我的項目,努力在本地完成所有的開發(fā)測試,盡量少用應用服務器。如今想來,還真要感謝我當年的項目經(jīng)理,那么信任我,讓我放手折騰。

新理念的注入,讓我在新項目中更加得心應手,對于軟件開發(fā)的理解也日益加深。適逢公司內(nèi)部舉辦了一次Java技術(shù)大賽,實力和運氣相加,我一舉拿下了冠軍。

#p#

反思Java

作為一個寫C程序出身的人,做Java總覺得滿足不了我內(nèi)心的一些需求。所以,我做出了一次職業(yè)調(diào)整,準備告別Java。當時以為是告別,沒想到只是暫別,幾年后,我又回來了。那幾年,應該是我擴展視野一段時間,我做過很多不同類型的項目,用到了很多不同的技術(shù),但是,工作上的項目真的就沒再動過Java。

但要說我完全離開的Java也不恰當。那是Ruby On Rails興起的一段時間,需要人投身到Web開發(fā)的大潮中。而我更感興趣的是Ruby這門程序設(shè)計語言。剛好網(wǎng)上有個人在做一個叫XRuby的項目,要把Ruby編譯成Java的字節(jié)碼。出于對語言實現(xiàn)的熱衷,我以極大的熱情加入了這個項目,研究Ruby語言的實現(xiàn),研究Java字節(jié)碼的編寫。這是我參與的***個開源項目,因為選擇了一個合適的切入點,所以,很快就有很多人開始關(guān)注到這個項目,其中就包括ThoughtWorks。

ThoughtWorks是軟件業(yè)界的思想***,當時它正在力推Ruby這個技術(shù)棧,而當時的Ruby開發(fā)者并不多。因此,我得到了ThoughtWorks公司的橄欖枝,從此成為了一名ThoughtWorker,并將隨后的八年時間貢獻給了它。ThoughtWorks的確給了我更多開眼界的機會,我也開始把各種語言、各種技術(shù)融匯在一起思考,當然這其中包括Java。ThoughtWorks有許多機會做企業(yè)級軟件的開發(fā),而我也由此重回Java開發(fā)的行列。

在周游了各種技術(shù)之后,我發(fā)現(xiàn),我對Java有了全新的認識,也許是一個更客觀的認識。Java擁有世界上最龐大的社區(qū),各種程序庫幾乎可以滿足滿足各種需求;當今計算機領(lǐng)域最有挑戰(zhàn)的問題,無論是大數(shù)據(jù)還是高并發(fā),Java都是走在前頭的。對企業(yè)而言,Java程序員的數(shù)量是企業(yè)采用Java最直接的證據(jù)。

當進入到職業(yè)生涯的第十個年頭,我很認真地思考了一個問題。十年的經(jīng)驗,我做過很多項目,但我究竟有什么拿得出手的東西呢?我很難回答這個問題,我突然意識到一個關(guān)鍵問題,我需要專注的做一件事。所以,我決定不再四處游蕩,專心把精力放在Java開發(fā)上。因此,在后來的項目安排上,我拒絕了所有的非Java項目,開始集中注意力。

專注做Java的***個成績是,我開始了自己的又一個開源項目,Moco,一個模擬服務器的項目,解決軟件開發(fā)中一直存在的一個痛點,集成。多年的積累讓我選擇了一種優(yōu)雅的方式去解決這個問題,而也逐漸得到了更多同行的認可。Moco很快就在ThoughtWorks內(nèi)部用了起來,在一些社區(qū)活動上做過介紹之后,在外部也擁有了很多用戶。轉(zhuǎn)過年來,Oracle將JavaOne開到了中國,Moco報名參加了Duke選擇獎的評選,幸運的是,Moco成為了Duke選擇獎的獲獎作品。這也讓我越發(fā)相信堅持的力量。

這段時間,我還在思考另外一件事情,游歷了多種軟件開發(fā)技術(shù)之后,我發(fā)現(xiàn),雖然Java技術(shù)日新月異,但Java社區(qū)還有很多人對Java的理解停留在十幾年前。于是,我著手把自己對于現(xiàn)代軟件開發(fā)的理解和Java相結(jié)合。我先寫了一個系列的文章,叫做《你應該更新的Java知識》。在ThoughtWorks內(nèi)部,我組織了一個課程,把這些需要更新的現(xiàn)代Java開發(fā)知識一一分享了。在2014年北京的QCon上,我把這一系列的提綱做了一個分享。原本還考慮進一步將這些內(nèi)容整理成書,因為自己實在懶惰,加之工作的忙碌,這一想法也就作罷了。一些沒有寫出內(nèi)容,就只好留在腦子里了。

如今,我成了創(chuàng)業(yè)大潮新鮮人,在選擇服務器端技術(shù)時,我毫不猶豫地給把自己的票投給了Java。一方面,Java語言有足夠多的資源,無論是技術(shù),還是人才,另一方面,我也想把自己來不及寫出來的新思考,在自己的項目上一一實踐。

誤入Java十余載,至今思來心不悔。

作者簡介:

鄭曄,十多年工作經(jīng)驗的程序員,Duke選擇獎獲獎作品Moco的創(chuàng)始人,前ThoughtWorks***咨詢師,創(chuàng)業(yè)大潮新鮮人,目前投身于智能硬件領(lǐng)域,致力于簡化智能硬件的開發(fā)方式。他多次在各種媒體上發(fā)表文章,在各種技術(shù)大會上做過演講,分享自己對于軟件開發(fā)的理解,特別愿意吸收新的知識,也愿意與人暢聊軟件開發(fā)。

微博:@dreamhead      個人主頁頁:http://dreamhead.blogbus.com/
 
責任編輯:王雪燕 來源: 51CTO
相關(guān)推薦

2014-07-26 22:18:51

2013-08-15 09:39:20

MOCOJava

2013-09-24 15:10:03

甲骨文Duke

2013-07-24 09:45:28

甲骨文全球大會2013甲骨文

2010-07-27 08:45:35

Perl 6Larry Wall

2013-07-24 15:26:57

MOCO

2013-01-14 10:04:16

2013-10-29 16:04:50

UbuntuUbuntu創(chuàng)始人Mark Shuttl

2018-06-29 09:03:00

51CTO首屆開發(fā)者大

2022-03-31 10:18:10

計算機圖靈獎

2010-05-04 16:22:45

Unix系統(tǒng)

2009-06-19 16:44:56

SpringJava EE

2010-08-20 09:27:40

Java創(chuàng)始人Android

2011-08-31 08:42:24

Java創(chuàng)始人高司令谷歌

2012-06-14 16:21:24

LinuxLinus Torva

2011-02-16 10:14:33

2011-04-29 14:30:05

2022-12-06 07:18:56

DedeCMS創(chuàng)始人林學
點贊
收藏

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