2018年终总结-从我所在的团队回首一年技术变迁

前言

今天是2018年的最后一天,独自一人关上房门,静坐回想一年来的总总,看成总结吧。
做为传统的it公司,不是互联网企业,能逐渐转型到各类流行的技术,不容易。若是恰好看到此文章的您是互联网公司的,请不要见笑。css

微服务

spring cloud

微服务近两年很火,特别是spring推出了spring cloud后。2016年用的人很少,因此市面只是零星出了几本书籍,到了2017年,通过了一年多的使用,用的公司多了,书也多了,2018年出了更多的spring cloud书,虽然不少内容类似,但也能够看出火爆。前端

版本更新也很是快,从以前的config+eureka+zuul,到今年zuul从1升级2,但spring cloud官方却推出gateway,而且不支持zuul2。vue

无论怎样,我终于用spring cloud实现了一个系统。它涉及写代码的很少,更多的是配置。而大部分的配置,都是我来弄的,也算是一种小幸运吧。java

有些奇怪的是,很多的人把微服务和spring boot总拉到一块,虽然你要使用spring cloud就必须得使用spring boot,但不管如何,boot只是spring的简化与集成,它为何是微服务呢?好比市面上有一本书名为使用spring boot构建微服务;还有一次会议上,一个经理说:前台用vuejs实现,后台我们就用微服务实现吧,呃,不须要用spring cloud这么复杂,就用spring boot吧。node

可能你们想说的是RESTful api吧,这个spring mvc里就有了,并非真正的微服务,可能错的人多了,这样称呼也是对的吧。python

dubbo

dubbo是很早就有了,2015年的项目我就接触过,虽然我在项目里没有真正的写dubbo代码。搞不懂是dubbo推进了微服务仍是微服务带旺了dubbo。今年感受dubbo也发展的不错,也推出了spring cloud dubbo的集成。公司也有用,可是RPC写起代码我本身以为仍是比较麻烦,定义interface,打成jar包提供给外。也许天生就没有rest优雅,毕竟关注的是效率。mysql

k8s

虽然据说也提供微服务,但用起来好像更偏向于容器那一块,今年我没有机会接触到,看看明年公司是否有机会给我弄弄这个。react

其余

一个东西火了以后,一切都好说。华为也推出了微服务,有技术沉淀就是好,说弄就弄出来。晚舟被抓没事,我们技术跟上就行。android

微软也出了微服务,不过没太关注.net发展,不是很清楚细节。

前端框架

Vue.js

今年公司大力在推。基本做为首要的前端框架,不管pc端仍是移动端。大把大把的项目在用。用的基本都是Vue2,好在。1和2的差距仍是有些的。若是在写2的代码,拿着一本1的书在看,估计比较难受。Vue3也出来了,有什么新变化呢?

和react、angular这三巨头,react仍是占有率最大,可是增加势头却比不上vue。vue有可能未来超越react吗?虽然尤雨溪当时在google,可是毕竟是国人,如今也回来了,vue也入选osc了,若是它能厉害点,仍是开心一点。开源中国去年它还排第四,今年竟然是冠军了。

layui

这名字。。。我总当作layer,或者和不少相似的一大把ui框架名字很类似:ligerui、easyui等等。但它居然在2017年ocs排名第一!虽然今年倒退到第四,可是估计国内用的项目仍是很多的。不少后端的人都说好用。但同事却有的说很差,究竟好很差?看来我要再努力,多参与。

bootstrap

想不到这么多年了,在ui、css上这框架仍是这么火。不知道和国内的一样比较流行的element好比何,都是栅格系统。

这三个框架,今年都没能深刻弄,2019年我要在前端技术上再积累多一点,不要老搞后端的,否则领导分配个前端的任务给我我还不会,太丢人了。

thymeleaf/freemarker

不该该放这。随便吧。模板,今年用的很少,明年可能也逐渐被vue替换吧?

SSM框架

终于转型ssm了!你没听错,我今年以前并不会spring和mybatis(好久前用过,包括hibernate,可是那时候都是配置xml的,这么多年了,连xml里是啥都不记得了)。

S所表明的spring已经基本都默认用spring boot替代了。第一个的S也早不是struts1或2,如今没有新项目不用spring mvc了把?

spring各类注解,学起来很爽。但刚开始仍是挺难,特别mvc那块,涉及web。mybatis确实没有hibernate有技术含量,不过,好用就好了,应对复杂业务。

数据库

接着,该轮到数据库上场了。

mycat

mycat在2017年仍是很不错的,可是在今年却连osc的前20都进不了。可能你们确实以为bug有点多吧。我用了了父子表,居然有事务的bug,想该源码,又不知道怎么改,项目进度压力在那,没时间慢慢看。后来放弃了父子表就行了,虽然要xml里加个rule而且不能关联表查询。(谢谢张哈希提供了一点帮助)

QQ群也是一个莫名其妙的存在,入群要交30元。我很惊讶一个开源的软件要交钱入群。虽然我不知道原因。

但做为国内的开源分布式mysql解决方案,而且基本是惟一的解决方案,仍是不错的。我很想知道,你们是怎么用mysql的?不用mycat,难道都是本身公司造一个轮子,你们都这么厉害?

mysql

我今年终于认真的用mysql进行开发了,以前几年都是在打酱油。细细研究,和oracle差异巨大。建表时每一个字段的定义都有讲究,还有json格式,json,是一个好东西,出如今各处。

druid

连数据库,国内你们应该都用这个吧?新项目不多用DBCP了吧?支持下阿里仍是不错的。

redis

五种数据类型我在一个项目里用了四种,zset之后会有机会的。我从没用过redis,也没写过代码,可是你们却用我设计的redis来开发,还没发现什么问题,很是神奇,redis是一个好工具。集群和非集群还须要继续学习,分别用Jedis和JedsCluster操做。

mongodb

同事在用,所谓文档,不少是json、或者图片吧?明年看看是否能够接触下。

消息队列

消息队列居然单独一章节,很神奇。多年前,只知道jms。

kafka和RabbitMQ仍是选择了前者。效率优先。rocketmq那些就更没机会了。kafka的主题和分区怎么定,个人经验仍是欠缺,多向同事学习,毕竟搞了几十个仍是上百个broker。大数据量,大并发才有意思。须要写磁盘的,为何还能这么高效?

Web服务器

nginx

2018年apacke虽然继续第一,但nginx也不弱,第二。并且增加势头第一。apache主要是国外php用因此才多吧?国内java的世界,估计nginx更火。

刚刚几天前用了最新的1.14.2,前几月还用1.12.几,还有漏洞,nginx的发展也不慢。

细细看,功能还很多:反向代理、rewrite、缓存等等。学习起来真的不比tomcat简单,反而更难,特别若是用lua开发,基于openresty。

keepalived

开始弄,走了很多弯路。keepalived+nginx是最成熟的方案了吧,若是不用F5硬件负载的话。keepalived相对简单不少,只要掌握了虚拟ip,和防火墙的配置注意事项。今年终于用上了这个不算新的技术,不错。

tomcat、jetty、undertow

spring boot默认支持的三剑客。既然必需要用tomcat,那weblogic和Websphere就能够歇歇了。我真正须要拿起多年的tomcat6的书籍看看。虽然我在用的是tomcat9。

session共享是用tomcat cluster配置,仍是用更高效的redis?都和Weblogic差异很大。

基于nio和少占用内存,undertow和jetty也是能够尝试。谢谢阿里的许进和Lovnx他们给个人一点提示。

编程语言

java8

终于用上java8了,不容易。缘由大概就是spring cloud不支持java6。既然升,没理由只升到7而已。惋惜oracle立刻就说java8要收费。总不能停留在java8的某一个小版本吧?

公司也许会找人基于openjdk来一个的,我以为。会不会找我呢?

或者改用go?net?不太可能。改了也没啥,我也挺有兴趣。

java8的lambda颇有意思,在多线程、集合和打印日志都尝试了,调试是一个麻烦事。java9和java10是否是都不太火?

python

你们搞机器学习和深度学习的都在谈论,但咱们也有人用来shell。是的,也是一个不错的选择,我也这么干了。比写shell舒服不少。解析性的语言学习成本极低。适合搞数学的人拿来就用。

可是安装包是一个很是麻烦的事情,jar简单不少。python2和python3也在各个平台不同。

es六、nodejs

代码里你们写的各类let、const、imort、require开始时把我搞晕了,我技术太差,要不断学习。
原本想把nodejs放在web服务器里写,想一想又感受不对。仍是放这。
也许是nodejs推进了es6吧?若是没有了nodejs的出现会怎样?npm、webpack这些还会不会出现呢?不知道。我只知道es6里的promise、暂时性死区等等很难理解,要不断看书。

安全:Https、加密

这两年愈来愈重要。几年前是不多听见https的,因此传统的、技术落后的公司,也不会错过https的技术浪潮。安全很重要。

买证书、在nginx上配置;又或者用jdk、openssl等生成自签名。很好玩。

加密的领域,国内慢慢起来了,国密不比什么aes、rsa差,中国人的数学原本就很好。就看规范、标准的制定和推广策略行不行了。

我用sm4写了一个jar,晚点打算用android里很流行的混淆技术用Intellij混淆成abc;又用oracle写了一个基于aes+填充标准5的别人看不见我源码的function,感受很神秘嘛。惋惜oracle里没有国密。

敏捷

开始搞敏捷了。很痛苦。每天晨会,却没有scrum里的8小时,也没有xp里的两我的一块儿写代码能够偷偷懒。唉:)

DevOps

jenkins

好像开始用了,可是我等了一年,这位同事尚未帮我配置好,没看到。

sonar

同样,白等了一年。

maven、nexus

早就用了,今年算是平民化了。Gradle算是颓下去吧?业界感受势头不行的?
nexus各团队也搭建很多。
maven我感受本身精通了,其实还有不少不会的。

git

开始替代svn了。搭建了各类各类的gitlab。[git],这个读音你们要读正确哦。

持续集成

没看到,估计在某个团队的某个角落里运行中。但没有喇叭吓我,没有可视化屏幕。

这些东东放devops不知道对不对,放在没地方放,放这把。我对这些没啥兴趣,几年前都弄过了,也没什么技术含量。

Docker

没有不在用的吧?但我却还不会。我对本身说:Danni,你要赶忙学啊。是的。
否则一会儿要发布100台机器怎么办?赶忙看看前天同事写好发个人dockerfile。
年初我就不该该傻傻的写scp的shell,也不该该直接用eureka的rest api来启停发布。
mesos、k8s这些对我更陌生,下一步再说。

我只是一个小小的程序员,也许看到的只是公司的冰山一角。可能还有更多更多的技术变迁。

我的总结

  • 设计模式&UML:像难驯服的马,又像深奥的佛学,老是用过了又不记得了,除了最简单的策略模式。不过,今年我仍是成功用到了命令模式、模板方法模式、门面(外观)模式、适配器模式。简单工厂就不算了。
  • 分布式:大并发时仍是不太会。
  • sso:用的cas,很难,记不住。可是多看几回,也就那样了。
  • MAC、工具:Windows转向mac了。eclispe也转向idea,webstorm了。学会postman、jmeter。
  • JUnit:在spring和mybatis里应用自如了,但如今好像又忘了。。。
  • 工做流(ExtJS、DWR):前阵子放下了,没搞了。太老的技术。。
  • TCP/IP、http:想不到这些基础技术仍是颇有用。好比:https里从哪一步开始加密?加密哪些数据?
  • Gitee:比github快太多,若是不是和世界接轨,我都不想用github。
  • 微信小程序、公众号、app、H5:玩玩就好,我不是搞这个的。不过H5和css3仍是要弄。
  • json、日志:忘了这个了,虽然是个小东西,可是fastjson、gson、jackson、net.sf等,slf4j、logback、log4j2等。还很多东西。
  • 数学:想不到还挺重要。特别加密、机器学习里。特别线性代数。
  • 区块链、机器/深度学习、spark:看看书就好,留给公司的专职去弄,有个同事说spark很好用。看那个立刻出版的《程序员2018》也许继续会有。

2019立flag

  • 学docker,用起来
  • 写vuejs代码,有空试试vscode,webstorm老卡和闪退
  • 写redis(+protobuf)和kafka代码
  • 学国内的开源框架/组件,支持一下国内。什么dubbo、layui、element、iview、mybatisplus,啥都行。
  • 大并发、分布式
  • 同事玩EDAS和HSF好像很厉害,要多参与下
  • 好像怎么明年目标这么小?算了,还得帮公司干活呢,也不能白养我,不能只顾着学习的。

但愿这个flag能进到===true的代码分支吧!

2018.12.31 下午 Danni3 于家中

相关文章
相关标签/搜索