作者:京麦研发 李泽阳
引言
2021年毕业于中国科学院大学,作为校招新力量入职京东,目前主要负责商家内容资讯和商家AI智能助手。
工作中追求做实事,做有价值的事,乐于技术分享,撰写的文章多次在京东云、京东零售技术传播。先后获得部门年度卓越员工、618卓越个人、京东技术品牌影响力新星。
生活中喜爱马拉松跑步和旅行摄影,找不到答案的时候,就去看看这个世界。
本文主要讲述了作为应届毕业生从校园到职场,黄金三年的进阶之路。非常荣幸有机会与大家交流转变心得,分享作为后端开发工程师的成长经验。
个人成长经历
对于刚接触或者即将接触工作的同学们来讲,下面的经验能够帮助你们更好的的适应职场生活。
从零做起,稳抓稳打
作为新人,融入新职场,会有很多困惑和烦恼。
不受重视、能力不强、旧代码坑这么多,沟通无果......
要理性看待这些烦恼,刚融入团队,需要一个建立信任的过程。每个人都有自己擅长的领域,可以是沟通达人、可以是技术宅喜欢看源码、可以是前沿技术狂热者,不妨从小事做起,当我们把一件一件事情做好之后,可以尝试主动沟通尝试更多重要的任务。要相信,所有的团队都是希望每个人都更快的成长。
刚入职场,在团队中可能并没有派发很多的开发任务,怎么办?
不妨先让自己忙活起来。比如应用服务有很多告警,先去看一下告警的业务场景是什么?去看日志是什么原因,能不能解决?项目前端没人做,不妨尝试自己去学习,去写前端页面。可能没有导师指派或者安排你去做,但如果你有精力,就用心做起来,这些都能够体现出你的价值,也能够让自己快速成长,拓展自己的知识面,更快融入团队,所以让自己忙起来,去主动承担更多事情。
当看到原来的代码逻辑不合理,但是不知道要不要重构,怎么办?
其实这部分代码线上就在正常的运行着,先不要着急想着推翻,尝试思考如何用更好的代码去优化,去微重构。在开发的同时,最好也能够沉淀出文档,虽然“代码就是最好的文档”,但是也许你自己写的代码一年后再去看,也不一定能记得清楚里面的逻辑,更何况同事或者新人呢。
对接上下游同事、跨部门沟通总是受阻,有问题不敢问,怎么办?
此时的你情绪最好压制一下下,沟通受阻可能是双方认知不匹配或者沟通不及时导致这样的结果,尝试换位思考,清晰理出沟通话题的重点。保持好奇心,勇敢地提问,你的同事们都会很乐意为你解答,毕竟都是从这个阶段走过来的。记住,沟通中的眼神交流很起作用,毕竟,交流的成本是最低的。
京东商家大会:第一次封闭经历,为用户体验保驾护航
还记得刚进入京东第一段封闭开发的经历,2022年4月份组织架构调整,刚接手一个系统,7月份接到业务承接京东商家大会直播的需求,我们梳理了系统现状和薄弱点,识别到该系统已经发展7年,架构设计老旧,无法承接现有商家量访问流量高峰,通过小组一致讨论,决定对该系统进行了重构。
我们从基于业务领域定义边界和控制变化:
(1)定义边界:
用真实的业务概念划分职责,目的是实现一个效率高、成本低、易维护的系统。
(2)控制变化:
示例:
•PRD评审反复解释的名词?->统一语言
•随着业务发展,系统越来越膨胀?-> 业务抽象
•微服务架构垂直方向上的变化如何控制?->问题域划分
系统的演变会使开发混乱度不断增加,使得系统难以维护。
通过领域建模来引导我们思考,提供系统设计的方向、规范开发流程,要求我们必须站在用户需求和业务发展角度,考虑实现成本、模块职责,进而降低变化带来的不确定性,增加稳定性。
改造前的架构:
•系统架构不合理:代码架构老旧、遗留bug多、核心应用未实现前后端分离、对新人不友好
•应用划定不清晰:中心端能力发散、代码像网状交织在一起,研发很难缕清楚各个逻辑之间的依赖关系
•站点部署不合理:多套代码分支部署,已无法合并;重复代码重复部署,重复能力应用过多
改造后的架构:
•划分领域边界:业务逻辑以业务域形式划分,通过统一模型、业务身份、领域服务和领域能力拆分微服务,高内聚低耦合
•控制变化:差异化逻辑以扩展点方式抽离出来,垂直业务之间相互独立,通用能力(水平业务)下沉
那时的我,刚入职不到一年,正是敢想敢做的阶段。从0到1学习领域驱动DDD思想,与业务、产品统一语言,多次沟通业务发展形态、无数次小组成员开会讨论确定领域建模、涉及直播上下游跨部门日会沟通、多次联合压测......当时封闭的两个多月,每天干到下半夜,周末也不间断,只为最好的系统流畅、用户体验。记忆犹新的是,当时提测通过的那一瞬间,真的落泪了,感受到了重构的不容易和艰辛。值得庆祝的是,最终保障了线上线下商家大会的顺利举行,所有的付出都是值得的。
拒绝浮躁,追求完美
程序员在互联网的流传中似乎变成了青春饭,也许这完全就是一种对程序员职业的表面理解。造成这种情况的原因就是编程变得大众化,编程的简单化造就了大量平庸的程序员,让做开发变得和搬砖一样,失去了创造力。
保持谦虚:随着时间沉淀,你会逐渐对业务越来越熟悉,排查问题起来也游刃有余,当有新同事或者不熟悉业务的同事向你咨询问题,请不要戴上“有色眼睛”、有意建立边界和部门墙。作为业务驱动型公司,行业瞬息万变,我们要始终保持谦虚心态,清晰自身定位,思考长期的价值,而不是安于现状,原地退步。要习惯问自己为什么?技术上能不能再优化?业务上能不能再增长?多想一步,长足进步。
啃硬骨头:要成为优秀的程序员,没有打过硬仗是不行的。现实中工作,很多时候都是一种低水平的重复造轮子,不管三七二十一,别人怎么写我就怎么复制粘贴。后端开发需要更注重技术能力,而不是浮在表层,只做简单的CRUD。开发一个接口,也会衍生出命名规范、参数校验、监控/性能、日志、异常/超时、降级/限流、安全等问题。
记得电影“长津湖”中有一句经典台词:一个蛋,如果从外面敲开,注定被吃掉,你要是自己从里面自己啄开,没准是一只雄鹰。去尝试突破自己的舒适圈,打破瓶颈,比如去阅读Tomcat源代码,虽然过程非常非常费劲,但坚持下来就会看到技术之美,终会海阔天空。
618/双十一大促备战:事无巨细,精益求精
每年在京东,3月开始备战618,9月开始备战双十一。我们会复盘往年双十一和当年618不足点,分析新的变化和挑战点。
上图是一套备战流程图。备战备什么?梳理核心流程,找出薄弱点,对薄弱点进行具体优化,同时协调压测对优化结果进行验证。优化和压测是一个反复的过程,两者互补互成。并且通过实际演练去验证核心流程的稳定以及突发情况的处理,比如降级开关,防止实际情况发生的时候准备好的功能不可用。最后必须进行复盘,这次备战哪里做得好哪里还有漏洞,复盘更有助于快速定位问题、总结自己和他人的教训。
每一次大促备战都是一次挑战,需要优秀的团队合作、客户为先的第一优先级、高度负责的技术实战意识。再大的系统也可能因为一个空格、一个监控、一个锁导致崩溃,这要求我们戒骄戒躁,不能放过任何一个以小破大的漏洞,正如墨菲定律中的规则——可能出错的事总会出错,如果你担心某种情况发生,那它就有可能发生。大促我们不要高看它,但出现的问题不要小看它。正如毛主席语录所写:团结、紧张、严肃、活泼。
持续学习,自我革新
步入后端,制定符合自己的技术路线是有必要的,切勿认为从学校出来后,理论知识就学完了。定义不同的职业阶段并不是圈住发展,而是从新人到专家,这个过程确实需要时间的磨练和积累。每个人都应该有自己的职业规划,思考自己的将来与发展。
多练、多想、多学。软件行业是一个变化非常快的行业,各种框架层出不穷,这些东西不是靠课堂学来的,自学是不断完善自我的唯一方式。既然选择了这条道路,有了一定基础之后,便要带着思考和问题去主动学习。
追求的道路是枯燥的,例如对HTTP协议的学习,虽然HTTP对于前后端都很重要,但是当问及协议header的作用是啥,也许会回答不上来,这不是学习。真正的理解是适应场景,在场景中去体验,而最好的场景是工作,在测试环境去看看效果,去把HTTP读懂,不要满足的简单的例子调用。
当到达一定阶段之后,很难保持激情,也很容易放弃,请不要放弃!去合理安排时间,抓住核心部分,把握机会,最重要的心态要好,这是一个长跑的过程,“剩”者为王,坚持到最后你就是王者。
商家AI智能助手:突破边界,探索未知
2022年11月,美国人工智能实验室OpenAI正式推出对话AI模型:ChatGPT。因其极其出色的文本生成和对话交互能力在世界范围内迅速走红,五天内用户破100万,两个月用户破亿,写论文、写周报、写代码……
从23年下半年,我们准确把握AI趋势和风口,清晰看到商家在经营过程中的痛点:规则/手册信息冗杂,商家获取信息成本高、检索困难;智能客服智能程度低,无法回答个性化问题;跨系统操作复杂,商家核心经营环节分散在不同的系统模块,操作不易找、链路长、耗时高。
如同创业公司一样,我们从0到1组建了大模型研发团队,打破传统的业务需求思维方法,多方面学习关于大模型知识和行业竞品特点,搭建了通用助手平台和系统架构,定义了开放协同的流程规范,创新出多篇发明专利。
新技术的探索是未知的,一开始我们对GPT理论一无所知,通过持续学习和紧跟行业前沿技术,到搭建通用、灵活、具有扩展性的系统架构,经过三个季度的发展,我们的系统架构经过不断调整和重构,已经到了“3.0版本”,具备灰度、权限控制、限流降级、监控埋点等全链路保障。尝试突破边界,不要仅局限于程序员视角分析问题,去挖掘去享受这一过程,无畏挑战,超越自我。
总结
最后,用一个故事总结今天的文章。
谷歌工程师霍尔斯,发现普通机器会宕机,衔接不好,用户体验不好,所以带领学生实现热迁移和动态高可用方案,监控到流量转移的完全自动化。这种创新技术带来了巨大的商业价值,就是使用廉价的机器代替高稳定性的贵的服务器,并且可以提供同样的可靠服务,大大降低了互联网企业的运营成本。而且这种技术然后扩展到其他互联网公司,包括中国的BAT,这个技术和谷歌的MapReduce和BigTable奠定了互联网高速发展的基础。
不是每个程序员都能够成为天才程序员,但每个程序员都应该有一颗走向天才程序员的心,即使得不到太阳,你的努力也会得到一个月亮。
还有!好消息!京东2025校园招聘活动已全面开启,多个岗位,多地职场,选择更多!如果你对我们的团
队和工作感兴趣,欢迎加入我们。我们将提供丰富的职业发展机会和成长空间,期待与你共同成长、共同进步!
社招岗位同步火热招聘中,我们不仅有丰富的多端业务场景,包括Android、IOS、PC客户端、WEB端,还有更多的AI助手、AI场景应用等多个机会。base:北京京东总部1号楼,岗位:PC客户端工程师、APP开发工程师,邮箱直达:jingmai@jd.com,欢迎投递!