广网北京1月22日消息 据中央广播电视总台中国之声《新闻纵横》报道,您是不是有这样的经历:和亲戚朋友通过聊天软件聊过什么内容,很快就会看到相关产品的推荐?说想吃火锅,打开购物软件推荐的是火锅底料,打开美食软件推荐的是附近的火锅店,看起来各类App越来越“懂你”。
之所以能精准推荐,其实和输入法软件有关。查询各大主流输入法软件,安装时均提示或默认可以收集用户打字的内容。这些内容再与其他软件相结合,“用户画像”跃然纸上。这是怎样的过程?
互联网科技博主“EPC”的职业是某央企程序员,他在和一位网友研究输入法传输信息时,通过抓取文件发现,某手机自带输入法明文传输用户输入的信息,为此他还专门录了一段视频。作为一个根本不养宠物的人,通过输入法在聊天软件对话框打出多个有关“猫”的关键词,但并不点击发送。不一会儿,在某二手平台上,相关推送出现了。
视频中,这位博主说:“我们做一个实验,使用某品牌手机的内置输入法输入‘猫咪很可爱,我想买一只猫,温顺的猫咪’然后再次切换到该购物App,我们刷新一下,稍微往下拉,看到了吗?猫咪出来了!而且此时默认搜索词已经赫然出现“宠物”二字。可以看到,输入法已经默默地把他的兴趣爱好,共享给其他App了。”
随后,他们逆向分析了手机里的代码,通过抓包程序抓取了该输入法的传输数据,发现用户通过输入法打的字,被明文传输到了输入法公司的服务器。
仔细看使用条款,写着“文本信息”为用户主动提供,为的是在用户使用搜索功能、快捷翻译功能、云输入及联想功能、智能回复功能、搜索候选功能时,提供更方便、快捷的输入服务。
这就意味着,无论是加密还是明文传输,用户在输入法中所打的字,都会被分享给该输入法的30多个合作伙伴,而这还是用户自己同意的。科技博主“EPC”告诉记者,他进行过一次调研,绝大多数用户都不会仔细去看那份冗长的《使用条款》,基本都会直接点击同意。
他说:“我这次做视频的这款手机的隐私条款有上万字,非常长,一般用户根本不会点进去看,点了同意就算了,等于说你接受了它把你的个人隐私上传到他们服务器的行为。”
查询几款输入法的《使用条款》,不少软件会默认用户同意将自己的数据共享给多个SDK,也就是各个软件企业的软件开发工具包,这些企业之间会形成广告联盟,共享同一ID的数据,这就是为什么你明明在A软件里输入了文字,打开B软件也有相关推荐,因为只要是用同一手机号注册的账户,就能识别成同一个人的操作。
这位博主介绍说:“现在有个广告联盟的概念,它会共享你的手机ID,你手机里的输入法正好也绑定了这个ID。比如你输入文字‘我喜欢猫咪’,‘猫咪’就是个特征,会传到云端,云端会匹配到这个ID。当你打开一个购物软件,购物软件也匹配到这个ID,它就可以通过这个ID去锁定你这个人,就可以知道你喜欢什么内容,这是一种推荐算法。哪怕你换了一台手机,只要ID能匹配到,它认为你还是同一个人。”
博主EPC建议,消费者可以选择把输入法App的联网功能关闭,一些App也提供了关闭数据上传的功能。但只要在网上浏览信息,相关搜索记录、商品购买记录甚至是点击记录,都会成为用户画像的一部分。
他说:“这个是真没办法,你只要去搜索,它就会把搜索结果记录到它的服务器上,这个是被动的。比如订外卖,你也没办法不输入,你只要有输入行为,它都会记录下来,除非你不用。”
输入法开发者岁寒告诉记者,从技术上将用户打字的内容上传后分析,没有任何障碍,这些软件免费开发给用户使用,还能越做越大,靠的就是分析用户数据来赚钱,将海量数据汇集在一起后,就形成了当下这种“软件比你还懂你”的情况。
岁寒说:“如果很多人这段时间都在输入某一个词,它(算法)就知道大家对什么东西比较关心,在检索什么东西,或者在讨论什么东西,这本身就很有价值了。你都不知道你想要什么,它(算法)就知道你想要什么。比如说,你们两个人有好几个关键词重合了,然后这个人今天买了某个东西,我就把他买的东西尝试推荐给你,看你感不感兴趣,这都是可以关联的。实际上,每一个人不是独一无二的,其实是一个群体,如果都对A感兴趣,你大概率对B也感兴趣,从这个‘口味群体’里可以分析出很多你可能感兴趣的东西,这种技术是很成熟的,只能寄希望法律阻止他们去做更过分的东西。”
2021年,个人信息保护法和数据安全法施行。个人数据安全、隐私保护等群众关心的问题已经有了法律保障,监管部门也经常对各类软件进行检查,2021年还公布过33款主流App违法违规收集使用个人信息的情况。
中国科学院大学密码学院院长荆继武告诉记者,由于市场过于庞大,A软件合法收集的信息,可能会被B软件违法使用。用户面对复杂的软件,只能“怀疑”自己的隐私被窃取,经常苦于没有技术手段证实,也给执法带来了难题。
荆继武表示:“因为涉及的问题太多了,它确实是一个很普遍的现象,有很多软件偷偷地做这件事情。我认为目前最大的问题是用户要有这样的意识,得有人去发现,还要有人来分析,实际上投入的成本也很大,你怀疑他,人家不承认,这时候你根本查不出来。这就可能会导致很多无谓的实验、举报,给执法部门的工作带来很多困境。我们的管理部门也到处去查,但是现在的信息技术发展确实太快,政府的管理部门也在逐步改进做法,也在加大对于违法行为的处罚力度。”
(总台中国之声记者任梦岩 周洪)
来源: 央广网
研压力大
论文没思路
怎么办?
不妨放下电脑
来一场“大汗淋漓”
的健身运动吧
接下来
跟团团一起看看他们是怎样
把寝室变成“健身房”的吧!
马扎当工具
体育生在宿舍健身
前不久
内蒙古师范大学体育教育专业某寝室
在宿舍健身的视频走红网络
视频中,学生们利用马扎等工具
做出各种专业健身动作
他们每天都会针对不同肌肉部位
锻炼一小时左右
网友:惭愧的我在床上翻了个身。
晚自习后健身
他们把宿舍变成健身房
山东威海某高校几位男生
每天晚自习后都在寝室健身
该宿舍一名同学说
“我们不想每天都
躺在床上玩手机
就想干点事来
充实一下自己
我就是曾经练过体育
我们宿舍还有两个体育生
我们就带动舍友一起健身
有一个想减肥的(舍友)
他每天也跟着我们一起健身
我希望他能够瘦下来
我们已经坚持了大约半个月
希望我们整个宿舍
一直坚持下去”
网友纷纷评论
我需要这样的室友
↓↓↓
大学女生宿舍健身
练出八块腹肌
宁波大学一名大四女生
在宿舍
仅凭借简易器材
就练出八块腹肌
“训练只能在
舍友上床躺着玩手机以后
我才开始练
平时(喜欢)喝奶茶
我重口味
平常喜欢吃火锅、烧烤
也不会刻意增肌
我肌肉都是顺带训练的”
网友纷纷表示羡慕
↓↓↓
就地取材
“桶巾操”练起来
福建医科大学
针对大学生缺乏锻炼的现象
专门设计了一套“宿舍体操”
比瑜伽简单,比跑步轻松
就地取材
在宿舍就能强身健体!
(点击查看福医版“桶巾操”)
这套操由“高位下拉”
“搓澡式拉肩”、“站姿臂弯举”
等动作组成
有效地锻炼到了全身的各个部位
简单又高效
得到同学们一致称赞!
博士生坚持锻炼6年
成为健身达人
北京邮电大学一名
在读博士生坚持锻炼
6年后成为健身达人
同学们纷纷投来欣赏的目光
该博士生说
“健身能缓解科研中的紧张感
可以放松心情
学习与健身相互促进
会一直坚持下去”
网友纷纷点赞
↓↓↓
寝室虽小
但一样可以锻炼身体
看完这么多同龄人
锻炼身体的样子
工具与场地往往是次要的
重要的是
有一颗热爱运动和生活的心!
快召唤你的舍友一起快乐运动吧
当然锻炼的同时
也要注意安全哟~
综合整理自:中华全国学联、共青团中央、头条新闻、新华网、福建医科大学、潇湘晨报、网友评论等
来源: 学校共青团
考组件这件事,对于产品经理的产品思维训练是有帮助的。本篇文章围绕组件展开了一系列的思考,包括如何拆解组件以及组件的未来,感兴趣的小伙伴们快来一起看看吧,希望对你有所帮助。
这篇文章是我对过去半年工作的一些思考,阅读过程中需要一些背景知识的支撑,例如你需要理解「应用」、「低代码」、「组件」等概念。
当然,我会尽可能用简单的语言去表达,但还是要首先说明,这篇文章有一定的阅读门槛。
一、组件背后的产品思维
在介绍什么是组件之前,我想首先说明一下组件背后的产品思维,因为这是理解组件价值的关键。
所谓思维,是从感性到理性的提炼结果。感性是我们面对世界看到的现象,理性是我们从繁杂的现象中抽象出来的概念和规律。
例如,在外卖平台没有出现之前,我们感受到的现象是「无法堂食」和「想要立刻吃到东西」之间的矛盾,当这个矛盾成为一种普遍的社会现象时,能解决矛盾的外卖服务便出现了。
起初是门店给顾客留电话,顾客打电话订餐品,门店老板自己送。后来供应商多了,顾客需求多了,就出现了更高效地解决这个矛盾的平台。外卖产品从一种感性的矛盾中脱胎出来,成为了一种新的概念和规律。这种规律就是,我打开外卖 app,就可以获得我周围的可配送的美食。
外卖产品不是从天而降的,而是感性层面的现象不断累积,最终变成了理性的概念。
组件也是一样。在互联网早期,可能并没有组件的概念(产品领域没有,可能在技术领域是存在的),后来出现了一种现象是什么呢?那就是不同的业务应用,往往采用的都是同一种或者相似的产品框架来完成。
例如很多公司都有自己的后台管理工具,他们很多时候可以抽象为对数据的增改删查;又例如很多公司内建自己的项目管理工具,内核也是一种状态机。
哪怕是现在的电商领域,无论是以天猫、京东为代表的货架式电商,还是以抖音为代表的兴趣电商,他们 app 首页的产品框架也都是以记录列表(什么是记录,此处就不展开)为核心。
这样的现象随着互联网的高速发展而愈发明显,繁杂的业务应用背后是通用的产品架构。但由于每个业务独立核算、独立运营,导致一套产品框架往往要在不同的业务中开发多次,也就是很多人讨厌的重复造轮子现象。
诚然,在方案设计环节,产品经理会通过尽可能复用已有的成熟方案降低开发成本,但只要有一点点改动,从开发流程上来说就需要走一遍完成的流程。
这就导致业务方经常会问:“我就改这么一点点东西,为啥还要排期到那么晚”。我只能告诉你,生产关系就是这样,在原有的系统里无论你改的是什么,可能都需要把所有干系功能都测一遍。
从上述现象中我们可以提炼出哪些矛盾呢?
- 很多业务应用的内核是相似的,但需要多次开发
- 凡是动代码的,可能就是慢的,代码开发、测试和发布的速度赶不上业务变化的速度
在这种矛盾日益剧增时,组件出现了。
组件背后的产品思维,就是尽可能将逻辑相似的代码块抽象为通用的可配置的功能单元,从而高效解决复用和个性化的矛盾。
它背后体现出组件的两种特性:高通用、高可配。
并带来两种鲜明的业务价值:复用价值、兼容价值。
二、为什么要讨论组件
在介绍组件的具体特性之前,我想说一说「为什么要讨论组件」。
首先,思考组件这件事,对于产品经理的产品思维训练是有帮助的。我们知道,大多数产品经理以拥有好的抽象能力而自居。然而他们的抽象能力,大多是建立在业务需求上的抽象能力,非产品角度的抽象能力。
业务需求的抽象能力,追求的是用一个产品化的方案解决多样化的业务需求。例如业务方希望通过打折的方式在特定时间点对产品做促销,这是一种从经济学和心理学角度出发的业务诉求。当然要对哪些商品做促销,促销力度如何,促销规则怎么样,都依赖于不同的业务方有不同的玩法。
有些希望做满减促销,有些希望做限时打折,有些希望搭赠一些临期商品,从各自业务的角度看都是合理的,产品经理要做的事情就是用产品来满足业务诉求。
但组件要求产品经理具备的抽象能力,是对产品的进一步抽象,并对最终抽象而成的模块做产品化。
例如我们经常在大促期间见到的各种活动页面,虽然看起来风格不同,且每个页面也都是跟业务沟通之后,确定下来的共识,但从产品角度看其核心是相似的。
很多电商促销页面主要包括商品、券、转盘、动图、按钮、链接跳转等要素,但抽象出来其实都是一系列的组件。
而这种从多样化的页面到组件的抽象过程,就是对产品的进一步抽象,这是一种产品思维的训练。
其次,思考组件这件事,也有助于对产品经理这个行业未来的思考奠定基础。当我从事低代码行业的第一天我就在思考,如果我们在做的这件事做成了,那很可能意味着大批的程序员和产品经理的失业或转型。
本质原因在于,社会的发展会使得资源最终会流转到最能用好它们的人手中,这是客观的经济学规律,不以人的物质为转移。
还记得我们在第一部分提出的两点矛盾么:重复开发和慢迭代。须知这种矛盾的背后是人力和机器资源的巨大投入。这种投入还存在,是因为当下我们没有更好的解决办法。
但如果我们往5年、10年后看去,如果产品经理这个岗位带来的业务价值已经低于他们存在本身带来的资源消耗,那资源就会转移到其他岗位上。
会不会出现这种现象呢,我不确定,但我认为应该警惕和思考。
像轻流这样已经商业化的低代码产品,正在帮助中小型企业搭建一些简单的表单应用,那原来准备投入到自研或外包中的资源,就节约下来了。
我一直在想,有没有可能5 年后的互联网产品生产端,负责标准化模块(评论、订单等)的产品经理会消失,取而代之的是低代码产品经理和业务产品经理,前者负责不断完善底层工具和生态,后者负责面向不同业务方落地产品实施。
仅作一猜测,摆在这里。
三、拆解组件
这节,我将以腾讯微搭产品为例子,带大家一起拆解组件。要拆解组件,首先要对组件做定义、分类和内部结构分析。
在我看来,组件是可被复用的完整的产品功能模块。
可被复用是组件最显著的特征。因为它是对产品的进一步抽象,说明它可以出现在不同的产品中,进而在搭建应用时,它可以出现在不同的页面中。
完整是指组件代表了一个完整的使用场景。例如下图中的文本组件,它代表的场景是在页面中展示一段文本。且页面中任何使用到文本的地方,都可以拖入这个组件,它也是通用的。
从这个定义出发,线条就不是一个组件,因为单单一个线条不能代表任何完整的使用场景,尽管它是可复用的。
最后,组件是一个功能模块,我所理解的功能,是它具有处理信息的能力。再抽象一些,它有自己的输入、作用和输出。
要进一步拆解组件,首先要对组件做分类。
原子组件:不能被进一步拆解的组件,代表了某个功能场景下的最小粒度。例如上述的文本组件就是一个原子组件,因为我不可能再进一步拆解出一个字符组件。它也代表了当我需要在页面展示文本信息时,在这个场景下我需要的最小功能模块。
复合组件:由原子组件组合而成的组件,代表了复杂场景下的功能模块。
例如下图的表格组件。这种组件往往更贴合某种实际的使用场景,比如管理一张表格,或者填写一个问卷,他们的目标是在对应的复杂业务场景下,可以有更便捷的方式搭建出对应的功能模块来。
原子组件由于粒度小,所以在搭建时的自由度更高,理论上如果一个平台的原子组件足够丰富,那么可以搭建出非常复杂的应用出来。但它的劣势在于,搭建门槛非常高。
以上图的表格组件为例,拆开来看它包括的原子组件是:按钮、复选框、文本、搜索框等组件,但如果我只给你提供这四个原子组件,让你搭建出上图这样的效果,估计你会崩溃的。
复合组件由于更贴近实际使用的场景,所以搭建门槛更低。
例如对上述表格来说,我只需要给组件关联对应的数据模型,然后做一些字段和样式配置,基本上在 5 分钟内就可以搭建出一个能对数据表做增改删查的管理表格。
但另一方面,它的灵活性也相对被降低了,因为很多布局和样式都是预设好的,没有可以进一步编辑的功能,所以兼容性较差。
从上面的分析可以看出,不同的组件尽管都可以代表完整的功能场景,但设计上还是有不同的考虑,这种考虑往往是自由度和使用体验之间的平衡。这也是组件本身固有的矛盾。
组件的功能拆解,需要从输入、作用和输出三个角度来说。我们以经常用到的美食筛选场景为例。
上图是大众点评美食频道页里的筛选功能,我可以通过选择美食的种类,进一步缩小我看到的页面信息的范围。那在低代码产品中,这种功能模块怎么搭建出来呢。
首先我们需要使用一个下拉选择组件,注意,这个组件是一个抽象的组件,它既不代表美食的筛选,也不代表距离的筛选。它表达的意思是:这个组件提供了在下拉框中完成单选的功能。
要给这个组件赋以业务含义,就必须向它注入数据。例如,给这个组件关联美食品类的数据表,这样下拉选择后的每一个选项,代表了一种美食品类。
有了输入之后,就需要对输入做处理,那下拉选择组件是怎么处理的呢?它提供了一种特性,叫做用户在 app 上点击选中的数据,就代表了这个组件最新的值。
你选择了火锅,业务上代表了你在美食品类中选择了火锅,产品上代表了你在下拉选择组件中,通过前端页面的点击,给组件赋值,这个值就是火锅这个选项数据。
最后是输出,输出是该组件作为一个独立的功能模块,能够给页面、或者页面内的其他模块传递的信息。在上述例子中,从业务上看,当我们选择了火锅之后,商户列表就完成了一次刷新,并且刷新之后只展示跟火锅相关的商户。
但产品原理上并不简单。首先,在搭建的时候,需要在页面内建立下拉选择组件和商户列表组件之间的关系,是的,看起来内容很多的商品列表,其实也是一个组件。建立的是什么关系呢?是一种筛选逻辑关系。
在商户列表组件的筛选条件中,我们需要加上,这个列表中每个商户的美食品类需要等于下拉组件中选择的美食品类。
在这个逻辑关系中,下拉组件的值作为输出,就被商户列表组件使用了,这种关系,用偏技术的话说叫做「消费」,就是我用了你给我的东西。
以上只是下拉选择组件在实际 app 中的一个很简单的应用,事实上组件的输入、处理和输出远比这个场景要复杂很多。但无论有多么复杂,从这三个角度去分析组件的功能我理解基本都是可以的。
如何设计一款组件呢?这是很多低代码产品经理面临的课题,也是我在过去半年内从事的主要工作。一个完整的组件设计方案,需要重点考虑三个问题:
- 属性:这个组件的功能是什么
- 样式:它长什么样子
- 行为:它跟其他模块之间如何交互
属性如我们刚刚所述,需要考虑组件的输入、处理和输出。还是以微搭中最简单的文本组件为例。
可以看到微搭的文本组件提供了两个最基本的属性配置项:内容和格式。它解决的就是一个问题:这个组件需要以什么方式展示什么内容。
样式决定了这个组件长什么样子,例如它在展示区域内的间距、位置,它是否有背景色等等。样式的配置能力跟很多设计软件提供的能力很像,在此就不赘述。
最后是行为,它告诉系统的就是一个问题:当发生了什么事情时,会执行什么动作。发生了什么事情,我们一般叫做触发事件。
它往往是一个可被捕获的前端事件,例如点击、失焦、hover 等。而执行的动作,就是产生了这些事件时,接下来需要做什么。
例如下图是一个表单复合组件,当我们点击提交按钮时,它捕捉到的是 click 这个事件,接着会执行的动作可能就是,将提交的数据更新到数据库。
行为往往是进行组件和组件之间以及系统和系统之间通信的桥梁,如果有机会我们可以再好好聊聊组件的行为。
四、组件的未来
我先抛出我的看法:组件未来一定要建立起生态,且组件生态一定是市场化的。
组件要解决的问题,类似于 SaaS 产品在现阶段想要解决的矛盾:以标准化的解决方案满足多样化的业务诉求。
从发展的眼光看,业务诉求丰富度的增长,一定是快过产品解决方案能满足的场景的增长,所以一定要部分场景是标准化的解决方案覆盖不了的。这一点从国内外的 SaaS 厂商纷纷布局自己的 PaaS 能力可以看出。
同样的,虽然组件满足的是快速搭建业务应用的场景,但目前绝大多数的低代码产品,其组件的设计还是中心化的:平台负责设计,开发者使用。当开发者的诉求无法被满足时,他们提出了新的需求,平台开发新的组件。
问题是:这种中心化开发的模式下,组件可以被称为组件的前提是,它必须要有一定的通用性,不受场景的局限。这个前提本身就限制了组件模式的天花板。
事实上回归组件的定义:可复用的完整功能模块。在这个定义下,我们并不强调组件一定要由平台生产和定义,平台能不能提供生产组件的能力,由众多开发者自己生产,自行使用呢。我理解是可以的,且在国外产品中已经构建起这样的市场了。
在一款低代码产品中,我们已经能看到,当系统提供的组件不能满足你的搭建诉求时,你可以在组件市场中安装更多的组件,而这些组件可能就是由第三方服务商开发完成的。
通过平台,充分连接起组件生产者、组件使用者、应用使用者等不同的利益相关方,这样的生态会使得有越来越多的为垂直行业而服务的复合组件出现。
五、结语
这篇文章大致呈现了我对组件相关的思考,由于篇幅的限制,以及出于可读性的考虑,与组件相关的页面、流程、模型、变量等概念就没有提及,但你需要知道对于一款完整应用来说,以上这些都是很重要的系统。
其实,从 0 到 1 开发一款应用并没有那么容易,当我从事低代码之后,我才体会到一款应用产生的背后会牵涉到如此复杂的系统,这是我以前工作的盲区。
在这之前我作为产品经理,更多关注的是用户和客户的价值,较少关注产品的实现逻辑。这也是绝大多数产品经理的通病,否则也不会出现「这个需求很简单,怎么实现我不管」这样的段子。
但如果你真正走到产品背后,去从搭建的角度思考一款应用的从 0 到 1 ,你会对这份工作产生更多的敬畏之心的。
这是我半年来最大的收获。
专栏作家
大力哥呀,微信公众号:大力哥,人人都是产品经理专栏作家。一个90后产品经理,已经写了6年的公众号,通过输出获得了许多意料外的成长。
本文原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自Unsplash,基于CC0协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。