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 总结」,欢迎正在阅读的你也加入。