2023 年年初也做了一份年度计划,沿用 2022 年的 5 个核心目标,在 9 月中旬之前,稳步推进。
  9 月中旬的时候,APP 突然因为某些原因被下架,公司和我自己的计划都被打乱,公司内部也发生了巨变。
  下面的思维图列举出了今年做的一些比较重要的事情。
:-: ![](https://img.kancloud.cn/b8/13/b8138fc80054fbdef328d37f491dc7ea_1702x1614.png =800x)
  今年干的事情其实也是知识沉淀、提效保质、体验优化和研发标准,只是今年会概括为 4 部分:团队建设、体验优化、公司变化和日常生活。
## 一、团队建设
  今年的业务比较稳定,没有出现新的产品线,不过团队建设有所突破。
**1)年终述职**
  这个年终述职其实是针对 2022 年的,包括年度工作回顾和年度成果。
  全公司 15 个组,得分排在第 7 名,这个分值有助于提升我们组员 2022 年的年终奖排名。
  公司 2022 年终奖的得分分为 3 部分:团队得分,组长打分和互评得分。
  互评很考验日常的协作是否和谐,对你这人的印象如何。
  在日常工作中,我一直会要求大家积极主动的解决各类问题,在技术问答群中多冒泡。
  现在人员充足也稳定,所以对于 2022 年来不及做的各种优化都提上了日程,受益人很多都是协作方。
  最终我们组个人的得分都不低,当然其他组有人表现比较糟糕,他们的得分都比较低。
  最终排名出来后,我们组有一个排名第二,一个排名第五,可以拿 3 薪和 2 薪。
**2)组员成长**
  组员在今年,无论是技术方面,还是业务方面,相比去年都有显著的成长。
  今年内部技术分享举办了 20 场,平均每个人准备了 4 场分享。
  从这些分享中,不仅可以让我了解到他们感兴趣的技术点,还能锻炼他们的演讲和概述能力。
  有机会的话,也会鼓励他们将一些分享的内容集成到项目中实践。
  虽然不能严格按照双周一次分享的频率,但我觉得只要经过思考,有了收获就可以了。
  今年进行了 18 轮的 Code Review,想通过讲解代码细节提前解决潜在的问题,降低线上业务事故数。
  还有一个目的是在团队内部推广编写适量的注释,以便在换人维护时,可以迅速理解代码意图。
  8 月公司让每个组长和自己的组员进行一对一的会谈,为了及时发现并解决问题。
  但我还发现通过一对一可以了解到组员希望的技术成长,例如想尝试新技术,将 AI 引入进来。
  未来可以将某些与她感兴趣的技术比较契合的需求,交由他来处理。
  还发现其实每个人对公司产品都很有想法,例如对于某个收费功能,希望给他们提供个意见反馈,可以让开发在后台了解到痛点。
**3)主动意识**
  大家今年都有了主动思考痛点的意识,在日常工作中,或多或少的都在为业务着想,主动优化各类问题。
  APP 中有许多协议都是 H5 网页,后台有个富文本的页面可用于动态填写协议,也就是让运营们自己维护。
  但是它的功能并不完善,有新协议时,需要进行二次开发,后面组内一个成员自己去做了优化。
  优化后同步给产品,产品经理非常高兴,也很意外,因为他也没想过这处的优化。
  另一个优化是成员缩短代码发布流程,在聊天界面引入飞书机器人,输入命令后,在聊天页面就能直接发代码。
  由原先的每天打开代码发布页面 30 次,到现在几乎不用打开,每天节省了相当多的时间。
  在 7 月优秀员工和团队评选中,凭借这个优化还让团队荣获最佳创新奖。
  对于产品中有设计缺陷或不合理的地方,大家也会主动与产品协商,并且能给出合适的解决方案。
## 二、体验优化
  体验优化包含性能优化,并且其优化对象包括产品用户、公司员工和研发自己。
**1)监控系统**
  监控系统从 2021 年上线至今,可以说经历了 3 个阶段:完成,可用和好用。
  今年对监控系统做了很大的功能补充,包括错误详情分析、各类新图表、用户行为轨迹等。
  通过监控系统主动发现并解决了 3W 多个错误,页面的稳定性有了进一步的提升。
  自动告警规则也做了进一步的优化,避免 46% 左右的误报,增加定时任务的告警。
  对于性能监控,也做了很多的功能补充,包括Lighthouse 性能测试开关、阶段时序图、操作系统饼图和区域条形图等。
**2)技术栈升级**
  从 2022-06-01 至 2023-04-21,终于完成了对 4 张 jQuery 页面升级至 Vue2 技术栈的改造。
  各组资源的紧张导致上线的一再延期,好在终于完成了,也算是一个里程碑。
  5 月初,将 Ant Design 从 3.X 升级至 4.X,并发布到预发环境,组员内部先做验收,然后让业务人员参与验收。
  经过半个多月的修改和维护,在 5 月中旬替换线上的 Ant Design 版本。
  7 月份对 Vue3 进行了调研,原先是想在 Vue2 的基础上直接升级,但发现成本比较高。
  于是新开一个项目,先将 3 张页面升级至 Vue3,在 10 月份完成了上线计划,未来只会将新需求加到新项目中。
**3)性能优化**
  在 7 月份,公司提出要对海外的用户提升体验,当时顺势就未海外增加了 CDN 加速,包括接口和静态资源。
  开启加速后,海外 2 秒内的白屏时间从最高 633 降到最低 206,付了钱后,优化显著,有时候优化需要一股东风。
  8 月份,让运维在活动的预发环境开启强缓存,为了能有效的破除页面 HTML 代码的强缓存,向客户端提了两个需求。
  对两个活动的地址进行短链改造,原先是写死的地址,现在是动态跳转的地址,并且可以加一个时间戳参数,破解强缓存。
  客户端的版本已经发布,待到覆盖率差不多的时候,再让运维开启生产环境的强缓存。
  10 月份将一个重要的常规活动迁移至 Vue3 项目,在优化依赖包后,脚本尺寸比 Vue2 项目降低了一倍以上。
  此活动的白屏 1 秒内占比从 93.2% 提升至 96.3%,首屏 1 秒内占比从 70.5% 提升至 82.1%。
  但是对于 2 秒以上的白屏占比,并没有显著的变化,这个得等到强缓存开启后,看看是否有变化。
**3)开发优化**
  在 2 月份,将 3 个比较重要的榜单活动全部进行了前后端分离的改造。
  在管理后台中,只要是新的页面,一律采用分离规则,服务端提供接口,但其实还有相当一部分的后端服务还是由我们组在维护。
  3 月份的时候,试着推广 E2E 自动化测试,提升页面交付质量,减少测试资源的消耗。
  但结果并不如意,针对管理后台,本来就投入不了人力,测试更不会去写 E2E 代码了。
  而活动页面有很多与客户端的交互,选的 Cypress 框架只能使用普通的浏览器。
  4 月份完善全链路日志追踪,定时任务的日志增加标识,用于快速而准确地过滤日志。
  7 月份对支付宝服务进行迁移,废弃原先无法维护的代码,其实原先是想把支付服务交接给后端组的。
  但是在与他们联调时,一直拖延,最后选了个折中方案,与支付宝的交互由我们完成,订单和商品的发放由他们完成。
  8 月份将非业务数据迁移至单独的数据库中,删除800多G数据,并且将一些非业务接口也分离成单独的服务。
  当月还对管理后台的页面进行了一次瘦身,页面文件从减少了 79 张,但其实构建时间并没有减少很多。
  不过在 10 月份,对后台页面的构建进行了大包单独拆分、路由懒加载和所有脚本不压缩的 3 层优化后,时间从 5~6 分钟降低到 3~4 分钟。
## 三、公司变化
  9 月底的 APP 下架对公司营收的打击是重大的,尤其是 iOS 也被下架后,都无法支付。
  在国庆假期的前一天,集中了团队人力,增加了 H5 版的支付宝支付,并且将客户端中的支付都引导至 H5 商品页面。
  开屏广告、轮播图等位置也增加了商品页面的地址。即使如此,每天的订单数还是减少了。
**1)裁员**
  因为之前也被下架过一次,下架时间要好多个月,据说当时也做过一轮裁员。
  公司的反映很快,立刻给出了策略,那就是裁员,本来以为是整个公司裁员,没想到只裁技术部。
  10 月中旬,将技术部人员裁掉一半,直接空出三排座位,不过赔偿还是蛮敞亮的,直接 N+1,也不啰嗦。
  但是现在这经济环境很差,并且还是年底,工作还真不好找。这些被裁的同事反映,很多企业都不会有反馈。
  我自己也特地去招聘软件上看了下,现在还在大量招聘的就是外包、游戏和电商,并且现在很多会卡本科学历。
  也向一些老同事打听,他们的公司也基本上没有在招人。
  我对被裁掉的组员进行了简历辅导,也帮他们完善项目经历,该优化的都做了优化。
  其中一个同事反馈,他面了几家,项目问的不多,八股文倒是问了很多,准备不充分,现在还在恶补中。
  其实公司技术部的离职率是很低的,这一两年里,只有进来的,没有出去的,加班可以调休,每年还可以调薪,工作强度也不大。
  到点就可以跑,楼下去抽烟也不会限制时间,休息半小时上来都行,管理其实很松,HR 也不会搞事情,要不是裁员,我相信窝在这里的人不会少。
**2)氛围**
  经过这么一折腾,整个技术部的氛围降到了冰点,没有了以往的欢声笑语,只有键盘的敲击声。
  人员压缩后,很多业务也就不做了,留下来的有些人上班也会心不在焉,经常拖延进度,有个需求甚至从 9 月底延到了 11 月底。
  我自己换了个位置,和小组的另一名成员可以坐的近一点。
  目前在公司,自己比以前说的话也要少很多,可能就开会的时候话讲的多点。
  项目方面,好在之前做了组件化、标准化、工具化等工作,接手成本并不高,还能从容应付。
## 四、日常生活
  上文也提到,目前这个活强度不是很大,周末可以双休,日常也不用加班,自己可支配的时间比较多。
  每天的作息其实也比较规律,7 点自然醒,7 点 50 送送小孩上幼儿园,9 点到 10 点之间到公司,10 点后订餐,12 点吃中饭,13 点午睡,14 点开工,18 点到 19 点之间下班。
  19 点半到 20 点半之间到家,和他稍微互动下,再刷会儿手机,在 22 点到 23 点之间睡觉,每天不熬夜。
  周末带他去上兴趣课或者商场、动物园、海洋馆、植物园等地方玩,基本上休息时间就是围绕着他转。
**1)旅行**
  今年与往年有个最大的不同就是出去旅行的频次变高了,自己统计了一下。
  今年带小孩去了 8 个地方,最远的是北京,其他都是上海周边,包括南京、宁波、苏州、杭州、湖州等地。
  总耗时 20 天,其中工作日请假 4 天,其余都是周末两天。
  带着小孩旅行,考虑的点就比较多,住的地方条件也会拉高些。
  还有很多不适合小孩的地方也不能去,比起单独出去,肯定是要累一些的,不过,也很快乐。
**2)职场**
  最近身边有 3 个大学同学失业了,两个是被裁员,一个是公司倒闭,还陆续收到几个老同事也要失业的消息。
  人到中年,上有老下有小,可能还有车贷房贷,找工作要考虑的点就比较多,例如薪酬、距离、加班情况等等。
  所以一般也不敢轻易离职,我那同学三人都是被动的,现在两个在找活,一个计划先试试转行,我自己也不得不思考未来该如何规划。
  前几天和一个老同事面聊,他在某一线大厂干了 7 个月,扛不住离职了,太卷太累,还要出差,没时间顾家。
  现在这边虽然平台不大,薪资一般,但胜在环境比较舒适,离家也不算远,干的活也不机械。
  为了自己不与程序员这行当强绑定,也尝试过搞些副业,有些是完全跨行,有些则是基于技术能力做些业务。
  例如自媒体、公众号等,但最后都因为各种原因都失败了,现在其实还在继续思考中。
**3)道德经**
  大学的时候,操作系统的老师曾建议我们去读一些哲学书,有提高我们的编程能力。
  当时并不很能理解两者之间的关系,在经过这么多年的工作经历后,有了点体会,老师的意思应该是通过哲学的思想来解决各类实际问题。
  这些问题其实并不仅仅编程,还包括生活、工作、人际关系等方面。
  道德经我本来以为是一本讲思想品德和宗教的书,读了以后才知道是一本经典哲学书籍。
  老子的思想远远领先于当时的大众,道德经中的道是指世间万物的自然规律,德是道的外在体现,尊重自然按规律办事。
  虽然全文只有五千字,但其内容不仅包含朴素辩证理论(一切确定皆否定,既对立又统一地看待问题),还有为人处世、修身养性等各方面。
  许多名句名言诸如“千里之行,始于足下”,“福兮祸之所伏,祸兮福之所倚”,“上善若水”等。
  目前只读了一遍,体会还不够深刻,抽空再读一读。
- ES6
- 1、let和const
- 2、扩展运算符和剩余参数
- 3、解构
- 4、模板字面量
- 5、对象字面量的扩展
- 6、Symbol
- 7、代码模块化
- 8、数字
- 9、字符串
- 10、正则表达式
- 11、对象
- 12、数组
- 13、类型化数组
- 14、函数
- 15、箭头函数和尾调用优化
- 16、Set
- 17、Map
- 18、迭代器
- 19、生成器
- 20、类
- 21、类的继承
- 22、Promise
- 23、Promise的静态方法和应用
- 24、代理和反射
- HTML
- 1、SVG
- 2、WebRTC基础实践
- 3、WebRTC视频通话
- 4、Web音视频基础
- CSS进阶
- 1、CSS基础拾遗
- 2、伪类和伪元素
- 3、CSS属性拾遗
- 4、浮动形状
- 5、渐变
- 6、滤镜
- 7、合成
- 8、裁剪和遮罩
- 9、网格布局
- 10、CSS方法论
- 11、管理后台响应式改造
- React
- 1、函数式编程
- 2、JSX
- 3、组件
- 4、生命周期
- 5、React和DOM
- 6、事件
- 7、表单
- 8、样式
- 9、组件通信
- 10、高阶组件
- 11、Redux基础
- 12、Redux中间件
- 13、React Router
- 14、测试框架
- 15、React Hooks
- 16、React源码分析
- 利器
- 1、npm
- 2、Babel
- 3、webpack基础
- 4、webpack进阶
- 5、Git
- 6、Fiddler
- 7、自制脚手架
- 8、VSCode插件研发
- 9、WebView中的页面调试方法
- Vue.js
- 1、数据绑定
- 2、指令
- 3、样式和表单
- 4、组件
- 5、组件通信
- 6、内容分发
- 7、渲染函数和JSX
- 8、Vue Router
- 9、Vuex
- TypeScript
- 1、数据类型
- 2、接口
- 3、类
- 4、泛型
- 5、类型兼容性
- 6、高级类型
- 7、命名空间
- 8、装饰器
- Node.js
- 1、Buffer、流和EventEmitter
- 2、文件系统和网络
- 3、命令行工具
- 4、自建前端监控系统
- 5、定时任务的调试
- 6、自制短链系统
- 7、定时任务的进化史
- 8、通用接口
- 9、微前端实践
- 10、接口日志查询
- 11、E2E测试
- 12、BFF
- 13、MySQL归档
- 14、压力测试
- 15、活动规则引擎
- 16、活动配置化
- 17、UmiJS版本升级
- 18、半吊子的可视化搭建系统
- 19、KOA源码分析(上)
- 20、KOA源码分析(下)
- 21、花10分钟入门Node.js
- 22、Node环境升级日志
- 23、Worker threads
- 24、低代码
- 25、Web自动化测试
- 26、接口拦截和页面回放实验
- 27、接口管理
- 28、Cypress自动化测试实践
- 29、基于Electron的开播助手
- Node.js精进
- 1、模块化
- 2、异步编程
- 3、流
- 4、事件触发器
- 5、HTTP
- 6、文件
- 7、日志
- 8、错误处理
- 9、性能监控(上)
- 10、性能监控(下)
- 11、Socket.IO
- 12、ElasticSearch
- 监控系统
- 1、SDK
- 2、存储和分析
- 3、性能监控
- 4、内存泄漏
- 5、小程序
- 6、较长的白屏时间
- 7、页面奔溃
- 8、shin-monitor源码分析
- 前端性能精进
- 1、优化方法论之测量
- 2、优化方法论之分析
- 3、浏览器之图像
- 4、浏览器之呈现
- 5、浏览器之JavaScript
- 6、网络
- 7、构建
- 前端体验优化
- 1、概述
- 2、基建
- 3、后端
- 4、数据
- 5、后台
- Web优化
- 1、CSS优化
- 2、JavaScript优化
- 3、图像和网络
- 4、用户体验和工具
- 5、网站优化
- 6、优化闭环实践
- 数据结构与算法
- 1、链表
- 2、栈、队列、散列表和位运算
- 3、二叉树
- 4、二分查找
- 5、回溯算法
- 6、贪心算法
- 7、分治算法
- 8、动态规划
- 程序员之路
- 大学
- 2011年
- 2012年
- 2013年
- 2014年
- 项目反思
- 前端基础学习分享
- 2015年
- 再一次项目反思
- 然并卵
- PC网站CSS分享
- 2016年
- 制造自己的榫卯
- PrimusUI
- 2017年
- 工匠精神
- 2018年
- 2019年
- 前端学习之路分享
- 2020年
- 2021年
- 2022年
- 2023年
- 日志
- 2020