“前端”工匠系列(二):合格的工匠,怎么做好价值落地 | 京东云技术团队

news2024/11/24 14:10:08

一、“技术鄙视链?”

如果你是一个技术人,相信都知道技术圈有个相互的鄙视链,这个链条从技术人自己认知的角度在以业务价值为中心嵌套的一层一层的环,就像洋葱,具体的描述这里不赘述了。

出门左拐随便抓住一个人问一下。这种偏自嘲类的观点,有点类似"程序员的穿着必须是格子衫"、"你们只会和电脑打交道"这种自嘲。开心一下,无可厚非。但是在玩笑之外,一个合格的技术人的内心要时刻谨记自己在一个企业内的价值所在,并不断的通过技术提升来扩大价值,才可以在当下的环境中,个人价值与企业价值形成正向循环。那我们此次就聊一聊,前端职能如何在不同的业务场景中落地价值。

二、“技术人,你有价值吗?”

说到业务价值,有一个关键词,就是"特定的业务背景"。有人会说,技术就是技术,是通用的,为什么要把业务的概念引入到技术价值中呢?我对这个问题的回答也相当简单:技术本身没有业务属性,但是技术人所处的业务环境,从而决定了技术人此时此刻应该为环境提供什么类型的价值输出。

对于前端领域的岗位职责,如前文(《“前端”工匠系列:合格的工匠,究竟该搞什么(一)》),“它的岗位角色更应该关注’采集和呈现‘两个部分”,这种职能定位就决定了它在具体业务场景中的价值定位。

首先,从粗粒度进行大维度的划分,B端和C端来先划分一刀。国内外从岗位招聘、岗位定位到OKR制定、绩效评估,都要先从端类型来做最起码的区分,原因是B端和C端对于前端技术栈、技术深度及输出价值的要求都是不一样的,甚至B端的研发人员对于原生、多端等研发领域并不熟悉,如果有岗位的调整,会有一段比较长的技术切换期的,根据人员软素质的不同,这段时间从1个月到一个季度不等。

B端研发是什么?

B端通常指“Business端研发”,但当前很多企业对B端研发的岗位职能描述也包括了A端(即业务管理员Administrator)的研发,这样囊括也是有道理的,A端和B端的共同特点是大部分业务都是“以PC浏览器为运行时环境,基于Web技术栈的企业级后台管理系统”来运作、赋能具体场景。

至于B端研发人员的技术价值,根据业务领域不同,可以切为企业级应用(如飞书、腾讯文档)、商业化解决方案(toB、toG的业务,比如一些企安类业务和商业化业务)、业务后台管理(辅助C端业务逻辑的管理后台)等细分方向,前者用于商业化变现,所以这些后台项目对用户体验有一定程度的要求,其他的B端业务对体验和性能的要求都是相对较低的。

C端研发是什么?

C端也称为“客户端(Client)研发”,从技术岗位要求维度可以细分为端侧研发(IOS、安卓、鸿蒙)、H5研发、小程序研发等。

很明显,维度划分的依据是代码运行容器,那么存不存在“一次开发,多处运行”的研发方案呢?这就产生了多端研发这个岗位角色,对应的技术栈是React Native、Flutter、Taro等为代表的解决方案,由于各自对多端的实现方案不同,导致了各自有各自的优劣势,具体的选型,要研发团队根据业务背景以业务属性(是否对特殊端侧有倾向)、团队成本、维护成本、研发效率、社区活跃度、未来技术栈的持久性等维度来做最合适的技术选型。

因为C端的输出直接面对用户,而且用户量级大,因此C端页面对于设计、交互、业务可用性、用户体验是否良好等专项指标都有很高的要求,因此,在技术型企业,一些企业对于其中的每个专项都会有一批人在做专门的优化提升处理。

以下分研发阶段对C端研发的关注点进行简述。

  • 设计阶段:研发人员需要对设计稿件、UI切图的合理性更加关注;
  • 研发阶段:研发人员需要有更频繁、更合理、更清晰的代码注释;
  • 提测阶段:提测前,研发人员需要保证用例冒烟质量,提测后,研发人员更加关注千行代码bug率这种质量指标;
  • 上线阶段:研发人员需要保证上线流程的切实无人化、自动化和日志详细程度,因此,CI/CD的上线流程中每个阶段的处理脚本都必须完全严谨和可用;
  • 上线后:研发人员需要通过监控、告警和日志平台,对线上代码在用户设备端的运行状况进行监控。如果出现异常运行,研发人员需要及时被告警平台告知、根据SOP对线上故障进行合理处理及时止损,修复后bugfix上线;

以上只是简单论述了B端业务和技术对研发人员基本素质要求的差异。基于以上的业务背景,以下分别从技术角度、人力资源角度及团队能力设计的角度进行阐述怎么做好相应的工作。

三、“B端,怎么做好?”

如果你在做业务交付类的B端研发工作,做好业务支持后,想办法通过"低代码"或者"零代码"的方式进行更加高效、高质量的交付。

具体的实现方案有很多,比如AntDesign、FusionDesign以及很多商业化的Design们,实现思路就是基于业务场景,建立一套通用的、可复用的物料组件,在业务交付的时候,只需要对物料进行拼装组建即可,有些想乐高积木,但是这种Design们对于应用场景的要求是比较高的,如果你想用这种方案(尤其是业务场景比较复杂,只能用低代码方案),就要进一步思考物料间的数据通信、UI通信等问题,甚至需要随着业务物料的发展去迭代DSL解析引擎。

对于前端人员来说,启用初期的搭建的效率反倒是降低的,但如果用起来,用的越久,沉淀的物料就会越丰富、与场景的匹配度越高,交付效率也越高。但从成本的角度,一部分研发成本也会转嫁到后端服务的封装度提升、合理性提升,整个的业务交付就会向搭建驱动的角度倾斜,综合成本的降低需要结合整体研发交付的维度来考量,但如何考量、考量口径是否合理、是否可落地,每个研发团队就要"八仙过海,各显神通"了。

但是B端业务交付的低代码方案的选型,从人力的角度,只要做好数据和代码安全处理,采用“搭建+外包”的方式是完全可以应对的。

如果你在做商业化的B端产品的研发,那就要更加偏向产品诉求,不断的与产品、客户进行沟通调研,甚至要去现场沟通去发现用户使用产品过程中遇到的真实体验和功能问题,从而不断做好产品迭代和优化。"低代码"和"零代码"的提效方案只能作为产品孵化的工具,但具体能不能用起来,就要自己评估了。

四、“C端,怎么做好?”

如果你在做C端产品的交付,那你应该关注研发流程的顺畅度和合理性,研发环境、测试环境、预备发布环境以及线上环境的代码隔离、数据隔离、发布隔离是否良好,坚决避免环境污染导致业务异常或者工作量激增;

你应该关注UI设计稿件的还原度、动效效果是否顺滑、页面加载效率是否良好、Crash率是否达标、埋点是否正常上报。

这里值得提一下的是埋点这个事儿,对于C端业务,需要有专门的工作来处理埋点工作,埋点工作的质量直接影响到功能需求上线后业务是否可以拿到正确的用户数据,进而做出业务的运营策略调整。所以,埋点质量这个工作的成本投入是必须的,也是应该受到研发团队重视的。否则,就会出现,明明功能没问题,也没有客诉,但是,业务因为拿到了错误的用户行为数据而不自知,却先入为主的认为自己的策略太"哇塞"或者太"喔去"的结果。如果根据错误的埋点做出了错误的决策但是不自知,对于业务价值的影响是巨大的,更加严重的事,很久以后你发现错了,最佳业务的时机,早就白驹过隙,飞逝而去了。

如果你在做C端基建工作,恭喜你,你可能已经离很多研发人员羡慕的架构师的岗位很近了。

你需要关注技术栈的选型、物料及组件建设、活动搭建平台、设计智能交付、多端编译、渲染引擎等离业务更远但离技术更近的话题,每一项都充满了挑战,每一项达成都能给你更多的成就感。但是,因为离业务更远,就要避免"自嗨"的情形出现,你要少一些年度规划,多一些技术用户的痛点调研行程的季度规划和OKR,只有让自己的技术孵化落地到具体的业务场景中,你的技术价值才能得以体现。

五、“价值,价值,还是价值”

请各位技术人时刻谨记,如果你的代码不上线、如果你的代码没有经受住用户的使用考研、如果你没有关注代码上线后的质量和功能的相关告警、如果你不关注业务和用户行为数据,那你的工作价值就会大打折扣,甚至,没有价值,因为,你和一样工作方式的那个谁,对于业务的正常运转来说,没有区别。

来源:京东云开发者社区

作者:京东零售 刘伟东(未经授权请勿转载)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/539584.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RabbitMQ应用问题——消息补偿机制以及代码示例

RabbitMQ应用问题——消息补偿机制以及代码示例 RabbitMQ应用问题 消息可靠性的保障 消息补偿机制 详细说明 这里使用了简单的代码进行演示,订单的消费者没有写,在订单的消费同时,发送一条增加积分消息到积分队列。 详细流程途中都有注明…

STM32+ov7725+ESP8266实现无线图传-完成上位机图像显示

一、需求 stm32f407探索者开发板和STM32F103ZET6战舰开发板。接正点原子ov5640、OV7725、OV2640摄像头,通过esp8266Wi-Fi模块(透传模式)将摄像头采集到的rgb565格式图片通过tcp/ip协议上传到上位机显示。 二、设计思路 【1】使用QT开发上位机,建立TCP服务器,接收ESP8266…

DistilPose: Tokenized Pose Regression with Heatmap Distillation

论文名字:DistilPose:使用热图蒸馏的令牌化姿势回归 论文地址:2303.02455.pdf (arxiv.org)https://arxiv.org/pdf/2303.02455.pdf项目地址:yshMars/DistilPose: Implementation for: DistilPose: Tokenized Pose Regression with…

科幻风的卡片视频播放

上一篇博文展示了卡片中的VR展示&#xff0c;那篇主要是卡片的3D转动来展示未显示的部分图片。这篇&#xff0c;我们来点科幻的。 我们在卡片中播放视频的同时来拖动卡片或转动它。像下面那样&#xff1a; 这个主要依赖了两个库&#xff0c;具体代码如下&#xff1a; <!D…

智能问答支持自定义问答

# -*- coding: utf-8 -*- # Time : 2023-5-12 14:15 # Author : shenzh # FileName: chat_bot_v1.py # Software: PyCharm """Description:一期智能机器人设计完成&#xff0c;支持自定义问题和答案随时增加功能""" import json import jie…

NOV Diagram for .NET Crack

NOV Diagram for .NET Crack 增加了对Microsoft.NET 7.0的支持-NOV现在完全支持.NET Core 7.0&#xff0c;此外还支持Microsoft.NET Framework 4.7.2、.NET Core 5.0和.NET Core 6.0的内部版本。 添加了对读取Microsoft Visio 2003-2010绘图(VSD文件)的支持。 改进了SVG导出。 …

哈希表应用——位图

应用场景&#xff1a;海量数据处理&#xff08;这里的海量是指一般数据量非常大如以亿为单位的数据量&#xff09; 目录 面试题 位图概念 位图的实现 位图的应用 应用一 应用二 位图应用变形 面试题 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&…

Java之多线程进阶

目录 一.上节内容复习 1.线程池的实现 2.自定义一个线程池,构造方法的参数及含义 3.线程池的工作原理 4.拒绝策略 5.为什么不推荐系统提供的线程池 二.常见的锁策略 1.乐观锁和悲观锁 2.轻量级锁和重量级锁 3.读写锁和普通互斥锁 4.自旋锁和挂起等待锁 5.可重入锁和…

精彩回顾 | Fortinet Accelerate 2023·中国区巡展厦门站

Fortinet Accelerate 2023中国区 5月16日&#xff0c;Fortinet Accelerate 2023中国区巡展来到魅力“鹭岛”——厦门&#xff0c;技术、产品和业务专家&#xff0c;携手亚马逊云科技、唯一网络等云、网、安合作伙伴&#xff0c;与交通、物流、金融等各行业典型代表客户&#x…

GPT大语言模型Vicuna本地化部署实践(效果秒杀Alpaca) | 京东云技术团队

​ 背景 上一篇文章《[GPT大语言模型Alpaca-lora本地化部署实践]》介绍了斯坦福大学的Alpaca-lora模型的本地化部署&#xff0c;并验证了实际的推理效果。 总体感觉其实并不是特别理想&#xff0c;原始Alpaca-lora模型对中文支持并不好&#xff0c;用52k的中文指令集对模型进…

信息安全工程实验——口令攻击和钓鱼攻击(自用)

目录 实验目的 实验原理 实验内容 练习1windows口令破解 1、基本操作 2、思考与总结 练习2&#xff1a;QQ 邮箱的钓鱼攻击 1、构造钓鱼页面 2、接收钓鱼所得的账号和密码&#xff08;分档&#xff09; 3、实验验证 4、思考与总结 实验目的 &#xff08;1&#xff09…

网络安全实验——信息收集与主机发现

目录 实验目的 实验原理 实验内容 1.信息搜集 1.ping探测 2. Nmap扫描 3. 探测总结 2.主机发现程序开发 3.主机发现 实验总结 实验目的 1.了解信息搜集的一般步骤。 2.学会熟练使用ping命令。 3.学会利用Nmap等工具进行信息搜集。 4.了解IP助手函数。 5.掌握Sen…

Python学习29:存款买房(B)

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬ 你刚刚大学毕业&#xff0c;…

李莫愁给张无忌朋友圈点赞?详解SpringBoot事件机制

Spring Boot的事件机制是基于Spring框架的事件机制实现的。Spring Boot中的事件机制可以让我们在应用程序中监听和响应特定的事件&#xff0c;例如应用程序启动、关闭、上下文刷新等。 接下来&#xff0c;我们通过一个案例&#xff0c;来讲解具体怎么使用。 这个案例就是李莫…

一文看懂增值税发票识别OCR:从技术原理到 API Java 示例代码接入

引言 增值税发票识别OCR API是一项重要的技术创新&#xff0c;它在如今信息化的商业环境中发挥着重要作用。通过利用该API&#xff0c;企业和机构能够实现增值税发票的自动化识别和信息提取&#xff0c;从而在财务管理、票据核对、报销流程等方面带来许多好处。 本文将详细介…

Istio virtual service 超时和重试

在使用xshell去远程连接服务器的时候没有反应&#xff0c;这样可能等了几分钟&#xff0c;这样按下crtlc终止就行了。 有些时候微服务是多个服务组成的&#xff0c;a服务会去调用b服务&#xff0c;可能因为网络问题或者连接问题&#xff0c;没有连接成功&#xff0c;那么会尝试…

怎么把音频的声音调大?

怎么把音频的声音调大&#xff1f;我们平时会经常使用到音频文件&#xff0c;但声音大小不一&#xff0c;可能会让我们感到不适应。如果太大&#xff0c;甚至会使人吓一跳&#xff1b;如果太小&#xff0c;则难以听清楚。为了轻松聆听音频&#xff0c;我们需要将声音调整到合适…

ConvNeXt网络详解,最新ConvNeXt结合YOLO,催生YOLOv5目标检测巨变

目录 引言一、ConvNeXt的介绍1、目标检测的重要性2、YOLOv5的介绍3、ConvNeXt原理和特点4、ConvNeXt结构 二、相关研究综述1、目标检测的基础原理和流程2、YOLOv5的特点与局限性3、ConvNeXt技术在目标检测中的应用现状 三、ConvNeXt在YOLOv5中的应用与改进1、安装PyTorch和torc…

什么是栈,为什么函数式编程语言都离不开栈?

文章目录 一、什么是栈&#xff0c;什么是FILO二、栈的作用是什么&#xff0c;为什么编程语言函数调用都选择用栈&#xff1f;三、使用C模拟实现解析栈1.结构体的定义2.栈的创建及销毁3.实现入栈操作4.获取栈顶元素及出栈操作5.获取栈中有效元素个数 源代码分享 一、什么是栈&a…

临时被拉去已经在进行中的项目组「救火」,该怎么开展管理?

当你被临时拉去参与正在进行中的项目组&#xff0c;需要进行所谓的「救火」工作时&#xff0c;你需要注意的是如何开展管理&#xff0c;以确保项目能够成功完成。 首先&#xff0c;你需要了解项目的当前状态。了解项目的进展情况、目标和计划&#xff0c;以及团队成员的角色和…