2022 年度总结

2022-12-11

学习上

看了很多书

印象最深的当属《代码大全》,名称给人的感觉和里面写的完全不同,这本书让我了解到了编程也能有很多公式,了解代码设计以及软件工程,提高了我对高质量代码的追求以及系统设计的兴趣,以及对近况的不满,我应该学更多(you need more practise)。

随后看了《代码整洁之道》、《重构:改善既有代码的设计》让我了解到了更多的编程公式,大量的资料供我产出自己的一套公式。

实习期间看了《蛤蟆医生去看心理医生》,印象最深的是,一个人小时候所深处的环境,对于一个人的影响是最深远的。

回顾了《软技能:代码之外的生存指南》,里面说营销自己,于是又开始写自己的博客,有想法 开启自己的播客时代,记录自己的声音。

看了《程序员的职业素养》,了解了如何成为一名专业的程序员,敢于说“不”…,无论我们从事任何一个领域,我们都应该构建我们自己的专业素养,你的行为你的言语透露着你是否专业。

看了《计算机网络:自顶向下方法》,我知道了大学所学的《计算机网络》一书是多么的落后,视野也逐渐开阔了起来。

看了《OnJava8》,发现作者对于 Java 的了解真的是太深了,自己的层次远远不够,不过目前方向有点迷茫,不太想走 Java 方向了。

看了《Java测试驱动开发》,让我了解到了 TDD 的魅力,测试使代码的重构更加容易,引入新功能更加迅速,编写更加优雅的代码,这就是我渴望到达的一种境界。

读了书之后,发现书读百遍,其意自现,书读一遍真的远远不够

看了很多视频

看了各大培训机构关于 Java,Spring,Mybatis 的课程

跟着 coderwhy 老师看了 JS 高级,Vue3,目前也出了前端系统课,看了小程序部分。

学了一个月的算法,又再一次尝到了算法的乐趣与乏味

最近在看【北京大学肖臻老师《区块链技术与应用》公开课】【中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版)》课程】

拓展自己的视野,以及巩固自己的基础,为了走得更远

听了博客

听了《保持冷静》,有点喜欢他们的声音

听了《商业就是这样》,了解一些商业行为逻辑

听了《故事FM》,听听其他人的故事,在脑海中过一种完全不同的人生

工作上

转正了

实习了半年(2021-10 ~ 2022-04),终于是转正了,工资多了一点,终于是能应付房租和平时吃饭了,不用倒贴钱了。

同事们

和同事们相处得都比较融洽。自己的技术也得到了认可,还有同事劝我不要在这呆太久,会埋没了我的技术以及浇灭我的热情。(随着持续的工作压力,让我认识到了,小公司确实会为了持续的利益增长,不断地安排任务,并逼迫人加班(我不说,但是你任务没完成我就开会说你,甚至扣绩效)的丑陋模样)。为了避免开会被说,绝大多数的同事都会选择谎称自己任务完成了,于是陷入恶性循环,每周自己都在完成上周的任务,我不知道团队或项目什么时候会垮掉,我只知道这个团队非常的不健康。

项目改造

第一个改造项目是 OA 的样式调整,在刚转正没多久便开启了我的第一个比较长周期的任务(为期三个月)。我主要参与在前端工程师指定标准之后,对其他界面进行套用,调整一致的样式风格。这使我大致了解到了整个系统前端的模样,因为需要修改非常多的页面。在该项目进行中,基于 DataTable 框架,我写了几个工具函数,例如自动计算表格高度使其自适应占满整个屏幕、在页面关闭清空表格状态数据、etc.。基于 AdminLTE3 框架,我扩展了 Frame 一些工具方法,例如点击链接开启一个 tab 页、页面取消时关闭当前 tab 页、etc.。

第二个改造项目是 OA 的合同改造(为期三个月吧,开发一个月,测试了两个月),基本算是我目前写过比较复杂的代码了。我主要参与前端创建合同页面的编写,将之前通过页面跳转的形式改造为页面 tab 切换页。其中 tab 页包含了合同基本信息、软件信息、硬件信息、服务信息、油站信息。业务复杂,HTML 写了 1k+,JS 写了 3k+,此次改造是基于 DataTable 框架,进行表单填写。由于我司 OA 项目基本由后端人员编写前端代码,质量非常堪忧,以至于做这一块的时候,我没有能借鉴的地方,基本全是查看官方文档进行的代码编写,这让我更爱看官方文档了。

项目维护

剑指 Offer 一书中说过,如果是做项目维护应该列出自己维护的 bug 以及解决问题的方式,那我简单列一下:

到目前为止,一共处理了 62 个任务。

  1. 知乎库 es 搜索显示有问题。1️⃣我发现测试没有 es 服务供测试,于是我在测试服务器 docker 安装了 es 服务,并写了接口将目前数据库的数据导入 es 中,供测试(这些人真神奇,没有测试环境还能上线,笑死);2️⃣我发现搜索内容高亮和列表页内容显示有问题,我添加了内容关键字的高亮,以及对富文本的 html 代码进行过滤。
  2. 添加字典缓存。1️⃣我发现 @Cacheable 不起作用,经搜索发现是项目使用 shiro 框架导致的 bean 提前加载以致无法被代理;2️⃣由于项目已开启六年,基础设施的问题,改动工作量大,因此我放弃了声明式缓存,使用了编程式缓存自己写了缓存工具。
  3. 写定时任务,处理百万数据的同步。1️⃣最开始我直接进行分页批量统计,当深分页到一定程度,每次查询需要一分钟,因此我换了解决方式,分而治之;2️⃣以油企为规模分离数据,再以时间每月分离数据,最后进行统计,因此每次统计的数据规模从百万降到了万,很快就同步完成了。
  4. 六项基础数据的 curd。1️⃣我基于 mybatis plus 对 jdbctemplate 进行了 service 到 dao 层的封装;2️⃣分离实体类和 VO 类,查询参数就在实体类中,因此没有定义查询参数类;3️⃣接入 redis 实现编码的自增长;4️⃣前端抽象出了列表页类、编辑页类以及接口服务类,统一进行代码编写。不要重复自己,善用函数和类组织代码。
  5. 还有一些简单的新增一些统计列表页、表单添加字段校验、登录密码进行二次加密 SM3 存储…

总结

工作难度是越来越大(不是任务本身的难度),项目管理是越来越拉。比如最近做的自定义表单审批的报销流程,只有产品抄的金蝶的云之家的原型,不做数据库设计,不做接口设计。直接 nm 写那 sb 代码,那能行吗,那肯定不行啊,小组长给我安排小程序的前端任务,还说了逆天的话,说我先写页面,不需要了解业务,接口问做接口开发的人要。这 nm 沟通成本太高了,搞这我还不如直接做前端开发切个图丢给开发人员,那才是真的不需要了解业务。这直接导致了我对项目管理的好奇,我直接大谢特谢,我又有新的东西要学。

小组长,不参与代码的编写,只做任务的派发、code review 以及项目的运维,小组长自己也要忙其他项目的开发,没有时间统筹开发进度以及项目管理。code review 只有小组长一人,其他成员不参加,code review 功效少一大半。

开发人员没有编写单元测试的习惯,以至于一个开发了六年的项目,只有零星的三四个测试类。代码质量完全由测试人员的黑盒测试进行保障,项目质量可见一斑。目前自己也在学习测试驱动开发,良好的测试对于项目来说重中之重。

系统设计完全掌握在产品一人手上,产品不懂代码,不了解系统架构,只知道别人有的功能搬进来,不切实际,强行增加开发难度,以及开发成本,这一点,比起维护内部的 OA 系统,不如维护对外的产生利益的项目,至少那个会明确评估人天以及项目主要负责人会进行评判需求设计是否符合当前架构。

早上上班不需要打卡,因此早上八点起来,做个午餐便当,骑单车去公司时间绰绰有余。晚上也有加班餐可以吃,可以吃完回来或加班,也可以打包回来,加班一般到 21 点可以走。

生活上

骑车上下班

由于经常回家就十点了,没法锻炼身体,所以坚持每天上下班骑车,30+ 分钟的 7km 的路程。

开始做饭了

8 月份的时候,在妈帮我买了锅和冰箱之后,开启了我在出租房的做饭之旅。我现在会做基本的炒菜,辣椒炒肉(先不放油直接放锅里炒一下辣椒拿出来,再炒肉放辣椒)、咖喱饭(土豆块、辣椒片、胡萝卜块加洋葱)、莲藕炒肉、土豆丝、胡萝卜丝、土豆片炒肉、黄瓜炒火腿加鸡蛋、西红柿鸡蛋、炒河粉(先煎鸡蛋,再单独炒河粉,最后炒菜熟了之后一起放下去炒)、香菇炒肉、豆角炒肉、洋葱炒肉、蒜薹炒肉…

搬家了

9 月份由于政策的原因被迫搬离出租房,找到一间 2200 的次卧,基本每个月的工资全交房租了,不过终于有厨房了,不用蹲在地上炒菜了。(攒钱大业今年落空,就盼望着年终奖回去过年了)。

出去玩了

  1. 去了环球影城(霸天虎过山车座了三次,哈利波特的 5d 也玩了好几次)买了四十块钱一个的小黄人雪糕吃了
  2. 去了动物园,看了熊猫
  3. 去了北京舞蹈学院,和表妹一起吃了食堂的麻辣香锅
  4. 去了国家图书馆,里面有很多最新的图书全能免费看,要是我在那附近就好了,我天天预约进去
  5. 和群友面基了,他给我送了他家做了腊肠,非常好吃
  6. 去了南锣古巷,王府井和高中同学一起吃了火锅
  7. 去了西单大悦城恰了火锅
  8. 去了昌平区龙脉温泉
  9. 去了房山区十渡漂流
  10. 逛了无数次超市…