在2018年割卖,我學(xué)會(huì)了如何規(guī)劃人生。
在2018年患雏,我學(xué)會(huì)了如何快速提升技術(shù)鹏溯。
在2018年,我學(xué)會(huì)了如何做技術(shù)選型淹仑。
在2018年丙挽,我學(xué)會(huì)了如何處理職場關(guān)系。
在2018年匀借,我學(xué)會(huì)了如何應(yīng)對(duì)工作壓力颜阐。
在2018年,我以平穩(wěn)的心態(tài)吓肋,獲得了職場的晉升凳怨。
金三銀四
2018年3月,一回來上班就有一股離職跳槽的風(fēng)向,很多人都在議論年終獎(jiǎng)和薪酬調(diào)整的話題肤舞,這股暗流持續(xù)涌動(dòng)著紫新,終于在4月份爆發(fā)了。離開的是我的幾個(gè)大學(xué)同學(xué)李剖,非常要好的那種芒率,大學(xué)我們曾經(jīng)是一個(gè)Team。同樣的也包括了我的導(dǎo)師杖爽,從我實(shí)習(xí)一直帶領(lǐng)我入門的導(dǎo)師敲董。這個(gè)時(shí)期,我的心情也很低落慰安,也準(zhǔn)備了簡歷腋寨,也進(jìn)行過面試。也通過了化焕,后來沒有去萄窜。
我為何而情緒低落?
作為一個(gè)剛剛步入職場的人來說撒桨,確實(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è)市場的環(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ā)展趨勢也挺不錯(cuò),值得深入了解码倦。醫(yī)療行業(yè)的信息化程度較其他行業(yè)相對(duì)落后企孩,具有挑戰(zhàn)性和開創(chuàng)性。于是我毫不猶豫地選擇了醫(yī)療行業(yè)袁稽。
應(yīng)該如何抓住機(jī)會(huì)勿璃?
職場是一個(gè)機(jī)遇與挑戰(zhàn)并存的地方,在我的處境:
機(jī)遇:我將擁有獨(dú)立的研發(fā)機(jī)會(huì)(技術(shù)選型,系統(tǒng)設(shè)計(jì)补疑,代碼管理等)歧沪,有可能獲得職場的晉升。
挑戰(zhàn):我并不能勝任以上所有的工作莲组。
只有迎接挑戰(zhàn)诊胞,才能獲得機(jī)遇。
應(yī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分支账忘,測試通過后再合并到master分支志膀。
每次發(fā)包都以master分支為基準(zhǔn)熙宇。
其他醫(yī)院非必要情況不升級(jí),升級(jí)前要與master分支做比較梧却,合并代碼奇颠,本地測試通過后再升級(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封裝過的 |
當(dāng)我們從mule的設(shè)計(jì)文檔明確了簡單的設(shè)計(jì)思想和設(shè)計(jì)理念后鞋诗,我們再從源碼印證膀捷,我學(xué)得更深,我學(xué)得更透徹削彬。
回到mule的集群問題
很明顯全庸,mule對(duì)應(yīng)外部的load balance 是基于外部組件的秀仲,這一點(diǎn)我們可以運(yùn)用nginx來解決。那么它的內(nèi)部是如何實(shí)現(xiàn)的壶笼?
我們知道m(xù)ule內(nèi)部的傳輸是基于mule message的神僵,在分布式的傳輸中必定要對(duì)其進(jìn)行序列化和反序列化,mule為了提高性能覆劈,采用了kryo保礼。服務(wù)注冊采用了hazelcast。
mule的內(nèi)部負(fù)載均衡的本質(zhì)是:將flow的每個(gè)processer注冊到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)確得猜測出源碼具體的位置它呀。
區(qū)域化醫(yī)療,我又一次面臨了巨大的挑戰(zhàn)
醫(yī)療面向集團(tuán)化棒厘,區(qū)域化的趨勢越來越明顯纵穿,公司也承包著很多這樣的項(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ì)職場壓力
關(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)步彩匕,你的突出腔剂。
有自己的職場形象,做最好的自己
當(dāng)你邁進(jìn)公司大門的那一刻驼仪,你的職場秀就已經(jīng)開始了掸犬,請(qǐng)讓別人對(duì)你有良好的印象。