2019年過去了,自己畢業一年半了,2019年自己也學到了一些東西,當然也欠缺好多東西。
現在回顧一下自己2019年學到的東西以及2020年計划學習的東西。
2019年自己看了一本書,《Java與模式》,同時結合<<大話設計模式>>進行學習設計模式。自己看完之后還是非常有收獲的。了解到:(1)創建型模式5種(工廠模式、抽象工廠模式、單例模式、建造者模式、原型模式)比較常用的應該是簡單工廠模式,是由工廠模式改進之后的模式, 利用反射改造工廠去掉工廠類中的分支判斷。實際項目中也確實用到了反射+工廠。(2)結構型模式7種(適配器模式、橋接模式、組合模式、裝飾器模式、外觀模式、享元模式、代理模式),這七種模式都比較常見,代理模式是比較重要的,大量框架都在使用代理模式;(3)行為型模式11種(責任鏈模式、命令模式、解釋器模式、迭代器模式、中介者模式、備忘錄模式、觀察者模式、狀態模式、策略模式、模板模式、訪問者模式),這里面用的較好的是模板模式,這個可以結合其他模式來編寫一些更加規范的代碼。 總之,通過這本書還是收獲了不少東西,並且將模式運用到實際項目中,確實便於后期的擴展。
也看了《EffectiveJava》第三版,同時結合阿里的代碼規范進行閱讀,這對自己在實際編程中還是有好處的,經常翻看幾遍會更加規范自己的代碼。不限於java代碼,包括其他語言。
2019年自己也學習了一些東西。
(1)學習了node.js,當然只是很淺的去了解,同時也對node、npm、webpack有了基本的了解,夠用即可。
(2)學習了vue,了解到vue的強大,雙向綁定對DOM操作確實方便了不少。同時用vux+springboot開發了一個簡單的公眾號項目,前后端分離,前端是vux(一個個人維護的app端組件),后端是springboot+SSM+SpringdataJPA,開發的時候使用node代理解決跨域請求,部署的時候使用nginx進行代理請求解決跨域請求。項目中利用公眾號的JSAPI對接了微信授權登錄、修改微信分享的內容以及微信支付(這個暫時還沒成功,有待驗證)。
(3)對three.js開發3D有了一定的認識,並用three.js搭建了一個簡單的房子。
(4)也學習了dubbo、zookeeper,只是自己學習了,還沒有實際運用的機會。Zookeeper=文件系統(共享數據)+通知機制,我自己對它的理解是帶數據的zTree,由於此特性可以用於許多場景,比如配置管理,目前常見的是配置在properties文件中,每次修改完都需要重新啟動服務;也可以用於分布式鎖等其他場景。dubbo是一個RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動注冊和發現。activemq是一個消息隊列框架。我自己的理解就是dubbo可以將服務實現發布到注冊中心,注冊中心通常是zookeeper、redis等;也可以從注冊中心獲取服務實現。也就是生產方發布服務,消費者消費服務。同時dubbo提供了負載均衡、集群等。
(5)也學習了activemq,一個消息隊列框架。
(6)對springboot有了更深的認識,並實際運用到項目中。同時研究了springdataJPA,項目中也是springdataJPA+Mybatis一起使用的。
2020年自己基於github搭建了自己的個人博客(點這里去參觀),用markdown語法寫博客也是一種不一樣的感覺,不過個人感覺hexo結合next主題渲染的界面樣式比較好看。
同樣列出自己在BOSS上看到的技術要求:
dubbo學習(RPC框架),zookeper,消息中間件,springcloud,netty Spring,SpringMVC,Mybatis struts2/hibernate mysql/oracle/SqlServer/ 熟悉Hadoop技術線,可熟練使用ES查詢語法和Hive、Spark、Hbase、MapReduce; SVN/Git/Maven/Ant Kafka、zookeeper、memcached、Redis、RabbitMQ、RocketMQ、activemq docker 服務器相關: tomcat/jboss/weblogic/jetty 熟悉linux平台 , 熟悉至少一種腳本語言(shell/python) 有Spark、Hadoop、Storm等技術經驗者優先; 了解Hadoop/HBASE、Redis等nosql數據庫。 FastDFS分布式文件系統、Elasticsearch
自己也了解了一些東西,好多還有待研究。自己接下來要學習的東西包括: docker、k8s,springcloud、netty、Kafka、Hadoop、Elasticsearch等。主要目標是多學一些分布式相關知識與大數據相關。當然了,也會繼續學習python、node.js等相關知識;深入理解vue原理以及用vue開發一些web以及app的東西,有一個大膽的想法就是vue結合H5+開發更加完整的app,可以調用攝像頭等。