2018 年终总结
2018 年刚过几天,是时候总结一波了。
先说工作
年初挪窝了,离开 P2P 风控,加入一家社交电商公司。 正式开始电商后端生涯,电商的业务总体还是比之前做的东西复杂很多,特别是当公司的业务线增多,对整个链路系统的设计要求很高,不然很容易疲于应付需求,每来一个需求都要开发半天,项目很快会失控。半年多时间接触下来,因为部分系统没有进入深入的开发,细节部分知道的不一定有直接负责的人清楚,大体上还是明白的。做的更多的是一些支持类的系统,比如订单搜搜、结算、逆向交易这种。
10 月左右开始了平台化改造需求,开发量不小,Deadline 定好了大家撸起袖子来干。连续加班了可能有两个月,算是把项目给怼出来了。这中间赶工期赶的很厉害,很多代码和逻辑没有经过多仔细的思考就写出来,自测也不是很完善,导致问题很多,后期只能慢慢改和完善。
平台化项目中主要负责交易逆向业务,其实就是交易退款。这个业务请求量不会特别大,难点在业务复杂度上,当涉及到多个平行业务线的时候,会有很多变化的点需要兼容。很多不同的场景需要使用不同策略应对,这些要求设计上能有考虑,并留出扩展点。或者新增扩展点比较容易,不会带来比较大的影响。这个项目就算是写这个总结的时候也还是处在一个比较「糟糕」的状态,不过还有时间思考和重构。这个项目做的很累也很赶,但是带来了不少思考和实践,也算有点收获,后续加点精力优化到一个比较完善的地步,预期应该会提升一些姿势水品。
年初刚入职的时候有一段完整的时间可以专心研究 Elasticsearch,把对 DB 的直接查询(好吧这个不知道当初为什么这么干)改成了搜索。有完整的时间,几乎没有干扰,全精力的看了一遍官方文档,把自己从一个 Elasticsearch 小白白,变成了一个 Elasticsearch 小白。Elasticsearch 这玩意比较庞大,存储这个事儿也不容易,以后再花精力钻研(很可能没有)。
下半年来了 CTO,来了一大票前阿里、前蘑菇街、前 XX 的高级、资深、专家 … 程序员(这里只是列下不同的区别,没有更多含义),总之就是来了些高 level 一点的程序员。与他们接触不多,偶尔有机会交流,平时只能一个办公室听到些他们的沟通,不过还是能吸取到一些有用的东西。这几个月他们的代码和文档慢慢也有了不少,这部分还需要花些时间看看,学习。
还有,TDD 由来已久,这次花了点时间真的实践了把,不过是反过来的。先写实现,后写单测,用写的单测 debug 实现,观察表现,有问题改问题,暂时没问题就再完善下单测,单测多了就继续跑单测。到目前为止,总共 70+ 个用例,覆盖场景可能只占整个项目 1-5%。不过在不停的改代码 - 跑用例的循环中,还真有几次一个代码改的不合理,导致其他地方的单测不过而发现了隐藏的问题,那个瞬间感觉还是挺激动的。这个方式和之前的开发方法还是不一样的,之前写的用例强依赖测试 DB 的数据,并且不可重复执行,也没有断言,纯粹是当做一个 Main 函数用。这次不同,每个用例的对外依赖数据都做了 mock,内部的测试数据自己创建,自己用,每次创建的数据用 DB 本身的事务回滚,达到不会产生脏数据。有这些肯定远远不够,更多覆盖更细的用例才有用,不过好歹是个还算能用的基础,也有一定成效,感觉棒棒哒。
娃
洋洋快两岁了,时间好快,语言发育速度还行,已经能日常对话了,比如:
1 | 我:洋洋叫爸爸 |
另外,很能吃,特别能吃。现在长得胖,身高也在同龄中算偏高。有的时候和同事吹嘘:洋洋以后个子长到一米九,打职业男篮,预定国家队首发控卫。捂脸 …
学习
年初比较空闲一些,书看了些,源码看了些,总结了点文字,感觉还不错,有一点点充实感。之后一直比较忙,精力有限,看的东西不多。看的书只有一本《Inside Sqlite》,这本书很小,100 多页。是英文的,但是单词和句子都还算简单,最难看懂的看个 3,4,5,6 遍差不多也能理解了。年初看了不少 DB 方面的东西,偏原理的,之后一直都还比较感兴趣。Sqlite 本身很小,对于了解 DB 的实现,入门来说还算比较合适。
其他工作之外的精力就比较少了,这一年实践比较多,沉淀还不够,很不够。
锻炼
还是打篮球,实力进一步退化,因为打得越来越少了。体力,对抗,技术都没有之前状态了,投篮略有提升,从「10 投 0 中」投手,变成「10 投 1 中」投手了。嗯,明显是有提升的么,从无到有的提升,谁不让我投我和谁急。
其他就没啥了,因为跑跳少了,膝盖反而恢复了。锻炼这个事,还是要坚持,哪怕就每天走走路,可是忙起来根本就顾不上。
其他的其他
这个总结感觉写的没有去年的坦然了,有些地方写了删,删了再写,再写了再删,年纪大了,心里装的事情多了。嗯,毕竟 30 岁了。