Juconcurrent 学而不思则罔,思而不学则殆。

我的年终总结(2019年)


整体概要

  1. 2019年工作内容概述及取得的成绩
  2. 2019年工作中的不足和存在的问题,及其改进方案
  3. 2019年在公司的收获、体会及感悟
  4. 对公司的意见和建议
  5. 2020年工作规划和展望

个人总结

1、2019年工作内容概述及取得的成绩

2019年1月7日,我入职了现在这家公司。之后,我参与到了公司的项目迭代。需求分析、编码实现、Bug修复、线上问题定位,如此反复。彼时的项目流程、文档管理和产出物的质量,相对来说,都不是很高。但是,年底的回顾,我看到了全公司所有人的协作和努力。项目也在朝着好的方向演进,许多方面都朝着好的方向发展。

细想一下,我在2019年具体的工作内容大致如下所示:

  • 熟悉放管服早期版本的业务,对当前架构提出质疑和进一步的改造措施。
  • 参与放管服早期版本的机动车市场业务梳理,并设计第一版的表结构和模块划分。
  • 参与JAVA序列的流程规范梳理(包括:Java编码、Maven、Mysql、迭代演进、Git分支管理等)。
  • 和蒲总、杨嵘等一起梳理微服务的分层和分模块,以Visio的方式画出物理架构图。
  • 搭建斑马信用的微服务环境,初步形成开发脚手架,按模块梳理出约30个微服务,以支持业务的展开。
  • 指导新员工熟悉工作环境,对新老员工提出的疑问进行解答,帮助其成长。
  • 参与斑马信用V1.3版本到V1.9版本的迭代开发(总共10来个版本的迭代),在斑马信用中,我主要做了以下事情。
    • 文章服务的设计和实现。
    • Route和Icon公共组件的设计与实现。
    • 配合同事完成消息服务的重构。
    • 主导信用优享日的功能开发。
    • 参与122活动的功能开发。
    • 主导非大型货车通行证的开发(已上线)。
    • 参与大型货车通行证的开发(开发人员为:我、邦凯、赵东和张川(已离职))。
    • 抽取公专网websdk模块,以便于weapp和mobile对接口进行复用。
    • 参与城市服务的功能开发。
    • 搭建公专网Quartz定时器框架脚手架,并完成一部分Job的实现。
    • 设计bmc-dependencies模块,以便于斑马信用各组件版本的统一维护。
    • 数智贵阳小程序的服务端接口迁移和开发(主要为鉴权和证照查询)。
    • 设计并实现公专网的鉴权逻辑,通过ABToken的方式提高通信的安全性。
    • 设计并搭建专网透传服务。
    • 设计并搭建公网透传服务。
    • 设计并实现消息中台,并对外提供消息相关API。
    • 设计并实现短信服务,初版本支持贵阳交管局的短信发送和阿里云的短信发送,但后期因为特殊原因,去掉了贵阳交管局的短信发送。
    • 主导非大型货车通行证关于政务网的对接。

总体来说,我主要参与斑马信用产品的设计和开发工作,同时也担任导师的角色。斑马信用产品于2019年9月份在贵阳正式上线,用户量逐步上升。期间也遇到很多线上的问题,但是以我丰富的经验,最终还是将这些问题都解决了。

2、2019年工作中的不足和存在的问题,及其改进方案

虽然公司整体取得了一些不错的成绩,但是往往伴随着一些需要完善的事项,我觉得主要包括以下这些。

  1. 数据中台体系未完全搭建起来,一些数据的查询还是绕开了数据中台,直接查询的是底层存储,这种方式虽然开发快,但是不好扩展。
  2. 业务中台业务不够单一,职责过于复杂。导致后续的扩展性不高(比如:订单中台、商户中台)。
  3. h5页面访问的后台服务接口,没有从mobile服务剥离出来。导致和mobile、weapp的耦合较为严重。
  4. 微服务整体规范未明确,每个人的经验和开发方式都不同,写出的代码风格严重不一致,影响团队协作的开发。
  5. 较少的Code Review,导致代码的质量并不高。
  6. 没有单元测试和集成测试,Bug不能及早暴露出来,开发效率不高。另外,改Bug的时间周期变得更长。
  7. 非斑马信用服务,缺少日志记录和链式追踪,导致线上和非线上问题定位难度大。
  8. JAVA序列缺少整体的、全职的负责人,导致很多规范、风格和事项未落实下去。
  9. 缺少APM工具。当前线上已搭建Skywalking,但是因为性能问题,目前已经下线,希望后期可以再次上线。
  10. 组内缺少培训,导致新员工入职后团队融入周期长。组外也缺少培训,导致员工对交通领域知识了解欠缺。
  11. 灰度(或预发布)环境未真正实施起来,发版时间长。发版时经常是熬夜,人很疲劳,且发版质量不高。
  12. 公司很多员工(包括我)缺少对大数据知识的了解和入门,因此对大数据的后续发展缺少前瞻性。
  13. 公司和部门缺少统一性机制,或者统一性机制未真正落实下去,导致很多东西凌乱而复杂,扩展性、易维护性、可读性、效率等都大打折扣。
  14. 产品原型太简单,很多逻辑、交互和细节都做得不够,导致开发的过程中需要反反复复地和产品沟通,迭代效果不理想。
  15. 公司的氛围还需要加强,尤其是团队外的沟通。
  16. 业务和技术方面缺少积淀和总结,虽然我们有Confluence平台,但是未完全发挥出其价值,也希望运维能对Confluence做好备份,避免丢失一个月数据的情况出现。

3. 2019年在公司的收获、体会及感悟

  1. 来公司的第一个月,公司给我的感觉是有点冷。自己对公司也有一定的隔阂和放不开的感觉。但是呢,随着和团队的逐步融入,我在每个人身上都看到了不一样的闪光点,当然也有缺点。个人觉得,当学会了吸纳别人好的方面,摒弃和反思不好的方面,我们就会少犯错、少走弯路和错路。
  2. 这一年,我还是觉得自己有的时候有点不好沟通。为什么会这样?经过反思,归根结底还是自己不够成熟、不够容忍和不够大局观。那么,怎么改进呢?当有问题出现的时候,首先想到的并不是推诿,而是站在全局的角度上来排查和定位。
  3. 关于计划性,我在这一年做得并不好。有的时候忙起来,很多人找你,但是往往会出现做了一件事之后,又忘了还需要做的事情。或者闲的时候,往往有些迷茫自己将要做的事情。合理、高效、有条理地对事项进行管理,我觉得应该是一门学问。我希望通过一些业界好的方法论和书籍,让自己能进一步管理好自己的时间。
  4. 在公司这个大平台中,我在微服务架构方面有了进一步的了解和实践,包括服务的层次划分和模块划分。
  5. 在面向C端的服务开发过程中,我有了一定的认知。它和G端和B端有什么不同的地方呢?我觉得还是有很多方面。比如:重服务端、资源管理、版本管理、吞吐量和响应时间、缓存利用率,如此等等。
  6. 基于文章模块的设计和实现,采用了Elasticsearch,以前接触得比较少,现学现卖的感觉还是不错的,希望后续能进一步将这个框架用得更好。
  7. 公司整体的目标非常清晰,徐老板也反复强调过。这是很难得的。在公司大环境下,员工的定位是怎样的,如何最好地为公司发挥力量,值得我们每个人反思。我体验最深的就是责任。成年人的世界有无奈,但是也应背负起我们应尽的责任,这个过程未尝不是一件值得庆幸的事情。

4. 对公司的意见和建议

  1. 建议给JAVA序列配套一个负责人。
  2. 建议加强统一性管理,统一这个术语包含我们能想到的方方面面,每个人都可以提意见来完善,同时每个人都必须遵守。
  3. 建议开发人员有权对产品原型的质量进行评估,在质量不达标的情况下,有权拒绝功能的开发。
  4. 建议增加交通领域知识的培训,不局限于现场,可以包括视频、书籍、新媒体等等。
  5. 建议持续开展读书会和技术大学,让公司员工能在工作之外,提升自己的专业性,更好地为公司服务。
  6. 建议团队内对服务的数量、服务的质量、服务的职责、服务的内聚性进行统一的梳理和跟进,持续地对代码进行优化。
  7. 建议进一步提高公司内部员工的专业能力,让他们对规范和统一有较为深刻的理解。

5. 2020年工作规划和展望

2019年是事情繁多的一年,虽有不足,但收获也是蛮多的,自己的知识和眼光得到了进一步提升。2020年,希望自己能进一步在C端和B端有一定积累。

在B端,我希望可以参与进去,且能使之成为一个较为完善的开放平台。做好开放平台并不是一件容易的事情,需要自己有开阔的视野和一定的前瞻性。能在对商户、商品、权限等的水平扩展基础上,设计出一个灵活的系统,只需要通过简单的动态扩容,在不影响性能的基础上,实现快速的扩展。而B端有哪些需求和任务呢?这需要根据实际情况,加上解决方案组和产品组的大力支持,才能得出。能否和他们在需求和任务上实现无缝的沟通、交流和协助,是事情能否做好的关键因素。

在C端,我希望进一步精炼服务,让服务功能更内聚。通过可靠的中间件支持(包括存储的、消息的、调度的),让我们的系统更加的面向领域化。而领域化是每个公司都致力达到的效果,但是要做好却并非易事。楼主希望搏上一搏,让自己在业务和技术方面可以得到进一步的成长。

我是做JAVA开发的,而服务是一个个可治理的、可管理的单元。服务不应该求多,而应该求合理。迭代演进,我们可能会对服务进行合并或拆分,如何快速地实现这一演变,我觉得需要将我们对需求的理解和代码的规范有一个较好的认知,才能做得足够好。2020年,楼主计划在服务的合理性方面做进一步的探索和思考,力求朝着更好的方面发展。

在技术领域,楼主希望能深挖微服务涉及到的各类技术栈,包括:Spring Cloud、Spring Boot。存储领域,希望深挖Elasticsearch和Mysql。缓存领域,希望进一步了解Redis的原理,以及阅读Redis的源码。在大数据领域,希望从HDFS和HBase入手,使自己对大数据的基础知识进行入门。而大数据需要的进一步知识点,楼主希望多向大数组的同事学习和看齐。虽然在公司里面,我是做JAVA服务端领域的工作,但若是缺少大数据的知识,始终感觉不完整,也丢公司的脸。

在分享方面,楼主希望自己至少对外做3次较为专业的分享,提升自己的演讲能力,也让更多的同事学到更全面的知识。在技术文章及博客方面,楼主希望能持之以恒,坚持以专业的图文展示自己的价值,且初步给自己定一个写50篇文章的计划。总结,需要记录下来,溯源也好,担心忘记也罢,至少要留有痕迹。当时光老去,当我们身体不再健硕,思维也不再灵光,我们还能通过一些东西来追忆。


Content