初入職場的時候,很多內(nèi)容不懂,多數(shù)情況都是領(lǐng)導(dǎo)指哪兒,我打哪兒,工作循環(huán)在敲代碼、看別人代碼、改bug之中,有時候會陷入焦慮:
明年我還要繼續(xù)這樣的生活嗎?
在一家公司呆久了,就容易思維固化。身邊有朋友出去找工作也四處碰壁,即使入職了下一家公司,也很難立足。
而我的分析是,1~2年的經(jīng)驗(yàn),其實(shí)已經(jīng)足夠讓我們?nèi)腴T了,學(xué)習(xí)需求分析、項(xiàng)目管理,寫出更好的代碼,才是我現(xiàn)階段應(yīng)該做的。
做開發(fā)很多年,這期間我獲得了很多能力,技術(shù)能力、大廠經(jīng)驗(yàn)、培訓(xùn)能力……但是在這里,我建議大家最值得訓(xùn)練的,還是學(xué)習(xí)和分析的能力。
一、工程化管理工具
不管小白還是大牛,做Java技術(shù),選擇好的工具,才是提升開發(fā)和團(tuán)隊(duì)協(xié)作效率的關(guān)鍵,以下四個工具是必不可少的:
① Maven,項(xiàng)目對象模型,可以通過一小段描述信息來管理項(xiàng)目的構(gòu)建,報告和文檔的項(xiàng)目管理工具軟件。
② Jenkins,一個開源軟件項(xiàng)目,是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復(fù)的工作。
③ Sonar,一個開源平臺,用于管理源代碼的質(zhì)量。
④Git,一個開源的分布式版本控制系統(tǒng),可以有效、高速地處理從很小到非常大的項(xiàng)目版本管理。
二、分布式架構(gòu)
高并發(fā)、高可用、海量數(shù)據(jù),沒有分布式架構(gòu)知識,肯定是無法勝任的。一位朋友在五百強(qiáng)公司工作五年,曾承擔(dān)過項(xiàng)目經(jīng)理多年,將五年開發(fā)經(jīng)驗(yàn)所得,整理了下面這張學(xué)習(xí)路線圖。也分享給大家。

三、微服務(wù)架構(gòu)
業(yè)務(wù)流程越來越復(fù)雜,代碼量的膨脹和團(tuán)隊(duì)成員的增加,傳統(tǒng)單體式架構(gòu)的弊端越來越凸顯,嚴(yán)重制約了業(yè)務(wù)的快速創(chuàng)新和敏捷交付。
為了解決傳統(tǒng)單體架構(gòu)面臨的挑戰(zhàn),微服務(wù)架構(gòu)橫空出世。微服務(wù)有五大優(yōu)勢,學(xué)會微服務(wù),就等于提升了翻倍的工作效率:
每個服務(wù)足夠內(nèi)聚,足夠小,代碼容易理解、開發(fā)效率提高。
服務(wù)之間可以獨(dú)立部署,微服務(wù)架構(gòu)讓持續(xù)部署成為可能。
每個服務(wù)可以各自進(jìn)行x擴(kuò)展和z擴(kuò)展,而且,每個服務(wù)可以根據(jù)自己的需要部署到合適的硬件服務(wù)器上。
容易擴(kuò)大開發(fā)團(tuán)隊(duì),可以針對每個服務(wù)(service)組件開發(fā)團(tuán)隊(duì)。
提高容錯性(fault isolation),一個服務(wù)的內(nèi)存泄露并不會讓整個系統(tǒng)癱瘓。
系統(tǒng)不會被長期限制在某個技術(shù)棧上。
