当前位置: 首页 > news >正文

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

一、“技术鄙视链?”

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

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

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

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

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

首先,从粗粒度进行大维度的划分,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,只有让自己的技术孵化落地到具体的业务场景中,你的技术价值才能得以体现。

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

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

来源:京东云开发者社区

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

相关文章:

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

一、“技术鄙视链?” 如果你是一个技术人,相信都知道技术圈有个相互的鄙视链,这个链条从技术人自己认知的角度在以业务价值为中心嵌套的一层一层的环,就像洋葱,具体的描述这里不赘述了。 出门左拐随便抓住一个人问一…...

Oracle11g下载与安装

一、Oracle11g下载 官网下载地址:Oracle Database 11g Release 2 for Microsoft Windows (x64) 选择"Accept License Agreement",点击"win64_11gR2_database_1of2.zip"和"win64_11gR2_database_2of2.zip",进行…...

考研复试-软件工程

什么是软件工程?主要的方法?软件工程三要素?软件的生命周期?组成部分?软件过程的定义软件需求分析的任务软件开发过程的常见模型结构化设计方法,结构化分析方法软件测试的目的?分类?…...

软件测试选择题

下列选项中,哪一项不是软件开发模型(A) A、V模型 B、快速模型 C、螺旋模型 D、敏捷模型 下列选项中,哪一项不是影响软件质量的因素(C) A、需求模糊 B、缺乏规范的文档指导 C、使用新技术 D、开发人…...

有限合伙企业与有限公司的区别

1、设立要求不同: 有限合伙企业:根据《合伙企业法》设立,第61条规定必须由2个(包含2个)以上的合伙人出资设立,有限合伙企业合伙人中至少有一名是普通合伙人。有限责任公司:根据《公司法》设立&…...

从洛克菲勒思想中洞悉的财富秘密

超友们,早上好~ 🙆 今天我为你带来的分享是《从洛克菲勒思想中洞悉的财富秘密》,主要分为两个部分: 一、【洛克菲勒的 10 大底层心法】 二、【洛克菲勒工作的 6 大原则】 如何从贫穷通往富裕? 「始终把这…...

如何训练自己的大型语言模型

如何使用 Databricks、Hugging Face 和 MosaicML 训练大型语言模型 (LLM) 介绍 大型语言模型,如 OpenAI 的 GPT-4 或谷歌的 PaLM,已经席卷了人工智能世界。然而,大多数公司目前没有能力训练这些模型,并且完全依赖少数大型科技公司…...

Java中的SLF4J是什么?如何使用SLF4J进行日志管理

在Java开发中,日志管理是一个非常重要的问题。日志管理可以帮助开发人员更好地了解应用程序的运行情况,以及快速诊断和解决问题。而SLF4J是Java中最常用的日志管理框架之一。在本文中,我们将详细介绍SLF4J的概念和使用方法。 什么是SLF4J&am…...

PHP程序员面对的压力大不大?我来聊聊程序员转行的就业方向

作为一名程序员,不同领域、不同公司和不同项目所面对的压力程度可能会有所不同。但是,一般来说,程序员需要长时间专注于编写代码,需要不断学习和适应新的技术和变化,还需要在项目的压力下保证工作的质量和进度。因此&a…...

牛客网专项练习Pytnon分析库(十)

1.Python Pandas处理缺失值,以下哪个选项是对缺失值NaN进行删除操作(C)。 A.isnull B.notnull C.dropna D.fillna 解析: A选项,Isnull()返回表明哪些值是缺失值的布尔值; B选项,notnull()返…...

leecode654——最大二叉树

leecode最大二叉树 🌻题目要求: 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的…...

【笔试强训选择题】Day12.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录…...

边缘计算与开放源代码的完美结合

随着人工智能、大数据和物联网等技术的快速发展,边缘计算已经成为一种普遍使用的计算方式,尤其是在物联网领域。与此同时,越来越多的开放源代码项目也在不断涌现,这些项目为边缘计算提供了更多的选择和灵活性。那么,边…...

边缘计算网关在储能系统中的应用——提高储能系统的安全性和稳定性

随着全球能源消耗和环境保护意识的不断提高,储能技术逐渐成为了各国电力系统中的重要一环。而作为储能技术中的关键设备之一,边缘计算网关在储能系统中的应用也越来越受到关注。本文将从边缘计算网关的定义、特点以及其在储能行业中的应用三个方面来介绍…...

【FMC136】AD9467之4通道 250MSPS 采样率16位AD 采集子卡模块得设计原理图中文资料

板卡概述 FMC136 是一款4 通道250MHz 采样率16 位AD 采集FMC子卡,符合VITA57 规范,可以作为一个理想的IO 模块耦合至FPGA前端,4 通道AD 通过高带宽的FMC 连接器(HPC)连接至FPGA 从 而大大降低了系统信号延迟。该板卡支…...

抖音SEO矩阵系统源码开发(一)

抖音seo矩阵营销系统/抖音SEO矩阵号管理系统/抖音霸屏源码开发搭建,抖音官方团队大力推广抖音SEO生态,我们应如何布局开发抖音SEO矩阵系统,来达到账号排名优化的效果,很显然,账号关键词起到了很关键的作用。首先&#…...

Mysql实现对某一字段排序并将排名写入另一字段

文章目录 前言一、数据库表结构和样例数据二、排名操作1.普通排名2.无间隔排名3.有间隔排名 总结 前言 最近业务上碰到这样一个需求,需要对表按照某一个字段进行排序,并且将得到的排名写入对应的排名字段。这个需求于我而言确实没有遇到过,好…...

vector容器 [上]

目录 一、 对于vector的介绍 二、vector的定义 0x01 无参构造 0x02 构造并初始化n个val 0x03 使用迭代器进行初始化构造 0x04 拷贝构造 0x05 比较 三、 vector的遍历 0x01 push_back() 0x02 operator[] 和at() 0x03 遍历 四、vector 容量空间 0x01 max_size : 返回v…...

React Native技术探究:开发高质量的跨平台移动应用的秘诀

作为一个跨平台移动应用开发框架,React Native在开发过程中能够有效提高开发效率、降低开发成本、缩短上线时间,因此备受开发者的欢迎。然而,如何使用React Native开发出高质量的跨平台移动应用呢?本文将探究这个问题,…...

C语言函数大全-- w 开头的函数(2)

C语言函数大全 本篇介绍C语言函数大全-- w 开头的函数 1. wcstok 1.1 函数说明 函数声明函数功能wchar_t *wcstok(wchar_t *wcs, const wchar_t *delim, wchar_t **ptr);用于将一个长字符串拆分成几个短字符串(标记),并返回第一个标记的地…...

sizeof 与strlen的区别

sizeof 和 strlen 是C和C 中用于处理数据大小和字符串长度的两个不同的操作符/函数,它们的区别如下: 概念和用途 - sizeof 是一个操作符,用于计算数据类型或变量在内存中所占的字节数,它是在编译时确定的,与数据的…...

DAY 45 Tensorboard使用介绍

知识点回顾: tensorboard的发展历史和原理tensorboard的常见操作tensorboard在cifar上的实战:MLP和CNN模型 作业:对resnet18在cifar10上采用微调策略下,用tensorboard监控训练过程。 PS: tensorboard和torch版本存在一定的不兼容…...

理解世界如淦泽,穿透黑幕需老谋

理解世界如淦泽,穿透黑幕需老谋 卡西莫多 2025年06月07日 安徽 极少主动跟别人提及恩师的名字,生怕自己比孙猴子不成器但又比它更能惹事的德行,使得老师跟着被拖累而脸上无光。不过老师没有象菩提祖师训诫孙猴子那样不能说出师傅的名字&a…...

第18节 Node.js Web 模块

什么是 Web 服务器? Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序。 Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。 大多数web服务器都支持服务…...

使用阿里云百炼embeddings+langchain+Milvus实现简单RAG

使用阿里云百炼embeddingslangchainMilvus实现简单RAG 注意测试时,替换其中的key、文档等 import os from langchain_community.embeddings import DashScopeEmbeddings from langchain_community.vectorstores import Milvus from langchain_text_splitters impor…...

安全访问家中 Linux 服务器的远程方案 —— 专为单用户场景设计

在现代远程办公与频繁差旅的背景下,许多人需要从外地访问家中的 Linux 文件服务器,以获取重要文件。在涉及敏感数据(如客户资料、财务信息)时,数据的安全性成为首要考虑因素。以下内容将聚焦于如何在仅有一台笔记本电脑…...

将HTML内容转换为Canvas图像,主流方法有效防止文本复制

HTML to Canvas 使用说明 项目概述 此项目实现了将HTML内容转换为Canvas图像的功能,可有效防止文本被复制。适用于需要保护内容的场景,如试题系统、付费内容等。 主要功能 防止复制: 将文本内容转换为Canvas图像,使用户无法选择和复制Mat…...

【从0-1的CSS】第1篇:CSS简介,选择器以及常用样式

文章目录 CSS简介CSS的语法规则选择器id选择器元素选择器类选择器选择器优先级 CSS注释 CSS常用设置样式颜色颜色名称(常用)RGB(常用)RGBA(常用)HEX(常用)HSLHSLA 背景background-colorbackground-imagebackground-size 字体text-aligntext-decorationtext-indentline-height 边…...

神经网络-Day44

import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pyplot as plt# 设置中文字体支持 plt.rcParams["font.family"] ["SimHei"…...

React Native图片预加载:让你的应用图片预览像德芙一样丝滑

写在前面:一张图片引发的性能血案 你有没有遇到过这种情况?——用户疯狂滑动你的React Native图片列表,结果图片加载慢得像蜗牛,甚至出现空白闪烁?等到图片终于加载出来,用户早就失去耐心,愤然退出…… 但你知道吗?这个问题只需要几行代码就能解决! 比如,使用reac…...