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