惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
C
Cybersecurity and Infrastructure Security Agency CISA
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Know Your Adversary
Know Your Adversary
S
Securelist
I
Intezer
AWS News Blog
AWS News Blog
L
LINUX DO - 热门话题
P
Privacy International News Feed
Recent Announcements
Recent Announcements
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
博客园 - 聂微东
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
The GitHub Blog
The GitHub Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Schneier on Security
Schneier on Security
N
Netflix TechBlog - Medium
爱范儿
爱范儿
B
Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
CERT Recently Published Vulnerability Notes
Hacker News: Ask HN
Hacker News: Ask HN
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
Blog — PlanetScale
Blog — PlanetScale
WordPress大学
WordPress大学
S
Secure Thoughts
K
Kaspersky official blog
N
News | PayPal Newsroom
O
OpenAI News
Last Week in AI
Last Week in AI
C
Check Point Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Cyberwarzone
Cyberwarzone
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tor Project blog
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
D
Docker
Hugging Face - Blog
Hugging Face - Blog
T
Threat Research - Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
博客园 - 司徒正美
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
P
Palo Alto Networks Blog

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理, 企事业单位数字化的业务供需本质 – 人人都是产品经理, 医疗智能体·第1讲——医疗信息化重构:从“辅助软件”到“自主智能体”的范式转移 – 人人都是产品经理, 粉丝量就是空气!!! – 人人都是产品经理, 用户说“薯片碎了”,机器回“要买吗?”:意图识别的翻车与破局 – 人人都是产品经理, RAG召回准确率从75到90 我做对了这三件事 – 人人都是产品经理, AI大事件:Anthropic改收费、OpenAI发安全版、手术机器人纳入医保、阿里发布”秒悟” – 人人都是产品经理, Chrome 推出 Skills 新功能,Agent 重塑上网方式 – 人人都是产品经理, GitHub前创始人拿了a16z的1700万美元,做Agent时代的Git – 人人都是产品经理 拷贝或克隆其他 Flutter OH 项目到本地后无法运行 – 人人都是产品经理, 优惠券设计:优惠券创建 – 人人都是产品经理, 不用死磕文档!AI 助手 1 小时搞定飞书 CLI 安装 + 配置 + 知识库 – 人人都是产品经理, 用小龙虾做竞品分析报告:从2天到20分钟,我是怎么做到的 – 人人都是产品经理 用小龙虾做市场分析报告:搞懂这3个公式,市场规模不再靠猜 – 人人都是产品经理, 你早就在做 Harness 工程,只是不知道它叫这个名字 – 人人都是产品经理, Think Long就够?你可能想多了! – 人人都是产品经理, 货代SRM实战:供应商准入怎么做,才能让资源池不是通讯录而是可交付网络? – 人人都是产品经理, 如何做好用户调研?详解基本技巧 – 人人都是产品经理, 木鸟、途家、美团对打,平台春天行动开“卷” – 人人都是产品经理, 入职才发现公司不靠谱?小红书从业者求职避坑指南 – 人人都是产品经理, 美国 AI 三巨头联手封堵,中国 AI 突围之路在何方 – 人人都是产品经理, 小红书,放在需求对面的镜子 – 人人都是产品经理, AI 会带来大规模失业吗? – 人人都是产品经理, 从出单到补货前,我第一次犹豫:该不该放大? – 人人都是产品经理, Flutter 三方库鸿蒙化适配:5 种高效检查方式,快速判断是否需要适配 – 人人都是产品经理, 从做产品进阶拿结果:医美机构产品经理转岗科室运营经理 – 人人都是产品经理, 阿里HappyHorse,一场关于“Token经济”的阳谋 – 人人都是产品经理, To B AI:客户留存落地的观察与思考 – 人人都是产品经理, AI产品的“生命线”——数据采集、标注、清洗的产品化设计 – 人人都是产品经理, 谈谈AI Agent(二):当“孩子”能自己“体验世界”时,你该学什么? – 人人都是产品经理, UI/UX设计师的3层能力进阶,前两层让你活下来,第三层…才是真正的分水岭 – 人人都是产品经理, 2分钟 → 30秒,效率提升75%:B端产品经理如何用「规则枷锁」驯服AI幻觉? – 人人都是产品经理, 还没来得及学OpenClaw,来了个更猛的:Hermes Agent – 人人都是产品经理, AI日报:宇树机器人跑出10m/s刷新世界纪录 – 人人都是产品经理, 一文说透基金互金如何用情绪价值引导用户决策做转化 – 人人都是产品经理, 当浏览器开始替你”看”网页:AI 浏览器正在亲手拆掉它脚下的那张网 – 人人都是产品经理, 0代码,一天时间我Vibe Coding了个网站 – 人人都是产品经理, Hermes 和 OpenClaw 之争,Agent 的能力应该“装上去”还是“长出来”? – 人人都是产品经理 视频生成的“桌子”,字节Seedance 2掀完,阿里快乐马掀 – 人人都是产品经理, 从听不懂到完全信任:我的 Codex 深度产品体验 – 人人都是产品经理, 当虚拟偶像有了北京户口,与真人偶像还有什么区别? – 人人都是产品经理, 会说,远远比会做更重要 —— 对 SBTI 爆火现象的五层观察 – 人人都是产品经理, AI产品经理必看:当“搭环境”比“选模型”更重要,你的认知还在2024年吗? – 人人都是产品经理, 2026年AI产品商业化核心逻辑:从功能demo到规模化营收的3个必破卡点 – 人人都是产品经理, 京东围绕供应链,卷起裤腿下场的那些事儿 – 人人都是产品经理, SBTI一夜刷屏:它赢在了“太会说人话” – 人人都是产品经理, 折扣零售的真相:不是便宜,而是价值感! – 人人都是产品经理, 和甲方吵了一架,最后加钱做了——我学到的ToB产品经理生存法则 – 人人都是产品经理, 和几位小红书操盘手聊了8小时,干货全在这 – 人人都是产品经理, 智谱GLM-5.1登场,开源模型首超Opus4.6!!! – 人人都是产品经理 Anthropic收入凭什么反超OpenAI,终于有人把这事说清楚了 – 人人都是产品经理, 史上最有故事感的技术报告——Claude最强模型Mythos 7个极其精彩的细节 – 人人都是产品经理, 模型不是壁垒,Harness 也不是 – 人人都是产品经理, 抖音本地生活业务思考21 – 人人都是产品经理, Superpowers:145k Star的AI编码框架,到底是什么来头? Superpowers:145k Star的AI编码框架,到底是什么来头? – 人人都是产品经理, OpenAI 的路走错了,Anthropic Harness 解法启示:模型需要实践专科生 – 人人都是产品经理, 画原型图的前一步:设计站点地图 – 人人都是产品经理, 给 DeepSeek 的最后一封催更信 – 人人都是产品经理, 手把手教你用 Claude Code 搭建 AI 营销团队:5 个 Agent、12 项技能,独立完成研究、写作、设计全流程 – 人人都是产品经理, 你以为大模型在学语言?不,它在重新发明语言学 – 人人都是产品经理 所谓Skill,不过是AI时代的工业垃圾 – 人人都是产品经理, 聊一聊内容传播的几个方法 – 人人都是产品经理, 当平台开始吃掉生态:从 OpenClaw 被封杀,读懂 Anthropic 的这盘棋 – 人人都是产品经理, 你装了 10 个 AI 插件,Obsidian 还是一个文件夹 – 人人都是产品经理 关于AI智能体架构演进的系统性思考:从单体试水到多体协同的重构 – 人人都是产品经理, 当“人”变成Skill,我们又该何去何从? – 人人都是产品经理 Mythos 事件:前沿 AI 治理的意外实验 – 人人都是产品经理, 货代CRM:信用与风险管理怎么做,才能把坏账风险拦在放货之前? – 人人都是产品经理, 从HR收集自拍照到员工自助录入——我见证了园区人脸识别从”不可用”到”真好用”的全过程 – 人人都是产品经理 千问闯关AI混沌期:阿里画靶,吴嘉张弓,马云射箭? – 人人都是产品经理,
B端产品设计必看,Excel批量导入的知识点讲解(下篇)
PM维他命 · 2023-03-13 · via 人人都是产品经理

上一篇文章给大家介绍了Excel导入的核心步骤,不同的步骤有着自己的作用与逻辑 ,本文又补充了一些产品经理在做好Excel导入功能时需要注意的细节,希望对你有所启发。

前言

上一篇讲Excel导入的时候,提到有4个核心的步骤,在设计导入功能的时候要特别注意,不同的步骤有不同的职责和不同的校验逻辑,同时也补充了一些Excel导入的知识点。这一篇,来和大家分享一下,做好一个Excel导入功能,产品经理有哪些需要注意的细节之处。

这些细节之处虽然有些看似很碎,但是只要花点时间整理好了之后,就可以形成可复用的“组件化产品方案”了。

一、Excel模板的制作

Excel导入模板的制作说简单也简单,说复杂也复杂。简单是因为本质上就是把字段定义好,然后把对应的规则整理好,可以理解为一种特殊的“输入表单”。复杂是因为字段比较多,字段之间的关系也多,再加上用户填写的约束性比较弱,各种细节糅合在一起之后就会感觉做一个好用的Excel模板也不是那么简单的样子。

Excel导入的模板需要根据导入的业务而灵活变动,一般来说从简单到复杂,有这么几种类型的模板:

  1. 单Sheet,字段同级的模板,也就是只有一个Sheet表,一般字段也不是很多,而且字段关系是同一级的,没有父子级关系;
  2. 单Sheet,字段有父子级的模板,也就是只有一个Sheet表,字段可能较多,关键是字段关系的父子级的,即主档和明细同时导入;
  3. 多Sheet,而且多个Sheet之间有逻辑关系的模板,这种Excel导入的模板填写也比较麻烦,涉及到的逻辑校验也比较麻烦;

1. 单Sheet且字段同级的模板

这种是最常见也是最简单的Excel导入模板,示意图如下:

黄色背景的为必填项,灰色的为非必填的内容,如果有一些字段需要特殊介绍,则使用批注的方式进行说明。也有一些系统会预先填充一些参考案例,或者是在第一行做一些详细的文案说明。

有赞的商品导入示意图

第一行有详细文案说明模板

2. 单Sheet,字段有父子级关系的模板

由于有一些字段是有父子级关系的,所以在制作模板和解析模板的时候就和第1种有一些细微的区别,是要特别注意处理的。

例如导入订单,一个订单可能会有多条商品信息,这就是存在一对多的关系。如果遇到这种场景,一般有两种做法:

  1. 一种是将所有字段打平,平铺展示;
  2. 一种是按子级的数据为最小粒度展示,父级的字段会有重复,有需要的时候可以用标识号来确定同一父级;

所有字段都打平展示,模板看起来会稍微清爽简洁一些,但是由于把子级的数据放在了最后面,为了方便用户填写以及程序解析模板,就会控制子级的数量级。例如该模板就是限制了最多10个子级,也就意味着一个订单最多只有10条商品,如果超过了这个量级用这个模板导入就会失败。

所有字段打平展示

按子级的数据为最小粒度展示,好处就是可以纵向的录入很多个子级(超过10个),但是坏处也很明显,父级的一些数据,例如订单号,仓库代码,地址信息等都会重复填写,除了不太美观之外,还有可能会有不同行的数据填错了有差异,不知道取哪个为准的困扰出现。

按子级为最小粒度展示

3. 多Sheet同时导入

有些时候,用一个Excel表无法同时导入数据,用两个Excel表又感觉操作比较麻烦,那么可以考虑使用同一个Excel表但是多Sheet的方式导入。例如之前在做尾程的物流报价的时候,经过业务分析发现一共有5种计费方式:

  1. 总价模式,只需要导入“总价表”的数据即可;
  2. 单价模式,只需要导入“单价或续重价表”的数据,同时计费模式选择为“单价”即可;
  3. 续重价模式,只需要导入“单价或续重价表”的数据,同时计费模式选择为“续重价”即可;
  4. 总价+单价模式,则需要同时导入“总价表”和“单价或续重价表”的数据,同时将“单价或续重价表”的计费模式选择“单价”即可;
  5. 总价+单价模式,则需要同时导入“总价表”和“单价或续重价表”的数据,同时将“单价或续重价表”的计费模式选择“续重价”即可;

为了让用户更好地理解这个表格导入的逻辑,我还做了一个“说明”的Sheet。多Sheet表导入背后会涉及到比较多的逻辑,因为多个Sheet之间有逻辑关系,所以能不使用这种方式是最好,实在避免不了,那么就要做好相关的逻辑说明和操作指引。

除了上述提到的3种模板之外,我们还会经常遇到遇到实际要导入Sheet1,但是由于表格填写的时候有很多字段需要有参考值,所以必须将这些参考值放在Sheet2或者Sheet3的场景,例如下面的一些案例:

从其他Sheet中选择一些字段的可选值

从其他Sheet中选择一些字段的可选值

我们在制作模板的时候,可能只需要制作Sheet1主表,然后用户在下载模板的时候,需要将一些预设的可选值动态的插入到模板的其他Sheet中。例如导入订单/出库单这样的场景下,需要选择仓库,选择物流渠道等,这些信息是动态的,需要每次下载模板的时候获取这些信息然后插入到相应的Sheet种。而国家/地区简码和说明等内容,则可以在制作模板的时候就提前把数据填充好。

二、展示导入失败的信息

聊完了Excel模板的制作之后,还有一个场景的需求也需要注意一下,那就是导入失败的信息怎么展示。我大概找了一些竞品看了之后发现,大家普遍有这么几种玩法:

  1. 导入失败的内容直接在页面展示,告知第多行错误,某某某字段不能为空或者XXX校验未通过;
  2. 导入失败的内容不在页面展示,而是让用户下载错误的信息,自己进行修改,然后重新导入;

从用户体验的角度来说,提示成功多少,失败多少,然后支持用户下载失败的结果是更好的做法。

当用户下载失败结果之后,怎么展示失败的原因是有一些小细节在里面的,主要有这么几个点:

  1. 错误原因是展示一个还是多个?
  2. 错误字段是否要标记背景色或者突出文字?
  3. 如果有一些行是正确的,有一些行是失败的,但是这些行是属于同一个单据怎么展示?

1. 错误原因展示一个还是多个?

关于这一点,我建议建议一定要展示多个,把一次性能校验出来的结果都展示出来,避免挤牙膏式的报错。用户在导入Excel过程中的报错都要谨慎处理,因为修改模板,然后导入,再下载错误模板,打开查看错误,在修复后导入……这个链路太长了,很容易失去耐心直接发毛。

之前我在测试一个导入功能的时候,导入了10次都失败了,每次反反复复修改模板,当时的心情真的是想骂人。但是又转念一想,这不是我自己做的吗?骂自己岂不是尴尬,还是耐着性子赶紧优化了吧。

2. 错误字段是否要标记背景色或者突出文字?

错误详情展示-摘自轻流
关于这个点,我感觉是见仁见智,能标记出来肯定是利于用户去修改的,我会倾向于标记一下,注意不要用太浓烈的颜色,不然会很丑。而且用户修改完了这个字段之后最好是可以去掉这个背景色,不然数据量一多就很容易形成干扰了。

3. 同一个单成功的行需要展示吗?

必要的时候正确的信息也展示
因为下载的是失败记录的模板,虽然有一些行是正确的,但是由于整个单没有成功,所以这些正确的行还是会一起展示,只不过在展示的时候需要对正确的行做一个特殊说明。

例如,同一个订单购买了3个IP,其中的1个IP是正确的,但是另外2个IP是有问题的,所以导致这个单不能导入发货完成,所以下载失败记录的时候也会把正确的信息带出来,提示用户这个订单实际是需要导入3个IP,只有2个是有问题的、需要处理的。

三、Excel导入的一些规范

一个稍微复杂点的系统一般都是由多个产品经理来分别负责不同的模块,也就是同样是导入Excel的功能,不同的人来做会有很多不一样的风格特色,而且这一块的细节往往容易被人忽视掉。为了降低用户使用系统时的割裂感,最好是可以为产品团队制定一份关于Excel导入的规范,具体内容可以自由发挥,因地制宜。下面,我分享一下,我之前为团队制定的一份“文件导入规范”,给大家参考一下。

1. 文件命名

默认导入的模板文件的名称都用英文,而不是中英文。英文单词之间用大驼峰的方式连接,英文与数字或者其他隔断性词(Import)连接时,使用下划线“_”

1.1 导入模板文件命名

英文.xlsx

示例:Zone_Import.xlsx

说明:用英文做模板名是考虑到用户可能是海外的员工,大概率会看不懂中文。如果想要做的细节一点的话,可以根据系统的语言来切换下载不同的导入模板,但是这样维护的成本比较高,所以我就选择全部用英文了。

1.2 导入失败文件命名

Error_原文件名_年月日时分秒.xlsx

示例:Error_Zone_Import_211119144400.xlsx

说明:导入失败的文件名,会在原模板文件名的基础上,增加前缀和后缀。前缀是“Error”,后缀是“时间”。

1.3 打印/下载PDF文件命名

英文_年月日时分秒.pdf 示例:PickingList_211112164123.pdf

1.4 导出Excel文件命名

英文_年月日时分秒.pdf 示例:PackingList_211112164123.xlsx

2. 文件格式相关

  • 导入Excel的时候,要对文件格式校验,若不符合规定的文件格式,导入即报错;
  • 最好是在前端层做控制,在选择本地文件的时候,就限制只能选择.xlsx格式的文件,降低用户找文件的成本;
  • Excel导入文件格式规定为.xlsx,打印/下载文件格式规定为pdf,xlsx等;

3. 文件导入数量规定

  • Excel导入文件,一次仅支持导入一个文件,不能多选;
  • 上传图片可一次性支持多个,上限暂时未规定,看具体情况自己灵活设定;
  • Excel导入文件的体积大小默认是为5M以内,如果有大批量的数据导入则可视情况而定做调整;
  • 图片上传的体积大小默认也是5M以内,一般情况下上传后都需要进行压缩,便于后续的读取展示;
  • Excel导入的行数默认是不超过1000行,超过1000行的部分不做处理;如果有大批量数据导入可以视请客认定做调整;

4. 文件导入上传机制规定

  • 同步导入,文件导入后需要等响应了结果之后才可以继续其他操作;
  • 异步导入,文件导入后会自动加入异步任务中,此时可以去执行其他操作;
  • 数据重复–支持覆盖(看情况而定);
  • 数据重复–上传失败(看情况而定);
  • 数据重复–跳过(看情况而定);

5. Excel模板的字段元素

  • 必填、选填规定:黄色文本框(#FFF836)为必填,灰色文本框(#BFBFBF)为选填;
  • 单元格样式规定:全选所有表格,设定单元格样式为左对齐,微软雅黑12号,文本格式;
  • 表头规定:字段排列位置固定不允许更换,采用按坐标匹配的方式来确定字段;
  • 表头字段:采用英文+中文的方式展示,默认情况下要尽量给足够的列宽,便于用户查看并填写;
  • 批注:目前统一为中文批注,如有需要注明英文的,也可以灵活使用。批注字体也用微软雅黑,字体建议用10,便于展示更多信息;

6. 错误原因的展示

  • 下载导入失败的Excel文件,错误失败原因在第一列;
  • 错误列表头文字为(Error/错误原因),背景色为红色(Red);
  • 错误列一次性给出能判断的所有错误信息,多条错误信息之间用英文逗号”,”分隔;

7. 模板Sheet定义

  • 如果只有一个Sheet,则不做名称修改
  • 如果有多个Sheet,第一个Sheet可以用“XX信息”名,例如“商品信息”,“订单信息”;后续的Sheet则按时间的内容而确定名称,例如“国家/地区二字码”,“渠道信息列表”

总结

Excel导入的门道如果要拆碎来讲的话会有很多内容,很多细节,通过这两篇文章的输出,我发现自己对Excel导入的大多数场景和玩法都有相关的沉淀和总结了,受益颇深。

这些沉淀的知识就是我在上一篇文章中提到的“组件化产品方案”,我将自己遇到过好的导入案例和资料沉淀在知识库中,后续要做类似的功能的时候,直接拿来即用就好了。

希望这两篇文章除了能帮助大家更好地掌握Excel导入中的一些细节之外,还能通过这个案例更加深刻地理解“组件化产品方案”的思维。掌握这个思维方法,可以真正有效地提升你的工作效率,突破自己的能力瓶颈,同时也能很好地赋能团队,创造更大的价值。

专栏作家

我叫维他命(Vitamin),微信公众号:PM维他命,人人都是产品经理专栏作家。前PHPer,做过在线教育类产品,也做过5年多的跨境供应链方向的产品,现任某跨境电商ERP的产品负责人。主要专注于WMS/OMS/TMS/BMS/ERP等领域,分享跨境和供应链相关的产品知识。

本文原创发布于人人都是产品经理,未经作者许可,禁止转载。

题图来自Unsplash,基于 CC0 协议。

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。