七年漫漫技術路的一點感悟

轉眼畢業(yè)七年,轉眼工作七年!一路走來,有過坎坷,有過煎熬,有過放棄,但更多的是經歷這些復雜情緒和心態(tài)背后的收獲。

作為一個從事編碼技術的“老人”,借此機會談談自己的一些心得。

一、關于基礎

千里之行始于跬步,萬丈高樓起于夯土,高手都從新手來,所以,基礎一定要夯實。

對于基本知識,一定要掌握牢固,不但要知其然,更要知其所以然,還要知其為何所以然。只有深層次的挖掘這些知識,才能做到對技術的真正掌握。

比如Java,基本數據類型有哪些?對應的自動包裝類型是什么?它們是否線程安全?在并發(fā)情況下該怎么使用這些類型等等,這是知其然的過程。并發(fā)情況下它們怎么保證數據的準確性?即,它們各自實現的原理是什么,這是知其所以然的過程。而,為什么要使用這樣的原理,這樣原理為什么能解決這樣的問題?即,為什么設計成這樣?這是知其為何所以然的過程。

在學習基礎知識的過程中一定要吃的通透才好!

二、關于框架及原理

這部分內容屬于基礎知識的拔高,不外乎將基礎知識(不只語言基礎知識)和設計模式做了組合搭配處理。比如我們常用的Spring框架,Mybatis框架等等,說白了就是將一些共同的技術進行了封裝,然后只暴露出一些業(yè)務接口來方便開發(fā)者使用。

比如Spring的依賴注入,可以簡單的理解為反射+工廠模式的組合。

當然,如果更深層次的挖掘框架原理,以及實現,絕對會受益匪淺,不僅能學到框架原理及實現,更能看到優(yōu)秀的代碼及規(guī)范,這對日后的編碼絕對是大有裨益的。

所以,在研究框架的時候,建議多看一些相關的書籍、博文的同時,也可以看看框架的源代碼,包括各自使用的語言,比如Java。

三、關于業(yè)務

很多喜歡鉆研技術而不喜歡業(yè)務,這是大多數技術從業(yè)人員的心態(tài),因為業(yè)務常常是N個CRUD的組合,寫多了也就沒有新鮮感了。

技術就不一樣了,同樣的一個功能,有不同的實現方式,哪種才是更高效、更簡單的實現方式?這對程序員來說才更有吸引力,如果能找到新的解決辦法,往往更有成就感。

可是,沒有業(yè)務的技術,就如同沒有汽油的汽車,寫的再好看也沒用。所以業(yè)務往往是錘煉技術的最好方式。

身邊很多程序員的共態(tài)就是,這個業(yè)務簡單,一個CRUD搞定。說這話的程序員要么很牛,要么很菜,而往往99%的都很菜。

對于一個看似簡單的業(yè)務,你真正的吃透了么?

比如提供一個對外接口,獲取數據庫某表的數據。你會怎么做?

很多說,這個簡單的要命,寫給接口,查數據庫不就行了。這是普通的程序員的方案。

中級的程序員會怎么設計實現方案?

1、先查緩存,如Redis、mangoDB等,如果沒有再查數據庫。
2、對查詢數據做限制

高級的程序員會怎么設計方案呢?

1、 獲取什么業(yè)務的數據?
2、 敏感 or 不敏感?即,是否需要脫敏處理
3、 數據量有多大?后期增長量如何?確定是否需要使用緩存?使用什么類型的緩存?是jvm還是redis等緩存?還是使用elastic search,更或者使用Hbase等。如果必須使用MySql數據庫,那么該表是否需要加索引?什么樣的索引?
4、 接口請求頻率是什么?即,每分鐘請求多少次?
5、 異常怎么處理?
6、惡性或者類似惡性(并非故意刷接口,但是由于某些原因,比如前端的定時任務沒有正常結束一直請求后臺接口)刷接口該怎么辦?
7、 是否可以提供分頁查詢?
8、 接口日志該怎么打?是單獨一個日志文件?還是共同使用某個日志文件?

所以,真的是業(yè)務簡單就學不到知識么?顯然并不是。

思維如果不能提升,技術也不會提升。這只是一個簡單的例子,而對于更復雜的業(yè)務,往往也需要更復雜的處理邏輯??梢哉f,每一個看似簡單的業(yè)務背后,都有一個值得深挖的技術方案。

業(yè)務很重要,只有真正明確了要做什么?才能真正的達到業(yè)務的預期甚至超預期的效果。否則,就是不斷的迭代以及l(fā)eader、同事對你的不認可。

業(yè)務,最終是需要細致化的。

四、關于優(yōu)化

你的代碼是否符合規(guī)范?至少有注釋(寫代碼不寫注釋的人都是腦殘)。很多時候定位問題,以及項目交接的時候,不寫注釋梳理起來真的很費心。不是別人不會看代碼,你寫的代碼又不是牛逼到飛起,但是從頭梳理起來真的很耗時。

別做缺德事,所以代碼加注釋。

有了注釋,代碼是否格式化?即,是否整齊。

在上面的基礎上,代碼的性能怎么樣?是否能進行優(yōu)化,如果你學過深入Java虛擬機,你就應該知道,方法中的變量屬性等等的存儲是否合理。

日志打印是否有效合理,即不會打印一些無法定位具體問題,且無效的日志。

方法執(zhí)行完畢后,是否會被虛擬機回收。

提供的接口或者服務是否會發(fā)生超時異常等等

寫在最后

平常多思考,多學學身邊技術大牛的工作方式,以及他們解決問題的方式,總有一天你的技術也會突飛猛進。

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 關于Mongodb的全面總結 MongoDB的內部構造《MongoDB The Definitive Guide》...
    中v中閱讀 32,309評論 2 89
  • 01 小悅姑娘是個北京妞。 性情爽朗,家里三環(huán)里有套房,城外還有宅基地。 自己開著小mini,上班也很清閑,每天爽...
    看見繁花閱讀 2,706評論 23 54
  • 每個人都也許會經歷凄苦的生活,因為自己的渺小而自卑,因為自己的無奈而焦慮,夜深了卻獨自失眠,不想就此睡去,不...
    嗒嗒an閱讀 265評論 0 0
  • 對不起對不起對不起對不起對不起對不起對不起對不起對不起對不起對不起對不起對不起對不起對不起對不起對不起對不起對不起
    am薄荷糖閱讀 201評論 0 1
  • 今天,我們來談談微信群的那些事?,F代人的生活除了離不開食物、水和空氣之外,更離不開手機。一有時間,就鉆到時間...
    江立_0b51閱讀 1,288評論 0 0

友情鏈接更多精彩內容