标签 : coder
年假结束, 明天就要回到杭州, 回到我fighting的战场. 回首过去的2016, 放纵了许多, 但也收获了很多: n个项目、n个框架、第一个季度之星、头像第一次登上CSDN以及第一个年度超越预期的KPI…
回顾2016, 有两个人不得不感谢: 团队老大-康瑜@康康, 曾经的师兄-周盼@盼爷. 因为康康, 我最终选择了微店, 选择了杭州业务技术部一个温馨的团队, 同时在工作上给予我支持和我鼓励. 因为盼爷的信任和帮助, 可以让我放心、放手去干, 去胜任一份可以从中获取成就感的研发工作.
还好有时常总结的习惯, 2016年2~10月份的内容(如自身提高、项目、开源框架等部分内容)已经在岁月划过生命线(16.02 ~ 10)中提到, 在此就不再赘述.
随着独立负责整个动态中心系统的时间愈久, 对项目开发/管理也愈有感觉, 处理线上/线下问题也越来越顺手, 但所做的事情也越来越复杂、越来越零碎.
以前一个业务过来, 总会有师兄将项目按模块划分然后分配下来, 我只需要做好我负责的模块并跟其他同学协调/联调好就可以了. 当师兄转岗和组内一个实习生离职, 整个动态中心系统由内到外, 由上到下全部的责任都压在了自己身上, 不再有人帮你划分模块, 不再有人在旁叮嘱提醒, 任何鸡毛蒜皮的小事(产品经理需要了解下实现原理、运营同学需要开通下权限)、任何线上问题(如线程池满、连接池满、Full GC频繁)都需要你一力承担, 24小时on call等待线上报警、客户投诉.
除了年底接了一个一元夺宝项目, 参与开发抽奖、开奖等功能之外, 几乎没再接其他大型的项目. 反而是已经已经接手很长时间的动态中心: 需要不断的重构架构、优化实现才能满足不断增长的用户量、数据量以及新业务的接入. 这段时间遇到了很多比较有意思的问题: 缓存连接池满、MQ消费速度过慢导致消息堆积、MQ消费速度过快导致MySQL压力过大、MySQL压力大/响应缓慢导致线程池满触发任务拒绝策略、线程池满导致新请求无法及时响应、单台Redis缓存由于数据量大导致响应缓慢必须切换为集群等问题. 由于这些问题只会在线上环境暴露, 因此解决起来非常棘手且紧急, 有时需要连续几天加班/周末不休息地去尝试新的解决方案. 在传统的解决方案解决不了的情况下很多激进的优化方案也会被放到线上测试.
很多优化方案由于公司保密原因在此无法展出, 但有很多的思想借鉴了Java并发编程实战、深入理解Java虚拟机以及Java并发编程的艺术等几本书, 感兴趣的同学可以下.
除了曾在岁月划过生命线(16.02 ~ 10)一文中提到过的cacher(原cache-annotation)、Touch、ScriptEngine三个框架在16年的最后一个季度都有非常大的升级改动外, 还基于JMX开发了一款VM监控工具-VMX, 不过由于后来在网上找到了Apache Sirona, 他能够提供功能更强大、界面更简洁、配置更简单的监控方案, 因此也就没有再继续推VMX.
cacher(原cache-annotation)
最新版的cacher借鉴了spring-cache很多特性: 基于SpEL表达式的条件缓存、多缓存产品管理、常量key缓存、统一key前缀…, 同时3.1版本的cacher默认支持从in-heap-cache到off-heap-cache到off-process-cache到disk-cache一直到cluster-cache的九款缓存实现, 真正做到拆箱可用.
上图
ICache
实现为微店内部版本, 开源版本可能会有部分出入.
Touch
最新版的Touch除了删除了基于web.xml的配置、开始支持基于classpath:touch.xml、http://www.vdian.net/touch.xsd的配置、支持属性映射修改等功能外, 没有其他大方面的功能性改进. 而是致力于在保持配置简洁、对原代码低侵入的同时提升Touch的性能以及降低对原系统应用的影响.
ScriptEngine
最新版的ScriptEngine不再依赖一个统一的后台, 而是开发了一款Idea插件, 可以在IDE内书写JavaScript、Groovy、Java代码直接发送到线上执行并拿到返回结果, 由于没有了统一后台的权限校验, 因此在数据传输的过程中添加了加解密规则、使用Zookeeper提供服务自动注册/发现, 在提升易用性的同时提升安全性.
最后公司年会又一次在三亚举办, high了几天…
由于工作的压力这段时间的读书和body-building时间被压榨殆尽, 但也利用周末和年假空闲读了几部经典, 并稍事锻炼.
年会无聊时又发现一部VM相关书籍Java性能优化权威指南. 这部书将着眼点放了性能调优方面, 介绍了很多性能监控、分析、调优方法, 虽然也有JVM相关内容, 但行文方式与深入理解Java虚拟机有很大不同, 可以结合一起阅读.
不过本书的中文版翻译实在拙劣, 错字连篇, 让我误以为亚马逊开始卖盗版书, 甚至几位中文译者是不是存心毁了这本书? 但翻阅原著, 发现原文行文也确实有些蹩脚难懂.
由于天气渐冷、工作渐忙, 坚持了8个月的跑步没有再继续下去, 虽然也办了健身卡, 但也只去跑了几次步就有坚持下去了. 不过每周陪室友去学游泳倒让放下许久的游泳又坚持了下来, 放松的同时也趁机也学会了自由泳. 年会在三亚一起游泳时也让同事惊讶于一年前还什么都不会的我最近一年来的进步(~ ̄▽ ̄)~.
另外我还竞选了团队“体育委员”一职, 虽然自己的羽毛球球技一直以来未曾进步, 但在工作的间隙组织团队与其他部门同学联谊打球, 推动团队body-building, 大家在一起抛开工作说说笑笑, 也让团队气氛更加融洽.
早晨起来称一下体重, 由于几个月来的辛(hao)苦(chi)工(lan)作(zuo), 已经从74kg涨到了79kg, 因此在新年目标中又增加了一项: 体重从79降到72.
微店每个季度会从不同的方向(技术、运营、产品、客服、行政….)评选出一批优秀员工予以奖励是为季度之星. 虽然是一名毕业不久的应届生, 但对这一隆重奖项也觊觎良久, 但也从想过这么快就能够得到. 当得知自己获奖的一刻, 意外 & 激动 溢于言表, 感谢团队成员和公司的肯定.
其实我是来给书做广告的 ╮(╯_╰)╭ …
现在以及未来的5个月初步计划要完成下列内容的学习(1~3 必须完成, 4~6视情况而定):
原文:http://blog.csdn.net/zjf280441589/article/details/54862696