和大家介紹下我目前所從事的工作。
我目前從事分布式服務(wù)架構(gòu)的設(shè)計(jì)與開發(fā)工作,在阿里的大數(shù)據(jù)平臺(tái)上進(jìn)行應(yīng)用程序開發(fā)。我們整個(gè)系統(tǒng)架構(gòu)采用了“前后端分離”的思想,前端關(guān)注數(shù)據(jù)展現(xiàn),后端關(guān)注數(shù)據(jù)生產(chǎn),通過 REST服務(wù)將前后端整合起來,所有的應(yīng)用都是無(wú)狀態(tài)的,可以做到水平擴(kuò)展。我們將整個(gè)系統(tǒng)拆分成許多“微服務(wù)”,服務(wù)之間通過統(tǒng)一的接口來調(diào)用,每個(gè)服務(wù)是通過容器技術(shù)進(jìn)行隔離,此外服務(wù)可發(fā)布到統(tǒng)一的服務(wù)管理平臺(tái)上,可通過該平臺(tái)監(jiān)控每個(gè)服務(wù)的運(yùn)行狀態(tài)與生命周期事件,并為服務(wù)調(diào)用者提供了服務(wù)發(fā)現(xiàn)的能力,可對(duì)服務(wù)進(jìn)行平滑升級(jí)。
阿里有許多優(yōu)秀的中間件與基礎(chǔ)服務(wù),可以快速幫助我們搭建應(yīng)用系統(tǒng),而且這些技術(shù)在阿里內(nèi)部全是開源的,大家可以通過源碼和文檔學(xué)習(xí)到很多有價(jià)值的經(jīng)驗(yàn)。阿里也提供了濃厚的技術(shù)氛圍,每位同學(xué)都非常專注于自己的工作領(lǐng)域,大家對(duì)工作一絲不茍,相互配合,方向一致。
我是如何走上技術(shù)這條路的?
2008 年大學(xué)畢業(yè),我離開了母校武漢理工大學(xué),在院長(zhǎng)薛勝軍老師的推薦下,我來到了上海,這個(gè)對(duì)于我來說非常陌生的地方。我有幸加入了一家名為“動(dòng)量軟件”的創(chuàng)業(yè)公司,這家公司的老板曾經(jīng)是亞信科技的 CTO,他也是普元軟件的創(chuàng)始人兼 CTO,他的名字叫黃柳青,他也是薛老師的大學(xué)同學(xué)。于是就這樣,我的老板成為了我的老師,我習(xí)慣叫他黃老師,包括公司其他資深的同事也成為了我的老師,因?yàn)槲液芟胨麄兩砩蠈W(xué)到更多有價(jià)值的東西。
剛開始工作的時(shí)候我學(xué)習(xí)了什么是云計(jì)算?什么是 SaaS、PaaS、IaaS?我們花了三年時(shí)間開發(fā)了一款名為 ODE 的 PaaS 平臺(tái),讓用戶可以在該平臺(tái)上量身定制自己的軟件,最終為客戶提供基于 SaaS 的產(chǎn)品。確實(shí)很驕傲,那時(shí)我們已經(jīng)在做云了,只是沒想到后來云會(huì)在中國(guó)得到這么好的市場(chǎng),可能當(dāng)時(shí)只有黃老師一個(gè)人想到了吧。
在 2008 年,我為公司拿回了“第一桶金”,這也是我從程序員轉(zhuǎn)向項(xiàng)目經(jīng)理的里程碑。當(dāng)時(shí)我?guī)ьI(lǐng)團(tuán)隊(duì)遠(yuǎn)赴深圳,為國(guó)信證券公司開發(fā)經(jīng)紀(jì)人管理系統(tǒng),這個(gè)項(xiàng)目對(duì)于我個(gè)人而言卻是一筆至高無(wú)上的財(cái)富,我開始學(xué)習(xí)如何與人打交道,如何做需求分析,如何將需求轉(zhuǎn)變?yōu)榧夹g(shù),如何帶領(lǐng)團(tuán)隊(duì)小伙伴一起工作。學(xué)到了太多太多,但我依然選擇在我工作第四個(gè)年頭里離開了動(dòng)量軟件,我剛加入動(dòng)量軟件的時(shí)候,公司只有 5 個(gè)人(包括老板和前臺(tái)),當(dāng)我離開動(dòng)量軟件的時(shí)候,公司已經(jīng)有 200 人左右了。感謝黃老師!我在他身上學(xué)到了很多,他的思想和態(tài)度直到今天都還在影響著我。
我的第二份工作還是選擇了我最熟悉的證券金融行業(yè),同樣也是一家創(chuàng)業(yè)型公司,在這家公司里我擔(dān)任了技術(shù)經(jīng)理,管理了整個(gè)技術(shù)團(tuán)隊(duì),從項(xiàng)目的售前到售后,我都親自帶領(lǐng)團(tuán)隊(duì)來完成。雖然在這家公司我只做了兩年,但在這短短的時(shí)間里,我學(xué)會(huì)了如何提高開發(fā)效率、如何培養(yǎng)技術(shù)團(tuán)隊(duì)、如何選拔技術(shù)人才、如何建立企業(yè)文化。但最后我發(fā)現(xiàn)了一個(gè)問題,越是想做好,越是很難做好,為了做成一件事情需要做很多的嘗試,做事情缺乏正確并有效的方法。
如何讓自己成為一個(gè)優(yōu)秀的Java架構(gòu)師,而不是碼農(nóng)
回想我工作的前六年時(shí)間里,我一直都是在創(chuàng)業(yè)公司里成長(zhǎng),雖然可以快速學(xué)到東西,但似乎很難學(xué)到更加規(guī)范的做事方法。于是我選擇了新的工作機(jī)會(huì),來到了 TCL 通訊,這是一家相當(dāng)大的公司,公司的研發(fā)管理流程來源于法國(guó)阿里卡特公司。我在公司擔(dān)任 Java 架構(gòu)師職位,也算是整個(gè) Java 團(tuán)隊(duì)的技術(shù)負(fù)責(zé)人,雖然團(tuán)隊(duì)并不是特別地大。我在這家公司做了三年,學(xué)到了如何整合現(xiàn)有資源、如何按標(biāo)準(zhǔn)流程去做事、如何設(shè)計(jì)系統(tǒng)架構(gòu)、如何進(jìn)行異地工作、如何跨團(tuán)隊(duì)工作、如何用英文來溝通。說實(shí)話,當(dāng)時(shí)我沒有任何的工作壓力,可以按時(shí)上下班,從來都不會(huì)加班。雖然自己空閑的時(shí)間很多,但我并沒有選擇去浪費(fèi)時(shí)間,而是開始寫點(diǎn)技術(shù)博客,也正是因?yàn)檫@些技術(shù)文章,才改變了我后續(xù)的職業(yè)發(fā)展道路。
Java 會(huì)在很長(zhǎng)的一段時(shí)間內(nèi)是主流,現(xiàn)在做Java Web開發(fā)都用哪些框架呢?
常用的比如Spring MVC、Struts2 等,國(guó)內(nèi)的 JFinal、Nutz 等也不錯(cuò),當(dāng)然Smart 也是一個(gè)很好的選擇。
有一定Web前端開發(fā)經(jīng)驗(yàn)的人,很多都會(huì)有這么個(gè)想法:那些寫框架的人好厲害,什么時(shí)候我才能寫一個(gè)自己的框架呢?有時(shí)候看看別人的框架代碼,又覺得很復(fù)雜,對(duì)此我有一些建議以及新人學(xué)習(xí)需要什么基礎(chǔ)?分享一些好的方法。
抽象能力:對(duì)業(yè)務(wù)和技術(shù)進(jìn)行抽象。業(yè)務(wù)抽象就是對(duì)需求進(jìn)行分析后,能夠建立完美的實(shí)體類以及他們之間的聯(lián)系。技術(shù)抽象是對(duì)整體架構(gòu)進(jìn)行一個(gè)分層,各層之間的交互。這至關(guān)重要,如果技術(shù)抽象能力不足,這會(huì)導(dǎo)致整個(gè)系統(tǒng)的架構(gòu)不靈活,難以維護(hù)和擴(kuò)展。
知識(shí)的深度:至少是某個(gè)領(lǐng)域的專家,比如消息隊(duì)列,activeMQ熟悉其源碼,知道其實(shí)現(xiàn)。
優(yōu)秀的學(xué)習(xí)能力:對(duì)新的技術(shù)和前沿性的技術(shù)進(jìn)行學(xué)習(xí),使用它來解決工作中的業(yè)務(wù)問題。
那么你該如何去做呢?我覺得可以從以下幾個(gè)步驟開始:
1: 扎實(shí)的JAVA 基礎(chǔ),Think in java上介紹的內(nèi)容都能理解,做到這一步恭喜成為了程序員。
2:熟練使用主流框架,如:mybatis,spring 等。
3:研究過至少一種以web框架的源碼,如spring mvc ,struts 等。
4:架構(gòu)過或者參與過高并發(fā)系統(tǒng)設(shè)計(jì),知道如何應(yīng)對(duì)突發(fā)情況。
5:對(duì)自己所處的業(yè)務(wù)能夠根據(jù)自己的知識(shí)維度,提出優(yōu)化建議或者預(yù)測(cè)其風(fēng)險(xiǎn)點(diǎn)。
其實(shí)能否成為架構(gòu)師跟機(jī)遇有很大關(guān)系,比如一個(gè)程序員,以上都做到了,但是公司并沒有給他這個(gè)機(jī)會(huì)去做,一個(gè)真正架構(gòu)的機(jī)會(huì)。因?yàn)橹暗募軜?gòu)師不離職他就沒有機(jī)會(huì),這就是現(xiàn)實(shí)!
技術(shù)人的歸途
走技術(shù)這條路,歸途是什么?是否轉(zhuǎn)型又該如何抉擇呢?
至少有好幾條路線是可以走的,比如:深入技術(shù)、轉(zhuǎn)型做產(chǎn)品、轉(zhuǎn)型做管理等,需要根據(jù)自己的特長(zhǎng)和性格來選擇,做自己喜歡的事情。
從技術(shù)轉(zhuǎn)管理,對(duì)自身的要求比較高,說具體點(diǎn),需要看自己的情商,為人處世的經(jīng)驗(yàn),與人溝通的技巧,自己也需要有足夠的胸懷,去包容一些事情,還需要自己有足夠的人格魅力去吸引別人,讓別人愿意跟著你一起做事。管理有些東西是很難從書本上學(xué)到的,但一些經(jīng)典的管理理論是必須要去學(xué)的。
相比較而言,繼續(xù)深入技術(shù)或者從技術(shù)轉(zhuǎn)產(chǎn)品會(huì)容易一些了,因?yàn)楹芏鄷r(shí)候都不太需要與人打交道。
-
JAVA
+關(guān)注
關(guān)注
19文章
2970瀏覽量
104834 -
架構(gòu)師
+關(guān)注
關(guān)注
0文章
47瀏覽量
4638
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論