2018所思所感所悟

在2018年,我學(xué)會(huì)了如何規(guī)劃人生。
在2018年,我學(xué)會(huì)了如何快速提升技術(shù)。
在2018年,我學(xué)會(huì)了如何做技術(shù)選型。
在2018年,我學(xué)會(huì)了如何處理職場(chǎng)關(guān)系。
在2018年,我學(xué)會(huì)了如何應(yīng)對(duì)工作壓力。
在2018年,我以平穩(wěn)的心態(tài),獲得了職場(chǎng)的晉升。

金三銀四

2018年3月,一回來上班就有一股離職跳槽的風(fēng)向,很多人都在議論年終獎(jiǎng)和薪酬調(diào)整的話題,這股暗流持續(xù)涌動(dòng)著,終于在4月份爆發(fā)了。離開的是我的幾個(gè)大學(xué)同學(xué),非常要好的那種,大學(xué)我們?cè)?jīng)是一個(gè)Team。同樣的也包括了我的導(dǎo)師,從我實(shí)習(xí)一直帶領(lǐng)我入門的導(dǎo)師。這個(gè)時(shí)期,我的心情也很低落,也準(zhǔn)備了簡歷,也進(jìn)行過面試。也通過了,后來沒有去。

我為何而情緒低落?

作為一個(gè)剛剛步入職場(chǎng)的人來說,確實(shí)很容易受到同事離職的影響,下班再也沒有人傾訴公司里邊發(fā)生的瑣事,再也沒有人能夠在你技術(shù)遇到難題的時(shí)候給你最強(qiáng)勁的火力支援了,頓時(shí)間感到了無助。而且同事的離職也很容易讓你有一種“公司很不好,福利很差,要盡快離開這個(gè)坑”的感覺。特別是我導(dǎo)師的離職,以前都是他給我最正確技術(shù)指導(dǎo),讓我少走了很多彎路,也讓我快速地成長起來。他走了,我的工作會(huì)比以前多出一倍甚至兩倍。很慌,于是我就開始整理簡歷,無心工作了,開始復(fù)習(xí)一些基礎(chǔ)性的東西(JVM特性,設(shè)計(jì)模式,Spring源碼等等),去背面試題。

最后我停止了面試,選擇了繼續(xù)留在公司

我看了很多面試的崗位要求,也考慮過很多行業(yè)(游戲,金融,教育)。發(fā)現(xiàn)自己在整個(gè)市場(chǎng)的環(huán)境下,真的就是一只螞蟻。要精通的不精通,要熟悉不熟悉。與其換到一個(gè)不熟悉的行業(yè),從頭開始。還不如穩(wěn)扎穩(wěn)打的在一個(gè)行業(yè)里積累經(jīng)驗(yàn),跳槽之后的薪酬也沒有高多少。而且我覺得對(duì)于我這種剛剛畢業(yè)一年不到的人來說,薪酬并不是首要考慮的東西,要考慮的是自己應(yīng)該怎樣快速地成長起來,用實(shí)力來證明自己,而不是用過多的面試技巧去說服別人給你滿意的薪酬。大公司固然有大公司的好,福利好,平臺(tái)廣,大牛多,技術(shù)寬,但是我進(jìn)不去,我也不想專門去準(zhǔn)備三五個(gè)月的面試,這樣多沒意思。進(jìn)大公司的機(jī)會(huì)很多,畢竟他們天天都在招人,機(jī)會(huì)多得是。

如何去考慮自己的職業(yè)生涯?

經(jīng)過了這金三銀四,我徹底明確了自己的職業(yè)方向。我問了自己的幾個(gè)問題

應(yīng)該如何選擇一個(gè)什么樣的行業(yè)?

我是一名從醫(yī)學(xué)院校畢業(yè)的類計(jì)算機(jī)專業(yè)的普通本科生,所以在醫(yī)療行業(yè)我能夠快速適應(yīng)。而且醫(yī)療在未來的發(fā)展趨勢(shì)也挺不錯(cuò),值得深入了解。醫(yī)療行業(yè)的信息化程度較其他行業(yè)相對(duì)落后,具有挑戰(zhàn)性和開創(chuàng)性。于是我毫不猶豫地選擇了醫(yī)療行業(yè)。

應(yīng)該如何抓住機(jī)會(huì)?

職場(chǎng)是一個(gè)機(jī)遇與挑戰(zhàn)并存的地方,在我的處境:
機(jī)遇:我將擁有獨(dú)立的研發(fā)機(jī)會(huì)(技術(shù)選型,系統(tǒng)設(shè)計(jì),代碼管理等),有可能獲得職場(chǎng)的晉升。
挑戰(zhàn):我并不能勝任以上所有的工作。
只有迎接挑戰(zhàn),才能獲得機(jī)遇。

應(yīng)該樹立怎樣的職場(chǎng)形象?

我爸從小叫教導(dǎo)我,做人要靠譜。所以我要求自己盡量把別人交給我的事情做好。
每一個(gè)技術(shù)方案的提出,都要事先做可行性試驗(yàn)。
每一次技術(shù)支援都要求自己,做到出手必成。
每一天都保持高度的專注,持續(xù)的思考,學(xué)習(xí)新的知識(shí)。

破釜沉舟,志在必得

在明確了自己的職業(yè)方向和未來幾年的人生規(guī)劃后。我開始沉著地應(yīng)對(duì)接下來的工作了,我對(duì)我自己說,這個(gè)部門以后我做老大。
數(shù)據(jù)交換平臺(tái),承載著公司對(duì)接醫(yī)院數(shù)據(jù)的重要組件,一直是我和導(dǎo)師負(fù)責(zé)維護(hù)和升級(jí)的。在此之前已經(jīng)上線25家醫(yī)院,未來的規(guī)模將會(huì)去到75家(合同都簽了)。

如何一人維護(hù)75家數(shù)據(jù)交換平臺(tái),并且保證他們能快速地落地
源代碼管理(Git管理)

之前的項(xiàng)目代碼只有一個(gè)分支(SVN),但是由于每家醫(yī)院在對(duì)接的時(shí)候,都有特殊的需求,單純用SVN進(jìn)行代碼管理很麻煩,于是我采用了Git管理,并且也分支的形式管理,一家醫(yī)院一個(gè)分支。
(master分支+dev分支+N醫(yī)院分支)
在每家醫(yī)院發(fā)現(xiàn)交換平臺(tái)bug時(shí),在此醫(yī)院分支修復(fù),修復(fù)后合并到dev分支,測(cè)試通過后再合并到master分支。
每次發(fā)包都以master分支為基準(zhǔn)。
其他醫(yī)院非必要情況不升級(jí),升級(jí)前要與master分支做比較,合并代碼,本地測(cè)試通過后再升級(jí)。

項(xiàng)目結(jié)構(gòu)調(diào)整,加快迭代速度

以前由于項(xiàng)目未做模塊化劃分,導(dǎo)致了代碼開發(fā)混亂,無明顯的分層,維護(hù)效率低。定位問題難。于是我花了進(jìn)2個(gè)星期的時(shí)間,叫代碼換成了mavan的模塊化管理。替換了之前自定義的持久層改用mybatis-plus。加快項(xiàng)目的開發(fā)速度(單表CRUD+界面)30分鐘完成。

代碼健壯性和可拓展性

之前剛?cè)腴T,代碼寫得很垃圾,于是開始運(yùn)用一些簡單的設(shè)計(jì)模式(動(dòng)態(tài)工廠,模板方法,發(fā)布訂閱)去重構(gòu)一些重復(fù)的代碼,盡量消滅掉。后來運(yùn)用一些高級(jí)的Java特性(泛型,反射,動(dòng)態(tài)代理,策略模式)去重構(gòu)那些寫得不靈活的代碼。最終做到了增加一個(gè)組件,只需增加一個(gè)類,而不需要各種復(fù)制粘貼了。

項(xiàng)目依賴管理

之前沒有做項(xiàng)目依賴管理,導(dǎo)致了各種jar包亂用,導(dǎo)致了war包體積過于龐大,隨便引入一個(gè)jar包都可能導(dǎo)致項(xiàng)目無法啟動(dòng)。于是我采用了idea的maven依賴樹刪減不必要的依賴(exclusion ),最終使war體積減少30%,每一個(gè)jar包版本都在根pom文件有維護(hù)。
從我導(dǎo)師離開的一個(gè)月,經(jīng)過以上的工作,我已經(jīng)能從容地面多數(shù)據(jù)交換平臺(tái)的維護(hù)和升級(jí)了,在這段時(shí)間里,我的技術(shù)得到了很快的提升,因?yàn)槲叶昧巳绾稳懗龈玫拇a,如何讓自己更快得產(chǎn)出。

如何讓自己的技術(shù)快速的提升

數(shù)據(jù)交換平臺(tái)是一個(gè)很重要的系統(tǒng),它的性能和穩(wěn)定性很關(guān)鍵。但是它始終沒有一個(gè)集群的功能。它的底層是基于mule的,但是它又是對(duì)mule的獨(dú)立封裝。
于是我去研究了mule的集群原理,很痛苦。真的我連mule的源碼都沒有跑起來,也是硬著頭皮的去看他的官方文檔。后來我發(fā)現(xiàn),其實(shí)我們可以換種思維去看這些東西。

源碼只是用來印證你的猜想,并不是讓你由頭到尾的去debug跟蹤。

我看了網(wǎng)上很多的源碼分析,他們一貫的做法都是,先把源碼clone下來,在本地跑起來,然后一步步debug跟蹤,打log。然后更新一篇文章,完了以后就什么都不管了。最終讀者看了也是一頭霧水。為什么呢?因?yàn)樵创a只是一種實(shí)現(xiàn)形式,光去讀這些形式的東西,很容易在里頭繞彎路,而且很容易搞錯(cuò)了方向。

學(xué)技術(shù)要學(xué)思想,學(xué)理念,不能浮在表面

就拿mule來說,它的幾個(gè)重要的概念

組件名稱 組件描述
mule message mule可以將很多種協(xié)議(ftp,http,tcp,udp)轉(zhuǎn)換為統(tǒng)一的mule message
endpoint mule message 來源的端口
flow mule處理mule message的處理流程 的總定義
processer 具體的處理流程
transform 特殊的processer,mule封裝過的
mule在我看來

當(dāng)我們從mule的設(shè)計(jì)文檔明確了簡單的設(shè)計(jì)思想和設(shè)計(jì)理念后,我們?cè)購脑创a印證,我學(xué)得更深,我學(xué)得更透徹。
回到mule的集群問題

mule的集群架構(gòu)

很明顯,mule對(duì)應(yīng)外部的load balance 是基于外部組件的,這一點(diǎn)我們可以運(yùn)用nginx來解決。那么它的內(nèi)部是如何實(shí)現(xiàn)的?


共享內(nèi)存

我們知道m(xù)ule內(nèi)部的傳輸是基于mule message的,在分布式的傳輸中必定要對(duì)其進(jìn)行序列化和反序列化,mule為了提高性能,采用了kryo。服務(wù)注冊(cè)采用了hazelcast。


mule內(nèi)部集群實(shí)現(xiàn)細(xì)節(jié)

mule的內(nèi)部負(fù)載均衡的本質(zhì)是:將flow的每個(gè)processer注冊(cè)到hazelcast,再利用
hazelcast的服務(wù)負(fù)載均衡去實(shí)現(xiàn)的。
最終,我綜合了各種技術(shù)選型,采取了nginx+ignite的技術(shù)方案,實(shí)現(xiàn)了mule的集群。

包括后面的kettle學(xué)習(xí),rabbitMQ學(xué)習(xí),ignite學(xué)習(xí)。我都采取了這種方式,學(xué)得很快。在看他們的源碼的時(shí)候,我無需將他們的代碼跑起來,卻能準(zhǔn)確得猜測(cè)出源碼具體的位置。

區(qū)域化醫(yī)療,我又一次面臨了巨大的挑戰(zhàn)

醫(yī)療面向集團(tuán)化,區(qū)域化的趨勢(shì)越來越明顯,公司也承包著很多這樣的項(xiàng)目。而對(duì)于我來說,是一個(gè)巨大的調(diào)整。醫(yī)療信息的區(qū)域化,意味著信息共享,互聯(lián)互通。而之前的數(shù)據(jù)交換平臺(tái)只是作為單獨(dú)一家醫(yī)院的設(shè)計(jì)。區(qū)域醫(yī)療繞不開的三座大山“病歷”,“影像”,"醫(yī)療記錄",如何做到它們的互聯(lián)互通和信息共享?

數(shù)據(jù)集成,匯聚記錄

醫(yī)療記錄都沉淀在各個(gè)廠商的數(shù)據(jù)庫中,我們要做的就是將他們拿出來,放到一個(gè)地方,也就是做數(shù)據(jù)抽取。開始我們采用了kettle的方式去做數(shù)據(jù)抽取,但是在實(shí)施過程中,效率極低。因?yàn)閗ettle是的圖像化操作,雖然簡單,但是對(duì)于實(shí)施人員來說,也是有要求的。而且開發(fā)只能遠(yuǎn)程去調(diào)試,由于網(wǎng)絡(luò)原因,經(jīng)常中斷。導(dǎo)致了數(shù)據(jù)抽取開發(fā)效率低。而且kettle在運(yùn)行時(shí)容易出錯(cuò),導(dǎo)致數(shù)據(jù)丟失。這些種種問題都在困擾著我,我?guī)缀踉谶@段時(shí)間都是很煩躁。后來我看到了阿里的Dataworks,才明白了什么叫數(shù)據(jù)治理。
于是我開始著手設(shè)計(jì)數(shù)據(jù)治理平臺(tái)。其實(shí)數(shù)據(jù)治理平臺(tái)的理念就是:統(tǒng)一配置,統(tǒng)一監(jiān)控,統(tǒng)一管理。

統(tǒng)一配置

kettle的圖像化只能作為特殊的處理手段,不能夠運(yùn)用于大規(guī)模的數(shù)據(jù)抽取,因此我們需要對(duì)kettle的組件進(jìn)行進(jìn)一步的封裝,能夠以配置參數(shù)的形式就能搞定一個(gè)業(yè)務(wù)的抽取。然后在治理平臺(tái)做配置的管理和維護(hù)。

統(tǒng)一監(jiān)控

每一筆數(shù)據(jù)的流向都能夠?qū)崟r(shí)可視化,實(shí)時(shí)也就是意味著實(shí)時(shí)的數(shù)據(jù)流(kafka)

統(tǒng)一管理

數(shù)據(jù)在某些情況下都是需要轉(zhuǎn)換或檢驗(yàn)的,我們要對(duì)這些轉(zhuǎn)換規(guī)則和校驗(yàn)規(guī)則進(jìn)行統(tǒng)一的管理。

影像中心,共享圖像

區(qū)域影像中心,它并不是一個(gè)完整的業(yè)務(wù)系統(tǒng),主要功能有三點(diǎn)

圖像采集

有子程序安裝在醫(yī)院前置機(jī),負(fù)責(zé)將圖像轉(zhuǎn)發(fā)都影像中心(采集程序)

圖像存儲(chǔ)

有子程序?qū)iT負(fù)責(zé)接收?qǐng)D像,并根據(jù)AETitle標(biāo)識(shí)圖像,存儲(chǔ)圖像相關(guān)信息,做醫(yī)療機(jī)構(gòu)的區(qū)分。并叫圖像存儲(chǔ)到存儲(chǔ)網(wǎng)格中去

圖像查詢

給定業(yè)務(wù)參數(shù)即可得到圖像

病歷轉(zhuǎn)換,文件展示

每家醫(yī)院的病歷格式都是非常復(fù)雜的,有文本的,有pdf的,有圖片的,有網(wǎng)頁的,有你想不到的。于是我們將這些轉(zhuǎn)換交給了每家醫(yī)院的數(shù)據(jù)交換平臺(tái),由它轉(zhuǎn)換成pdf文件后上傳。其他業(yè)務(wù)系統(tǒng)使用pdf文件作為展現(xiàn)。針對(duì)部分非結(jié)構(gòu)的病歷,格式難看,建議讀取pdf文件原文后,有專門的病歷整理。形成一份樣式好看的病歷。

從容的心態(tài),面對(duì)職場(chǎng)壓力

關(guān)注行業(yè)動(dòng)向,了解技術(shù)需求

如何才能做到從容,我覺得你要時(shí)刻關(guān)注技術(shù)的動(dòng)向,社會(huì)技術(shù)的革新和需求走向,能夠有把握有信心,就算我失業(yè)了,也能很快找到工作。

不斷創(chuàng)造價(jià)值,能讓他人體現(xiàn)你的價(jià)值

有人會(huì)為你的努力買單,只要你能夠不斷地創(chuàng)造價(jià)值,我們要對(duì)外界輸出自己的價(jià)值,讓別人感受到你在進(jìn)步,你的突出。

有自己的職場(chǎng)形象,做最好的自己

當(dāng)你邁進(jìn)公司大門的那一刻,你的職場(chǎng)秀就已經(jīng)開始了,請(qǐng)讓別人對(duì)你有良好的印象。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容