2019工作总结

2019年工作总结

工作学习总结

参与的项目

项目名称 主要工作内容 难点与创新 难点的解决
大连多规合一 BS运维和多规的开发,配合规管编写接口 CAS的集成,将单点登录做成可配置的;编写了一个简单的通用GET/POST代理类 CAS单点的集成,前后端配合解决CAS的集成
常州多规平台BS运维 常州运维由CS运维更新为BS运维 运维域的分享,解决了运维原本分享只能分享系统的局限性 多层过滤设置来进行分享过来的权限的再授权
国土外网填报系统开发 从0到1开发外网的填报系统,包括实施评估、规划编制等 数据库的设计,填报任务的管理;无管理界面下SQL脚本的编写 ;大用户量下的系统稳定性;全国性质的应用系统;redis与websocket的引入与维护 使用JPA的主外键注解来处理级联查询; 使用异步和多线程来处理数据量大的任务;
BS运维/多规基线版本开发 基于大连/常州以及其他项目的反馈来更新基线代码
厦门CS运维开发与维护 响应项目具体的需求开发
CS运维的维护 支持项目上遇到的bug或配置问题

运维以及其他工作

工作内容 工作成果
Jenkins自动化部署 帮助后台自动化部署,单Jenkins服务器支持多项目快速迭代
性能测试 编写内网系统的性能测试脚本并进行测试
对接实施人员解决部署问题 主要是mongo数据库的备份与恢复
参与解决系统疑难问题 持续排查8086后台崩溃问题并进行分析解决
后台开发人员每周例会 组织后台开发人员进行每周一次的例会并负责记录例会成果

年度学习总结

在上半年的有较多的时间去进行一些新技术的研究,以下是年中总结的时候所列举的学习成果。

研究点 研究成果 难点 难点的解决
Linux的基础使用 整理了linux下常见的命令 命令的记忆与适应无界面化操作 多使用
BS运维的docker化 将运维的提供者和消费者制作成docker镜像 dockerfile的编写和基础环境镜像的选择;后续的运维 选用精简的镜像来减少打包出的镜像大小
ELK日志平台的搭建 搭建ELK平台并在项目中介入
全局配置中心(apollo/xdiamind)的使用 搭建配置中心并在代码中接入 在代码中接入配置中心 查阅文档并分析代码
Jenkins的远程部署 在一台jenkins服务器进行代码的编译并部署到远程windows服务器 部署到远程Windows服务器 在windows安装openssh并将tomcat做成服务来实现远程控制停止与开启

但是上述的一些学习成果除了linux和Jenkins的自动化构建,其他的研究学习因为可行性的原因都没有得到应用,因此基本停留在入门demo阶段且没有进行深层次的研究。

下半年90%的时间都投入到国土外网填报系统的开发工作中,在开发过程中,对我们现有的技术框架有了进一步的学习,另外对于大量用户的使用,对系统运行的稳定性监控有了一些研究。主要有以下几个方面:

  • Java语言的新特性的使用(包括lamda表达式、多线程的使用,夯实Java基础)
  • jvm的学习(依靠8086系统崩溃,分析崩溃的原因并制定合适的Tomcat运行内存配置)
  • dubbo生态的进一步学习,主要依靠系统的使用需求进行深入学习,引入了dubbo-monitor监控工具
  • redis的进一步学习(国土外网的在线用户统计,掌握redis的数据类型以及相关api)
  • springboot-admin的引入来监控应用整体运行情况

总的来说下半年的学习比较匮乏,基本是在开发功能、修改功能、定位bug、修bug中度过。新的一年希望在学习方式上保持这几个原则:

  • 以尽可能快的时间完成需求的开发与测试,花更多的时间在功能接口的设计(考虑稳定性与拓展性)
  • 在时间尚有富余的情况下,考虑对问题比较大的接口进行小范围的重构
  • 攻克在工作中遇到陌生的技术点
  • 保持对新技术的嗅觉,以解决实际问题作为出发点,驱动新技术的学习
  • 学会看源码,源码可以帮助我们更好的理解如何使用框架本身,学习并思考为何这么设计、实现

目标完成情况

年中目标回顾:

1、继续在工作中查漏补缺,发现个人薄弱的地方积极去补上.

2、提升工作效率,尽可能快的完成工作任务,与同事做好配合.

3、继续深耕Java语言,努力成为一个程序设计人员而不只是做一些增删改查的工作.

回看年中制定的目标,更多是基于当时外网的开发经历来制定的,在当时看来,假如这个全国性质的系统可以顺利上线运行对于自己来说应该也是一个里程碑的事件。但是在做完之后,却没有当初那么大的压力,现在回头看整个过程还是比较顺利的,和同事可以明确分工任务,各自的任务按时完成,在沟通上也比较顺利,在早期的时候在沟通上可能有些急躁,是不利于良好的合作关系的。这个项目的开发经历,帮助我练就了良好的抗压能力,处理事务的能力。

虽然在遇到个人的知识盲区的时候会积极的补上,对所从事的岗位所需要的技术也在不断补充,但是还有不小的加强空间。成为一个程序设计人员也不是一蹴而就的,需要丰富的经验、广阔的技术视野和个人的思考 ,会朝着这个目标继续努力。

思考与建议

项目的开发与合作

思考

在项目上总体不管是和开发人员还是项目经理、实施人员合作的多数还是比较愉快的,我觉得有几点比较重要

  • 重要的事情当面沟通,不能当面沟通的电话沟通可以提高信息传递效率
  • 注意聆听团队成员的意见和思考,存在不合理的地方可以提出但是需要有自己的理由和方案

建议

  • 项目经理和需求人员在制定功能时尽可能详细,多思考可能出现的情况,尽可能准确告知开发
  • 多和开发人员沟通,有时候需求并不是不能做,只是按照需求人员预想的实现路径是无法实现

对团队的建议

近半年后台开发团队坚持了每周例会的习惯且取得了一定成效,团队内部的沟通也逐渐频繁,一些疑难问题在群里提出之后都能得到响应,大家的分享意识也有了很大的提升,技术氛围愈加浓厚。产品线也在稳步为我们拿更多的项目,接下来对我们开发人员依旧很很大的挑战。新的一年希望团队:

  • 继续保持每周例会的习惯,注重问题的落实和反馈,成果的沉淀,需要每个成员的参与
  • 继续规范团队的开发流程、代码规范、注重代码测试,更需要团队成员的践行
  • 先在完善技术的挖掘与落地,保证系统稳定可用的情况下不断提高代码质量,完善系统的测试、发布、运行、更新流程,积极拥抱新的技术路线,在取得良好效果可以考虑逐步推广

年度计划

技术

技术我分为两条路线,一条是生产线,一条是储备箱。

生产线

  • 继续深入学习SpringBoot全家桶的使用,在遇到瓶颈时要有看源码的能力
  • 夯实目前使用的框架和数据库,要求熟练使用
  • 引入全局配置中心,做好技术选型和维护
  • 继续学习Docker相关技术
  • 在业务时间接触springCloud全家桶
  • 保持良好的技术视野

储备箱

  • 在工作遇到的Java薄弱的地方需要去求证去学习
  • 温习数据结构,尝试在工作中使用一些数据结构
  • 看一些中间件的源码,并学习一些常用的设计模式
  • 继续学习Java的高级知识,线程、并发等
  • 扩展自己的计算机技能树,包括但不限于计算机系统原理、网络通信等

业务协同

和需求人员多沟通,参与系统功能设计,熟悉整个系统的各个环节各个链路。

心态与习惯

不管遇到什么技术难点,复杂的需求,希望自己都可以保持一个良好的心态,也要有良好的抗压能力,加强分析问题、思考问题的能力。同时学习需要有一个良好的习惯,希望可以养成一个高效的工作带动学习、学习回馈工作的习惯,在学习中注重思考、实践,最终达到双赢的效果。