2019 Summary
寫在前
2019年立刻就過去了,今天是聖誕節後的一天,抽空總結一下快速又忙碌的2019年。
去年的總結把部分2018年的技術棧都分析了一遍,今天深度投身於新項目,又無暇額外研究新技術,所以已沒法作到去年的廣度。只從用到的技術簡單總結。css
整年總結
上半年
- 用vue+echarts實現了簡單的工做臺和大屏展現
- gitlab實現了郵件發送
- 從webstorm基本轉向了vscode
- 大屏基本用ts實現了
- 重點研究了工做流的選型,包括activit和flowable,簡單編寫了flowable的使用代碼,造成了一個簡單的框架,向官方報告了一個bug
- 參與卡項目,研究RequireJS、RegularJS、bower等,加深了js的一些理解
- 校招前端和java,總結了一點經驗
- springboot、nginx、layui、git的一些小問題解決,關於tapestry的單點登陸等
- 寫了一些標書,發現word也挺難的,拿開源的vba對比程序實現了word對比
- 參與開通項目,hiraki、mybatis、redis、kafka進行了框架改造;springcloud的eureka、config等改造
- java實現了請求統計,加深了tomcat線程池、集合類、多線程、切面等的理解
- weblogic也能夠配置了阿里ssl證書
上半年仍是花了很多時間在前端的。包括vue、echarts、requirejs等。後端也很多,基本重點在技術層。html
下半年
- 進入新的交通項目,全新業務,全新技術,包括路徑的擬合等
- 研究圖的最短路徑算法,重點Dijkstra算法
- 學習mysql,看經典的《高性能mysql》,進行項目的庫表設計
- 看了一下python,與圖算法相關的一些東西
- 看了一下spring batch
- 用springboot實現了多數據源和自動發送郵件,減小了運維
- 開始重點使用了docker,包括程序打包和本機開發軟件的搭建
- 覈查java內存問題,jstat、jmap等,與死循環的判斷
- 研究了mycat的分片算法,和經常使用的配置
- 學習了mysql存儲過程,對數據轉換的方法論有了必定更深理解
- 對mysql、mycat、redis、kafka的使用又多了一些
- git被覆蓋代碼,因而學習了一下git
- 學習了mongodb,harbor、java深複製、調so等,複習了https證書、springboot監控
- 業餘看了一下米思齊
下半年基本都在項目裏,別的啥也沒幹,家裏也多了事情,因此好像沒上半年這麼專一技術。可是回頭總結後端技術,仍是得到了不少。
同時,對於一個全新行業,也是個人」老本行「瞭解學習了不少。固然,加班也很多。前端
對比去年立下的flag
去年定下2019的flag
- 學docker
- 寫vuejs代碼,有空試試vscode
- 寫redis(+protobuf)和kafka代碼
- 學國內的開源框架/組件(dubbo、layui、element、iview、mybatisplus)
- 大併發、分佈式
- EDAS和HSF
完成狀況
docker應該是超額完成了,編寫Dockerfile、build、run都很熟練了,程序也是用它來跑了。
本機搭建的mysql+redis+kafka+mongo+nginx都是用docker。
vuejs在上半年也寫了很多;redis和kafka下半年理解的更深。vue
但也有些沒完成:
protobuf沒機會研究,dubbo、edas這些阿里系的也沒空,國內開源也是。
同時下半年基本脫離了技術app和新聞,也沒看書了。java
不過也有額外收穫:python
- 算法
- flowable
- mongodb
- RequireJS、RegularJS等
- mysql設計
- 新行業
我的總結
mysql(數據庫)
- 好久前用過,今年是第一次認真用,包括庫表設計。發現每個字段類型都有講究,很是深奧。
- 存儲過程與oracle差異很大,雖然功能比不上,但也能幹一些事情
- 基本用上mysql8了,與mysql5.六、5.7仍是有一些差異的,不過百度一下都能搞定
- 數據庫管理較少涉及
redis(內存庫)
- 以前覺得很瞭解redis,新項目從Adu經理處發現還有不少新知識
- 除了五種基本類型,還有pfadd、pfcount等
- string和hash的選擇,除了業務,還有節省內存空間。hash的field值控制在512以內較好
- 除了過時時間,maxmemory和過時策略policy的配置很重要
- aof比rdb更實時
- keys只能本實例
kafka(消息隊列)
- 最難的是它了
- 本機docker安裝了好久才成功
- 用springboot來實現真的很方便,batchFactory也能夠批量控制
- 默認建topic這個配置最好關掉
- 必須用kafka tool這些工具來查看,否則太黑匣子了
- 新的版本居然一下到2.3了,0.9那些最好不用了
- 默認區分大小寫,不光字段名,字段值也會!collation爲utf8_bin很重要
mongo
- 最後一月居然用了mongodb
- 真的超方便,不用設計庫表,開發記錄個日誌錶快的一筆
- Robo3T這個客戶端很好用
- 命令和mysql也很類似,不過getCollection.find這些有點記不住
- 一樣,用springboot集成開發,超方便
mycat
- 有機會認證看了一下配置
- 分片仍是很講究,數字很簡單,取模;但字符串有點複雜
- murmur也涉及數據遷移,並且分佈上相對沒那麼平均
- 一個mysql能夠多個庫,給到mycat,但每一個庫名最好都不一樣,這樣一看庫名就知道哪臺主機
- 真的不少坑,居然不支持存儲過程的執行,select個日誌不顯示。。。
- 並且不支持建視圖,要在mysql上一個個建
docker
- 很好用。經過harbor,啓動五個實例,5個命令搞定;不然要copy五個文件夾,還得改配置
- 本機安裝mysql、redis這些也很方便
java
- 代碼寫得多,遇到的新問題纔會多,想是想不出來的
- 線程:多線程、線程池、tomcat
- 集合:map、list、queue
- 內存:jstat、jmap、postman、看對象內存大小
- aop
- 獲取進程號、主機、端口、類名、方法名、行號等
- 各類類型互轉、json互轉
- DateFormat非線程安全
- break label
- 深拷貝
算法
- 真的難,去年搞加密算法,今年搞最短路徑
- 最短路徑有各類算法
- 只研究Dijkstra已經很複雜
- 不管循環仍是遞歸,控制算法不要死循環很重要!
- 一是注意異常數據要攔截,二是要經過計數器控制循環和遞歸的次數
前端
- 主要上半年弄,如今已忘光了
- 前端變化太快,不看論壇和app根本不行
- 主要vue方向,要打好js基礎,包括html和css基礎
flowable(工做流)
- 太精細的領域,網上資料很少
- 但源代碼很容易看懂,比較方便
- 設計也很好,各類bpmn圖
- 規則引擎也是一塊
其餘
- git、mac、spring cloud、ssm、https
- nginx等負載
- 校招比較有意思,可是很累
- 敏捷基本沒搞了,sonar看了一點點
2020立flag
- 方向上已經沒什麼追求了,就是es但願接觸一下
- mysql、redis、kafka、mongo、nginx、docker再深刻就行
- java,包括spring、boot、cloud再繼續深刻,特別微服務
- 前端已經沒有精力弄了
- 校招但願能夠繼續積累經驗
- 架構被song teacher搶了,但願明年能夠多弄點架構,特別微服務、k8s、負載
- jenkins但願公司能夠搞起來
最後
今年還有一個收穫就是堅持在osc上寫博客一年,每一個工做日都一篇簡單工做筆記。
明年轉到SF了,但願繼續再堅持一年。mysql
2019年真的很累,12月大約工做了30天。我相信你們都很累,有些比我更累。
2020但願不要這麼累,但同時也努力學到更多的技術。
最後,還但願能夠多陪伴孩子一些。nginx
2019.12.26 16:25 於 星光3Agit
本文參與了 SegmentFault思否徵文「2019 總結」,歡迎正在閱讀的你也加入。