談?wù)勚虚g件開發(fā)

前言

本文主要是寫給那些想從事中間件開發(fā)的同學(xué)看的 :)

如果你沒有這個打算,那么本文的學(xué)習(xí)路線非但不實用万细,還可能會影響你正常的工作 :)

什么是中間件開發(fā)?

隨著國內(nèi)軟件行業(yè)的發(fā)展瓦戚,國內(nèi)互聯(lián)網(wǎng)公司規(guī)模越來越大匪燕,業(yè)務(wù)越來越復(fù)雜,隨之使用大量的中間件來提高后臺服務(wù)性能侮叮。由此產(chǎn)生了中間件開發(fā)和維護人員避矢。

誠然,在小公司囊榜,中間件审胸,例如緩存,MQ卸勺,RPC 等服務(wù)砂沛,極大可能是由業(yè)務(wù)開發(fā)人員自己維護,或者委托第三方云平臺運維(支付一些費用)曙求。但碍庵,如果后臺開發(fā)超過 200 人映企,基本就會組建自己的中間件或者基礎(chǔ)架構(gòu)團隊,用于維護后臺服務(wù)器基礎(chǔ)架構(gòu)和中間件静浴。

更大規(guī)模的公司堰氓,則由于各種各樣的原因(性能,KPI)苹享,會自己開發(fā)中間件双絮,簡稱自研。這要求中間件團隊需要更多的人員富稻。

中間件開發(fā)人員需要哪些素質(zhì)掷邦?

既然需要中間件開發(fā)人員,那么中間件開發(fā)人員一般從哪里招聘呢椭赋?招聘的要求是什么抚岗?

通常,一個公司在剛開始組建中間件團隊的時候哪怔,都會從公司內(nèi)部挑選精英人才宣蔚,或者挑選對中間件感興趣的人才。這時候认境,可能你沒有相關(guān)經(jīng)驗胚委,但你仍然有機會參與到中間件開發(fā)中。反之叉信,如果你沒有中間件開發(fā)經(jīng)驗亩冬,想通過招聘的方式進入中間件行業(yè),那么相對而言硼身,會有些曲折硅急。

那么,假設(shè)佳遂,你想從事中間件開發(fā)营袜,但,你沒有中間件開發(fā)經(jīng)驗丑罪,且荚板,你的公司也沒有組建中間件團隊的打算。

該怎么突破吩屹?

答: 跳槽跪另。跳槽到別的公司的中間件團隊。

這里就涉及到了一個中間件團隊需要哪些技能煤搜。因為跳槽肯定就要面試免绿,如果你面試的是中間件崗位,那么自然宅楞,就需要準(zhǔn)備中間件的相關(guān)知識针姿。

另外,還有一點厌衙,在這個分工明確的時代距淫,即使是中間件,也有很多種類婶希,我這里稍微分一下榕暇,可能不是很準(zhǔn)確。

  1. 服務(wù)治理中間件喻杈,例如 RPC 相關(guān)中間件彤枢,限流熔斷,鏈路追蹤筒饰,分布式配置中心等等缴啡。你可以從 SpringCloud 里找到相關(guān)的產(chǎn)品。當(dāng)然國內(nèi)也有很多優(yōu)秀的產(chǎn)品瓷们。
  2. 存儲中間件业栅,例如緩存,MQ等等谬晕,如果存儲涉及到分布式(通常都會涉及)碘裕,那么要求相對較高。
  3. 各種 Proxy攒钳,不論是數(shù)據(jù)庫帮孔,還是 Cache,還是各種存儲不撑,通常單機無法承載海量數(shù)據(jù)文兢,比較簡單的辦法就是使用 Proxy 進行代理,讓應(yīng)用透明的使用集群燎孟。出于性能考慮禽作,這里通常會使用性能較高的產(chǎn)品,例如 goLang揩页,C++ 等旷偿。Java 的長處——開發(fā)效率,在這個地方權(quán)重不大爆侣。
  4. 各種分布式中間件萍程,例如 ZK 這種,這個我個人認(rèn)為難度是較大的兔仰。分布式向來是軟件開發(fā)中比較困難的一個點茫负。特別是涉及到存儲和一致性。
  5. 容器相關(guān)乎赴,k8s忍法,docker等潮尝,容器化已經(jīng)是大勢所趨,其實我也不是很懂??(聽大佬們說的)饿序。

回到之前的話題: 一個中間件開發(fā)者需要哪些素質(zhì)勉失?

  1. 語言基礎(chǔ)。從 Java 程序員的角度原探,基礎(chǔ)通常就是:集合乱凿,并發(fā),JVM咽弦,Netty徒蟆,IO、NIO(mmap型型,sendfile)
  2. 計算機基礎(chǔ)段审,由于中間件開發(fā)人員經(jīng)常和 OS 打交道,所以計算機基礎(chǔ)也必不可少输莺,例如文件系統(tǒng)(IO/磁盤)戚哎,進程線程,內(nèi)存管理嫂用。
  3. 網(wǎng)絡(luò)基礎(chǔ)型凳,搞后臺的人員,肯定要對網(wǎng)絡(luò)熟悉了嘱函,熟悉在 Linux 下排查網(wǎng)絡(luò)問題甘畅,熟悉 Epoll 原理等。
  4. 分布式相關(guān)知識往弓,互聯(lián)網(wǎng)海量數(shù)據(jù)背景下疏唾,分布式知識必不可少,CAP函似, Paxos槐脏,Raft,zab撇寞,2pc顿天,3pc,base等等蔑担。最好能根據(jù)這些理論寫出實現(xiàn)代碼牌废。
  5. 熟悉開源實現(xiàn),即使你是業(yè)務(wù)開發(fā)人員啤握,你也 100% 會接觸開源項目鸟缕,例如 Spring,那么,通常你需要對這種常用的開源代碼有深刻的理解懂从,不僅知曉其原理授段,也領(lǐng)會其設(shè)計。從大的角度看番甩,你得看清整個框架的背景畴蒲,設(shè)計和取舍,從小的角度看对室,你得看清框架的內(nèi)部實現(xiàn)細(xì)節(jié),有哪些有趣的地方(通常這種框架都會進行性能優(yōu)化)咖祭。
  6. 了解行業(yè)風(fēng)向標(biāo)掩宜,中間件行業(yè)和業(yè)務(wù)開發(fā)稍有不同,每個中間件的版本升級都會讓該領(lǐng)域的開發(fā)者們側(cè)目(類似 iPhone 發(fā)布會)么翰,了解其特性牺汤,進而了解行業(yè)趨勢,最后成為行業(yè)引領(lǐng)浩嫌。

如何成為中間件開發(fā)人員檐迟?

好,說完了中間件開發(fā)人員需要哪些素質(zhì)码耐,自然追迟,如何成為中間件開發(fā)人員,就不言自明了骚腥。

說白了敦间,以上 6 個點,都是硬骨頭束铭。

  • 對于已經(jīng)開始工作的人來說廓块,需要平時深刻的積累,說的難聽一點契沫,如果你的業(yè)務(wù)開發(fā)任務(wù)很重带猴,你很難搞定上門的這些內(nèi)容。
  • 對于還在上學(xué)的同學(xué)來說懈万,很爽拴清,你可以用學(xué)校(不僅僅指大學(xué),據(jù)我所知的大神钞速,通常是初中/小學(xué)就開始編程贷掖,但這不是必須的)里大把的時間來學(xué)習(xí),一個個的搞定這些知識點渴语,和社招不同苹威,如果你的知識達到上面的水平,那么 SP offer 應(yīng)該是隨便拿了 :)

我這里重點和那些平時開發(fā)任務(wù)不重驾凶,想搞中間件的同學(xué)聊聊牙甫。

我假設(shè)你是一個工作 3 年以內(nèi)的 Java 開發(fā)人員掷酗,且你可能是培訓(xùn)生,半路出家窟哺,科班生泻轰,大專生,初中生且轨,且你不在大廠浮声,通常在一個后臺開發(fā)不超過 200 人的創(chuàng)業(yè)公司,title 是 “Java 開發(fā)工程師”旋奢,并且有一個程序員的夢想泳挥,不想 get、set至朗,不想 crud屉符,不想 html 填空,不想和產(chǎn)品同學(xué)討論锹引,也不想和測試同學(xué)點點點......(感覺這里會得罪人 =_=||)

你可能想跳槽矗钟。

那么你大概需要做以下準(zhǔn)備:

  1. 鞏固 Java 基礎(chǔ),集合源碼嫌变,并發(fā)源碼吨艇,JVM 原理,Netty 原理源碼腾啥,IO 相關(guān)(涉及到零拷貝文件存儲)秸应,這些都是 Java 基礎(chǔ),通常是必須的碑宴。
  2. 分布式原理软啼,最起碼知曉理論知識,最好能寫一個延柠,哪怕參照開源的也行祸挪。
  3. 源碼,Spring Mybatis Tomcat 等等贞间,這些代碼通常是你最先接觸的贿条,不妨從這里開始。RPC 中間件相關(guān)的增热,Dubbo整以,Motan,SOFA峻仇,挑一個吧公黑,推薦 SOFA。
  4. 再熟悉熟悉(熟悉指源碼和設(shè)計)分布式的相關(guān)產(chǎn)品,假設(shè)你是 Java 開發(fā)凡蚜,推薦 RocketMQ人断,Apollo 配置中心等等中間件,其實都可以朝蜘,MQ 相對復(fù)雜恶迈。
  5. 操作系統(tǒng),通常谱醇,你在研究上面的內(nèi)容時暇仲,會遇到操作系統(tǒng)的疑問,遇到不要繞過副渴,盡量弄明白熔吗。
  6. 自己的產(chǎn)品,有就最好了佳晶,例如公眾號,博客讼载,教學(xué)視頻轿秧,GitHub 項目等等,總之咨堤,是拿得出手的東西菇篡。
  7. 加大牛好友,了解行業(yè)風(fēng)向標(biāo)一喘。也許你是一個矜持的人驱还,但從事了這個行業(yè),你有必要和行業(yè)里優(yōu)秀的人學(xué)習(xí)(看看朋友圈就好)凸克。

結(jié)語

通骋轶。看完本文,你會有一絲疲憊萎战,甚至帶有那么一絲難過:太他么難了咐容!

如果你看完了本文內(nèi)容,覺得 so easy蚂维,那么請左轉(zhuǎn)阿里戳粒,或右轉(zhuǎn)美團。

我假定你是前者虫啥。那么請你尊重你的夢想蔚约。

這里引用一段臺詞:

如果你有夢想的話,就要去捍衛(wèi)它涂籽。那些一事無成的人想告訴你你也成不了大器苹祟。如果你有理想的話,就要去努力實現(xiàn)。就這樣苔咪。

實際上锰悼,這句話也是寫給我自己的。與君共勉团赏。

最后箕般,我所說的,都是錯的舔清。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末丝里,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子体谒,更是在濱河造成了極大的恐慌杯聚,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抒痒,死亡現(xiàn)場離奇詭異幌绍,居然都是意外死亡,警方通過查閱死者的電腦和手機故响,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門傀广,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人彩届,你說我怎么就攤上這事伪冰。” “怎么了樟蠕?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵贮聂,是天一觀的道長。 經(jīng)常有香客問我寨辩,道長吓懈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任靡狞,我火速辦了婚禮骄瓣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘耍攘。我一直安慰自己榕栏,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布蕾各。 她就那樣靜靜地躺著扒磁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪式曲。 梳的紋絲不亂的頭發(fā)上妨托,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天缸榛,我揣著相機與錄音,去河邊找鬼兰伤。 笑死内颗,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的敦腔。 我是一名探鬼主播均澳,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼符衔!你這毒婦竟也來了找前?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤判族,失蹤者是張志新(化名)和其女友劉穎躺盛,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體形帮,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡槽惫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了辩撑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片界斜。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖槐臀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情氓仲,我是刑警寧澤水慨,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站敬扛,受9級特大地震影響晰洒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜啥箭,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一谍珊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧急侥,春花似錦砌滞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至铝宵,卻和暖如春打掘,著一層夾襖步出監(jiān)牢的瞬間华畏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工尊蚁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留亡笑,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓横朋,卻偏偏與公主長得像仑乌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子叶撒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 沒有看過三生三世的原著绝骚,所以在看電視劇時我是不知道結(jié)局的。 白淺化名司音女扮男裝去昆侖墟拜師祠够,冥冥之中墨淵收了她這...
    童小咪閱讀 335評論 2 3
  • 前言 好久不見压汪。 從這篇文章開始,我將帶大家走進消息中間件的世界古瓤。 消息中間件本質(zhì)上就是一種很簡單的數(shù)據(jù)結(jié)構(gòu)——隊...
    柳樹之閱讀 3,474評論 3 23
  • 曾經(jīng)有朋友問過我:你最喜歡和最討厭別人對你說什么止剖?而我的答案讓朋友吃驚,她覺得我或許有雙重人格落君,因為我說:堅持穿香,痛...
    弎渣閱讀 264評論 2 1
  • 一、 關(guān)于會員積分 1. 實行會員積分制的目的: 量化記錄跑團會員的熱心度和貢獻度绎速,優(yōu)化跑團會員服務(wù)體系皮获,倡...
    遼寧大連閱讀 8,828評論 0 0