龙空技术网

聊聊我在淘宝的成长公式和业务思考

技术联盟总坛 59

前言:

现时兄弟们对“淘宝算法工程师”大体比较重视,小伙伴们都想要知道一些“淘宝算法工程师”的相关文章。那么小编同时在网摘上搜集了一些关于“淘宝算法工程师””的相关内容,希望我们能喜欢,大家一起来了解一下吧!

谢鑫(若明) 大淘宝技术 2023-07-10 16:41 发表于浙江

我们新推出大淘宝技术年度特刊《长期主义,往往从一些小事开始——工程师成长总结专题》,专题收录多位工程师真诚的心路历程与经验思考,覆盖终端、服务端、数据算法、技术质量等7大技术领域,欢迎一起沟通交流。

本文为此系列第六篇内容。

第一篇:负责淘宝业务前端开发9年,聊聊我的心得

第二篇:“技术开发最应该做什么?”,聊聊我在服务端开发5年的理解和收获

第三篇:聊聊我在淘宝做性能分析的经历

第四篇:聊聊我做NeRF-3D重建性能优化的经历

第五篇:聊聊我在店铺开放域做性能优化的体会

前言

作者在进入阿里前从事于某三方服务公司负责PUSH产品的技术研发工作,基于自研长连接通道实现终端设备(Android/iOS/IOT等)消息推送能力,并将能力打包成SDK为市面数千款APP提供服务,帮助终端用户能够及时接收到APP消息提醒。除服务于各类APP外,也为三星和坚果(锤子)等厂商实现了移动设备系统内置的消息推送服务,一直沿用至今。

自2021年初加入阿里以来,我一直负责淘宝长连接技术产品ACCS(阿里云通道服务)的体验优化与架构升级工作,在不断完善技术产品的同时也帮助诸多淘宝业务体验变的更好,过程中受益良多。本次受邀沉淀个人年度总结,恰好借机分享本人关于工作与个人成长上的一些思考,希望各位读者能有所借鉴之处。

个人成长

每个岗位都能够套用的成长公式。

在保障工作内容完成的前提下,如果还能收获到个人能力上的成长,那再适合不过了。但大厂中较少有机会重新定义或彻底重构一个产品,那么要如何保障在日常工作中也能一直收获个人成长,我在这个问题上思考数久,最终沉淀了一套公式:

个人成长公式

整体公式的主线是借助工作中的挑战提升个人能力,我对个人能力的理解是:定义和解决问题的能力。只要把自己、主管和二级主管放到同一个问题面前,思考三者分别会如何处理同一个问题,就可以总结得出以上结论,同时这也可以最快速找到个人成长的方向,即JobModel。下面详细介绍这套成长公式:

底层逻辑:成长过程是长期持续的,必须要先明确支撑自己前行的内在动力,即内驱力,内驱力可以是更高层级、更高收入、行业兴趣或成就感等;产品、技术思考:工作上不只是被安排完成某项需求,可以基于自己立场出发,思考所负责产品未来要“去的地方”,围绕一个远大目标开展相关工作,但实际工作开始前跟老板沟通确认好,必要时相信有更高几率做出正确选择的人;定义问题:这一步其实是最难的,往往都是遇到bug,然后针对性解决就好了。定义问题就是围绕我们要达成的目标,需要解决哪些事情,将现象定义成问题并量化它。就像在王者荣耀中,我们团战打不过敌方是一个现象,定义为问题的话可能是经济落后xxx、等级落后xxx和装备落后xxx等;解决问题:工作中每天可能都在解决不同的问题,所能解决的问题也可以体现出个人能力目前具体成长到哪个阶段了,在这个过程中有一些催化剂可以加速解决问题的过程,比如说老板提供了一种新思路比自己想了一周的方案还更好,又或者方案评审被指出了一些bug等。另外,问题可以是解决80%,也可以是100%解决,这就取决于个人工匠精神与极致追求;衍生思考:在解决单点问题后,可以继续思考是否还有其他解法,具备多套方案后,再从整体架构视角审视每个方案合理性,继而选择最优方案;数据验证:只有通过线上用户的真实数据反馈,才能验证问题是否有效得到解决,有效性验证取决于线上用户规模,基于10w DAU和亿级DAU的数据结果是无法相提并论的,这也是大厂给我们个人成长提供的环境优势;同时数据结论也是我们工作结果最直接的展示形式;总结:经过思考、问题定义与解决以及数据验证后,系统性回顾整个过程中的个人收获会有一定的满足感,但更多应该反思其中不足之处,比如数据验证过程发现问题并没有一次性解决,那么下次遇到类似问题的话可以如何更高效的应对。阶段性任务完成后系统性看待自身工作上的不足、查缺补漏并沉淀为我们宝贵的经验,将不断升级我们的思考模型,从而影响后续看待问题的方式。

从“产品技术思考”到“总结”这6步可以帮我们系统性的看待产品问题并高质量完成工作内容、拿到结果,且其中每个阶段对个人而言都能有所提升。但个人成长的方向有很多,很容易走偏,我的建议是阶段性与当前岗位JobModel下一层级做对比,谦虚的看待自身现有不足并套用“个人成长公式”不断补齐短板,一步步地完成进化。

业务思考

曾看过很多大佬优秀的业务思考,但鲜有人谈论为什么要思考业务,之所以思考是否就只是为了找一些下个财年的能做的事,在这儿谈谈我个人的理解。

业务思考的意义:提升产品体验。不断探索业务形态、解决问题或运营效能提升等常见工作内容,最终目的都是把我们的产品以更好的形态交付到用户手上,因此用户使用产品的实际体验提升是我们最大的价值,也是业务思考的意义所在。而且不同层级的同学们都应该参与到业务思考中来,其实在我们小学的时候就学过《画杨桃》,不同位置看待同一件事物的理解是不一样的。

二年级下册课文《画杨桃》

业务思考的底层逻辑:社会责任感。文章第一部分个人成长公式中“产品技术思考”部分,之所以将其放在所有action的前面,就是为了防止所做之事与当前产品毫无关联。我们在完成工作任务和提升个人生活品质之外,基于业务思考开展的工作中带来的产品体验提升、服务器成本优化和技术架构升级等甚至是科研性质工作,无一例外都在影响着他人,让社会变得更美好,这也正体现了工程师们的社会责任感。

业务思考的前提:明确业务形态和客户。只有在了解了自身业务与客户之后,我们后续才能基于业务场景痛点开展针对性的优化工作。以自身为例,我在进入阿里后一直负责淘宝长连接技术产品ACCS,ACCS是一条基础消息通道,衔接用户终端与云服务器且保持长时间在线,基于此通道,终端用户可以主动上行消息发送到云服务器,反之,云服务器也可以推送消息下行至用户设备上。大家日常使用的淘宝消息、淘宝直播弹幕和一些互动游戏如斗地主等,都是基于ACCS实现的。

淘宝消息、直播和斗地主皆是基于ACCS实现

在理清业务思考的意义、底层逻辑和形态后,可以基于「体验」和「技术」视角出发来思考要做的事情。下面还是以笔者所负责的产品ACCS为例进行说明:

面向体验的思考,寻找日常生活中与业务相类似的产品进行横向对比会更有体感。比如ACCS帮助业务实现了端与云双向消息收发能力,日常生活中类似产品就是送快递。快递员基于买家或商家发货诉求,不管天气环境恶劣(移动网络复杂性)、距离长短(消息时延)或快递包裹重量(消息数据包大小)等因素对我们带来的挑战,都要将快递成功送到家(消息到达率),在此期间可随时查看物流信息(可观测性)。以此提炼出ACCS为提升体验要持续优化网络技术、消息时延、通道质量和可观测性;

送快递与ACCS相似

面向技术的思考,基于技术价值出发,不断提升架构先进性和攻克技术难题。ACCS提供于APP使用,主要运行在终端系统Android/iOS上,系统多进程环境下交互本身就较为复杂且Android国内各大手机厂商都基于Google原生系统有不同程度的定制化实现,这就要求运行在终端设备的技术产品要适配各种差异性带来badcase;除原生系统带来的挑战外,ACCS还衔接了端与云之间的通信,端到端链路长且牵扯模块较多,往往需要进行架构上的调整才能有效解决问题。以此提炼出ACCS要做的有原生技术和架构设计;

结合以上面向体验与技术的思考,ACCS要做的事就清晰了:

网络技术:移动网络复杂性不言而喻,且协议上OSI七层网络模型中各层对网络数据的传输也存在种种限制,因此ACCS需要具备系统性的网络技术储备,包括但不限于自研应用协议、自研传输协议、厂商网络加速和动态降级原生标准协议等技术;消息时延:在保障消息稳定交付业务的前提下,做到最短时间交付,降低业务消息整体时延,支撑上层更多技术模型的开展,比如帧同步等;通道质量:持续完善消息通道传输质量、长时在线质量与建连质量,保障每个消息不丢、不重且不乱的交互至业务;可观测性:ACCS端到端整体链路较长,可观测性也是一大挑战。需要建设平台化日志分析以提升日常排查问题效率、唯一消息ID窜连全链路以实现链路追踪、整合关键数据报表以及完备各项数据指标异常告警能力等;原生技术:终端设备大多为iOS和Android系统,特别是Android在国内各大厂商华为、小米、OPPO和VIVO等均有不同层度的系统定制,且近年来厂商对APP的管控策略愈发严格,我们需不断沉淀原生技术来对抗终端复杂环境下的各类挑战,比如跨进程传输可靠性、线程休眠、APP后台断网和系统差异性适配等;架构设计:ACCS内部涉及数十个不同的端到端模块协同,全链路复杂度极高,优秀的架构设计(顺丰快递是一个很好的例子)可以帮助我们事半功倍的对抗种种挑战,如移动网络复杂性、原生技术兼容性、长时在线稳定性和上层业务多样性等;业务实践:业务使用体验对我们来说至关重要,即使消息通道本身没有问题,也要保障业务方能够正确的使用我们提供的服务。

在过去两年间,我们一直围绕以上七点开展相关工作,很荣幸与跟大家分享我们的一些成果:ACCS通道传输时延降40%、淘宝APP冷启动基本秒连以及淘宝消息/斗地主卡顿用户舆情分别下降40%/80%

总结

纸上得来终觉浅,绝知此事要躬行。

写文末总结时回顾了一下个人转正答辩ppt,在此分享下我当时的总结与业务规划。

以上规划A~D都已经实现,考虑到实际应用上的高风险故未实现规划E,后续还是基于现有工程不断的优化并陆续下线老代码。我进入阿里两年以来,一直沿用成长公式并将其融入到日常的工作中,在不断攻克工作中挑战的同时个人也收益良多,最重要的是亲眼看到我们客户的体验变的更加丝滑,也算是为社会发展贡献了一份薄弱力量。最后还是希望各位读者读到此处能有所收获,遇到挑战可以想想“如果不难,要你干嘛”。

团队介绍

我们是大淘宝技术-终端平台「体验技术」部。我们拥有世界最大的电商场景和一流的移动技术平台,打造着领先行业的技术产品,服务遍布全世界10亿+的消费者,处理每日千亿级的海量用户请求。

作为集团最重要的终端团队之一,我们负责淘宝核心技术建设、原生技术挖掘,包括但不限于客户端体验、厂商与系统技术、用户增长及移动平台。无论是基础设施、业务创新还是技术发展,我们团队都能为你提供巨大的机遇和成长空间,期待您加入。

标签: #淘宝算法工程师