写点什么

写作行动营打卡 02

  • 2023-12-05
    北京
  • 本文字数:1988 字

    阅读完需:约 7 分钟

写作行动营打卡02

Hello,大家好!我是 Java 工程师蔡姬,此蔡姬非彼菜鸡!很高兴在这里和大家分享自己的观点和经历。


今天的课程内容是怎么给自己立人设。课程视频的时长是 13:14,数字很吉利,但美中不足是短了点,有木有!看完感觉意犹未尽啊!


今天中阳老师给大家分享了什么是人设(What如何立人设(How,以及需要保持人设的长期一致性等相关的内容。我对此的评价是一个字——实用!但按照 WhatWhyHow 的思路来思考人设,我觉得还是很有必要说明一下为什么要立人设(Why这个问题的。可能对于已经立好人设的过来人来说,立人设这事“就像呼吸一样自然”,但对于小白写作人,可能会有“不明觉厉”之感。我在此分享一下我对为什么要立人设这个问题的看法,一家之言,仅供大家参考,也欢迎大家批评指正。


为什么要立人设呢?人设就像是标签,在我看来,标签对于没有任何标签的人来说,从来都不是贬义词。它给了你一些关键字,也就是一些 Key,用编程语言中 Map 的数据结构来做类比再合适不过了,当大家提到 “Java 之父”,就马上会想到 James Gosling。当然,你心目中的 “Java 之父”可能另有其人。所以,我们不妨用一个 Map<String, List<Object>> 的数据结构来对人设这个事情进行抽象建模。从这个模型出发,在别人心目中建立起人设,就对应了在别人脑海里存储一系列的 KeyValue,这样,当别人在遇到问题或者谈到相关话题的时候,就能第一时间想到你,这对于我们技术人而言,也属于技术影响力的一部分。因此,立人设的重要性就不言而喻了。这也就是在我看来,为什么要立人设的原因。


接下来,就到了作业时间了。今天,你打卡了吗?哈哈!


说起工作后最有成就感的事,脑海里快速闪过最近的几件。我分别从技术和业务的角度各挑选一件典型的事,也算是借这个机会做个自我小结。


  1. 广告库存平台的分布式架构升级

xxx 分布式架构升级,听名字就知道这是个技术驱动的项目。从平台现状的分析,到方案的设计,再到深入细节的开发测试,直到最后的上线验证全流程,全部由我一个人负责,这对于当时的我来说是不小的挑战。


  • Design 阶段:广告库存平台业务自身的特点,决定了计算涉及的数据量级是巨大的,业务层面的时延要求是严苛的,再加上部门缩减的机器成本和分布式架构本身的复杂性,design 阶段可以说是全方面多维度的 trade off,另外,如何衡量架构升级带来的效益也需要建立一套科学合理的评估方式,经过多轮和大佬们的讨论和 review,design 方案最终敲定。


  • Implementation 阶段:都说细节是魔鬼,一点都没错!虽然 design 方案 review 的时候已经进行了通盘考虑,但在实际实现过程中还是出现了很多预料之外的问题,比如连接池连接数设置不当引发的性能问题,服务上下线过程中节点的健康检测报警问题等等。在逐一解决具体问题的过程中,我也对分布式架构有了更加深刻的理解。


  • Testing 阶段:单元测试 → 集成测试 → 压力测试 → 线上灰度测试 → 线上全量测试,在做单元测试和集成测试的过程中,我也是再一次体会到了测试驱动开发(TDD)的重要性,尤其是在面对复杂系统的时候,在开发之前就要想好怎么测试,在开发过程中就要为提升测试的便捷性做准备,这样才能做到心中有数,胸有成竹,稳操胜券。而我也是因为在一开始没有提前考虑这一点,才导致中途踩了很多坑,这可是熬夜的教训啊!


  • Launch 阶段:因为在 design 阶段就已经预先做好了规划,因此过程还算顺利:上线时分步走而不是一蹴而就,同时设置 weblab 开关,必要时一秒回滚,将风险控制到最低。同时,观察关键的监控指标,具体包括技术指标和业务指标两个方面。技术指标主要包括接口时延、服务器数量、服务可用性、CPU 和内存利用率等等。业务指标主要包括库存计算结果的准确性。通过对架构升级前后的上述指标进行比对,从而评估架构升级带来的提升有多大。


  • Summary 小结:最终结果也确实令人欣喜,服务器数量降低 60%,CPU 核数降低 80%,库存计算结果准确性提升 30% 以上,接口延时与之前持平。更重要的是,服务具备了之前所不具备的横向扩展能力,可以支撑更大量级的业务发展。我也因此得到了公司级别的表彰。


  1. 电商搜索系统重构

虽然重构本身也属于技术驱动的事,但我在此项目中主要负责制定衡量电商搜索系统优劣的标准,以此作为评价当前系统的准绳,并作为未来技术选型的参考和迭代优化的指南。我认为这件事本身更偏向业务一些。


我想分享的是,软件工程师也要有业务视角,也要有产品思维,这对于大多数软件工程师的职业发展来说都是至关重要的。当职业生涯发展到一定的阶段,我们需要的将不再仅仅是接收任务,完成任务,更重要的是发现问题,定义问题,并最终解决问题。这个问题可以是业务问题,也可以技术问题,还可以是管理问题等等。


而我的成就感来源就来自于我意识到自己的转变,还有什么事比确认自己的成长更令人感觉有成就感的吗?也许有,但一定不多。


以上。


我是 Java 工程师蔡姬,期待和同路人有更多的交流和思维碰撞!

发布于: 刚刚阅读数: 5
用户头像

还未添加个人签名 2020-07-28 加入

还未添加个人简介

评论

发布
暂无评论
写作行动营打卡02_21 天技术人写作行动营_Java 工程师蔡姬_InfoQ写作社区