• 关于

    覆盖增强是什么

    的搜索结果

回答

下一代物联网技术的毋容置疑是低功耗广域网(LPWAN)的天下,NB-IoT与eMTC同属低功耗广域网(LPWAN)技术,两者在技术上互有优劣。NB-IoT的主要优势是成本更低、覆盖更广、小区容量预计也更大,eMTC的主要优势则是速率更高、可移动性更好、可支持语音。两者的共同点和核心可以从LPWAN这个单词即可得出,那就是低功耗,因为以下的LPWAN各类应用场景的功耗要求都非常苛刻。 NB-IOT应用场景 当然我们只知道低功耗是NB-IoT、eMTC这两种窄带LPWA技术的核心特点之一,那么他们是怎么做到低功耗的呢? PSM、eDRX可以说是NB-IoT和eMTC低功耗的左膀右臂。 什么是PSM(Power Saving Mode) PSM即低功耗模式,是3GPP R12引入的技术,其原理是允许UE在进入空闲态一段时间后,关闭信号的收发和AS(接入层)相关功能,相当于部分关机,从而减少天线、射频、信令处理等的功耗消耗。借图: PSM即低功耗模式 UE在PSM期间,不接收任何网络寻呼,对于网络侧来说,UE此时是不可达的,数据、短信、电话均进不来。只有当TAU周期请求定时器(T3412)超时,或者UE有MO业务要处理而主动退出时,UE才会退出PSM模式、进入空闲态,进而进入连接态处理上下行业务。 TAU周期请求定时器(T3412)由网络侧在ATTCH和TAU消息中指定,3GPP协议规定默认为54min,最大可达310H。那么UE处理完数据之后,什么时候进入PSM模式呢?这是由另一个定时器Activer Timer(T3324,0-255秒)决定的。UE处理完成数据之后,RRC连接会被释放、进入空闲态,与此同时启动Active Timer,此Timer超时后,UE即进入上述PSM模式。转换状态如下(借图): 模式切换状态机 eDRX(Extended DiscontinuousReception) eDRX即非连续接收,是3GPP R13引入的新技术。R13之前已经有DRX技术,从字面上即可看出,eDRX是对原DRX技术的增强:支持的寻呼周期可以更长,从而达到节电目的。继续借图: eDRX eDRX的寻呼周期由网络侧在ATTACH和TAU消息中指定(UE可以指定建议值),可为20s,40s,80s,…最大可达40min。相比以往1.28s/2.56s等DRX寻呼周期配置,eDRX耗电量显然低很多。 PSM和eDRX虽然让终端耗电量大大降低,但都是通过长时间的“罢工”来换取的,付出了实时性的代价。对于有远程不定期监控(如远程定位,电话呼入,配置管理等)需求且实时性要求很高的场景,不适合开启PSM功能;如果允许一定的时延,最好采用eDRX技术、并将eDRX寻呼周期设的尽量短些(根据可接受的时延要求,最短为20s,…)。UE可在ATTACH和TAU中请求开启PSM或(和)eDRX,但最终开启哪一种或两种均开启、以及周期是多少均由网络侧决定。 附上NB-IOT几个关键特征 1、海量连接 指能实现比GSM高20db的覆盖增益,放大了倍数,信号参透力强。 2、设备不需要持续连接,功耗低 从这个角度来说,NB-IOT确实是为设备联网而设计的,设备联网的特点: ①小包数据,或低频或高频; ②对时延不敏感; ③网络可靠性要求高; ④非长连接。 如果采用以往蜂窝网比如GPRS方式,沿用到物联网的领域,从主网或安全性来说,也是比较差的。 所以说, NB-IOT来了,才叫物联网时代来临了。 原文出处:物联网智库

问问小秘 2019-12-02 02:11:20 0 浏览量 回答数 0

问题

【Java学习全家桶】1460道Java热门问题,阿里百位技术专家答疑解惑

管理贝贝 2019-12-01 20:07:15 27612 浏览量 回答数 19

问题

一个项目的自动化测试实践

技术小菜鸟 2019-12-01 21:15:22 3291 浏览量 回答数 1

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

问题

入侵防御系统怎样主宰网络安全市场金牌

elinks 2019-12-01 21:15:22 9640 浏览量 回答数 0

回答

01「思维陷阱」是一个人职场平庸的根本原因 有没有人想过:为什么有些人在职场显得能力特别差? 我们生活在一个容易让人焦虑的时代,每天都需要主动或者被动地接受大量的信息,但少有人清醒地知道,这些信息悄悄改变了我们的“思维方式”乃至“行为”,引导我们走进陷阱。 如果你不能意识到,你可能正在被“思维陷阱”拖入平庸和焦虑的痛苦中。 为了方便理解,我下面列出三种最常见的陷入“思维陷阱”的人,对照看看自己是不是: 热衷快餐知识,却不能清醒知道自己无知的人 习惯什么都“靠自己”的人 无法一眼看透事物发展背后本质的人 **1. 热衷快餐知识 ** 却不能清醒知道自己无知的人 伴随着知识付费的崛起,近几年出现了大量热衷快餐知识的人_他们是朋友圈的“概念狂人”,对权威、意见领袖的观点非常追捧,关于最新的话题他总能发表看法,他们热衷于走捷径,转发的文章总是散发着贩卖焦虑的气味。 但如果与他们深入交流,你会发现:除了这些二手的快餐知识,他们对常识和经典无知的可怕。 这些人最大的特点是不知道自己的无知——认为自己脑子中的想法是什么样,世界就是什么样。这种人在职场有一个很难缠的习惯:很喜欢先入为主一个自己坚持的观点,然后再围绕这个观点去寻找支持论据。 如果这种人有较高的执行力,那就太可怕了——因为在他们很努力地将片面的理解付诸行动时,你根本无法说服他,一切都要等他让所有人都撞得头破血流停下来才能进行调整。 **2. 习惯 ** 什么都“靠自己”的人 如果一个人看多了鸡汤文里“什么都不如自己可靠”的口号,或者片面理解了近几年常说的“为结果负责”这句话,那他就会走入“靠自己”的思维陷阱。 这些人最大的特点就是害怕麻烦别人,害怕拒绝——认为目前事物无法圆满完成的原因,主要是自身实力或资源还不够,所以会一味地增强自身资源以期望达到目标。 他们既不能看到别人那里多余的可协作资源,也不能将自己的资源为别人所用。 因为害怕暴露出错,他们也不擅长分享和求助。 他们会觉得自己深刻理解了“责任”的意义,但是却总是感到每天的工作压力山大,那些习惯在办公室里加班到凌晨但效率低下的员工往往是这种人。 **3. 无法一眼看透事物发展背后矛盾本质的人 ** 《教父》最有名的一句话是“花半秒钟就看透事物本质的人,和一生都看不清事物本质的人,注定是截然不同的命运。” 那什么是“事物的本质”呢? 其实就是位于事物发展中底层的矛盾。 如果一个人看事物或者解决工作难题的时候,没有思考背后的矛盾和规律的习惯,就容易流于表面,他们可能洞察力不错,比起一般人能关注那些细节,但是却缺乏全局观,容易纠结在自己的小世界里。 注意:没有日常观察思考“事物发展背后的矛盾”习惯的人,注定无法成长为团队的领导者! 在职场,他们是需要反复指导和争论,耗费团队沟通成本的下属,在解决问题时,他们是无法快速清晰找到问题抓手的那群人;在生活中,他们往往又会陷入“拎不清”或“选择困难”的麻烦中。 02 那些互联网大神 是如何跳出“思维陷阱”的? “思维陷阱”就藏在人性的弱点中,它是如此可怕和不易察觉,我们必须保持一些日常思考习惯来对抗它对我们的影响。 也许你能从下面三位阿里巴巴高管身上拥有的特质中找到答案,这些习惯帮助他们克服“思维陷阱”在中国最复杂的商业经济体——阿里巴巴中取得了事业上的巨大成就。 他们是那些经历过绝望后谷底反弹的人,那些长期默默坚持而又一鸣惊人的人,那些在危急关头敢于独自按下刹车键的人,他们分别是钉钉创始人无招、盒马鲜生创始人侯毅,以及现在的淘宝天猫总裁蒋凡。 **1. 钉钉创始人无招 ** 抛下已知去“观察”外界的习惯 “无招”是花名,如果结合他在阿里的经历看,会发现很有意思。 钉钉创始人无招 2014年,阿里经历了强推社交产品“来往”的巨大挫折;在智能手机全国开始普及的年代,因为社交用户基数大,而且极度高频的入口级特性,社交产品所能带来的安全感是各大互联网厂商都极度渴望的,所以你可以理解为什么马化腾会把微信横空出世称为:抢到第一张移动互联网船票。 而陈航和他所在的团队,就是试图通过挑战微信,为阿里赢得安全感的一群人。 用再造一个“微信”来挑战微信,结果就是无招需要和团队把一场惨痛的失败消化下来。 但有没有人想过:这样的严重挫败陷入的低谷,对一个产品型的团队领导者也许是一件好事——因为绝望会让一个人抛弃原有的脑子里对世界所有的理解,进入一种彻底放空和内省状态,这时候才能静下心来观察和阅读世界真正的需要。 这与悟道的逻辑不谋而合。 作为一个产品经理可能会反思:任何大而广的东西一定有弱点,如果说微信的社交面是一条横线,需要观察寻找的,是哪里可以诞生一条尚未挖掘的纵线。 那么这条纵线是什么呢? 静心向内看就会有答案,那就是阿里生态圈的万千小B企业。 如果你进入用户的心中去“观察”他们的想法,你就会用心眼看到后面的答案。 之后被外界评价“反人性”的钉钉迅速破圈微信获得了成功,而鹅厂主打“温度”的企业微信却一直不温不火,这个现象背后原因是什么? 很多人认为是因为钉钉抓住了老板的强压执行力需求,自上而下地推动市场,所以在微信办公的大环境下撕开了一个缺口。还有人同时认为无招是个冷酷的人。 但我现在却不这样认为。 在仔细阅读和研究了关于钉钉2015年来,所有无招在公开场合的发言和对钉钉产品的理解后,我认为他是国内少有的具备高度同理心的产品经理型CEO之一。 他身上有一种放下固有认知,虚心“观察”用户内心所需的能力,而且这几乎融入了他和团队的日常习惯中。 可能连使用者自己都不知道,钉钉的成功最深处,是在碎片化办公的大环境下,人性中饱含的对深度工作专注和效率的追求。而在这一点上,无论是老板还是员工,只要他还算是 “想做事的人” 那就是共通的! 人们只会说自己要一匹更快的马,但亨利福特却能观察到人心深处对速度的追求,为人们造出汽车。 “观察”的不是表面,而应该是人的内心! 在这个状态中,最重要的是要保持不带任何预设立场的“空”,不先入为主,不画地为牢,带着无知观察世界。 你不能带着“已知”去看待市场;不能孤立地,刻板地去读那些所谓的“大数据”,也不能光靠人云亦云来判断用户真正的需求,而要用“无知”的心态去接近和观察用户——那些一个个自然人的情绪和需要,以人为本。 不然,就会像百度沉迷于搜索引擎的修补,放出了头条;腾讯放弃了对用户工作外时间使用的的观察,做大了抖音。 如果他们的产品经理愿意走出北上广高大上的写字楼,走到他们真正需要服务的“群众”中去,结合数据和实践,也许就会“观察”到——哦~原来世界不是自己坐在角落里想象的那样。 钉钉所有的员工,入职后第一课就是被要求放下已知,带着空杯进入那些小B企业中,同工同吃,“观察”和阅读用户内心真正的需要。 “无”招胜有招——《笑傲江湖》里风清扬传给令狐冲的第一句话。 **2. 盒马鲜生创始人侯毅 ** 保持“关联性”思考的习惯 说完钉钉的无招,我们再看看盒马的侯毅。 盒马鲜生创始人侯毅 侯毅这个人很有意思,因为他最早是刘强东的“兄弟”,在京东长期希望推动一个类似盒马的前瞻O2O项目,无奈一直没有人关注;最后被逍遥子识才,多次劝说后,决定加入阿里,盒马鲜生是这么来的(这里不得不说:老逍简直比老萧还厉害)。 盒马鲜生是带火了“新零售”这个概念的明星企业,但很多人其实不懂“新零售”是什么。 所谓新零售的准确定义,其实就是在各种资源的关联和协同组合中,寻求一种能大大节约成本,提高价值的新组合。 为什么代表人物会是侯毅? 你可以理解成:因为长年专注在线下线上相结合的领域,侯毅的脑子有了一个叫“资源相互联系”的魔方,每天他都需要转动几次,去寻找数个变量组合资源中,无限接近“提高价值降低成本”的最优解。 所以这样看盒马和侯毅,你就可以突然看懂了:为什么可以推出“盒区房”这种以小博大的品牌亮点,通过捆绑房地产这个敏感话题,达到巨大宣传效果;以及明白为什么在今年的艰难时期,盒马能够快速反应,第一个推出了大显身手的“共享员工”模式了。 盒马的品牌是围绕着社区服务来的,线下线上配合的打法中,作为领导者的侯毅永远不能孤立地去思考,如果只想着依靠自己的力量去发展,那就坏事了。 保持日常的关联性思考,也有助于让一般人看竞争时,不陷入二元对立的表面理解。 用“关联性”的思维来理解阿里的战略,你会发现:任何与阿里展开竞争的企业,他们需要面对的是整个的阿里军团。 比如美团面对的是饿了么和口碑吗?那么盒马呢?大润发呢?银泰呢?支付宝呢?阿里云呢?天猫超市呢? 所以作为普通人,你可以学到的是永远不要只想着只用自己的资源和能力去做事。 一定要懂得资源之间的“关联性”,不要怕麻烦别人,也许你也能给别人创造价值呢?所以,你也可以在大脑中培养一个“关联性”思考事物的魔方。 **3. 淘宝天猫总裁蒋凡 ** 思索事物发展背后矛盾的习惯 当宣布蒋凡挑大梁的时候,很多人会问:为什么张勇和马云会选择一个少壮派? 淘宝天猫总裁蒋凡 也许张勇最能理解蒋凡:因为他们都是那种“在关键时刻孤独地扮演过‘扳道工’角色的人”——无论当时对他们来说,自己在不在最重要的位置上。 在蒋凡身上,有着外界所说的“一眼看穿底层逻辑”的能力;也是当下信息爆炸的时代,一种透过乱七八糟的消息迷雾,看到复杂事物中最简单的常识的能力。 这种能力,就是要看透推动事物发展背后的矛盾。 一个外表复杂的事物,它的本质其实是常识,就像新闻联播里每天在说的“当下主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾”。 到底什么是“消费升级”? 必须要用矛盾的观点看: 我们这些五环内白领在双11抢不到戴森吸尘器的不是真正的主要矛盾,你看不到的地方,“国内的大多数”的小镇青年想买一件耐克配国潮,而自己所处的城镇既没有CBD和没有大商场,下班时间甚至都不知道怎么打发——这才是主要矛盾。 去拼多多拼个9块9的手纸,被五环内用户嘲讽为“消费降级”,可你要知道拼多多的手纸不是为你准备的,是为广大“中国的大多数”准备的——这,才是真正的消费升级! 但在那个年代,并不是所有人都能认清主要矛盾。 当时即使在阿里内部,长年的竞争也让一部分人陷入了思维陷阱,认为京东是天猫最大的追赶者。 那时候也有人知道小镇青年的重要性,可是当时大家的理解还停留在跑到农村去刷墙。 拼多多为什么能够在阿里眼皮下迅速崛起呢!? 如果说是把握了下沉市场还是流于表面,你用矛盾的观点看本质: 第一点,2015~2017年间,大量阿里生态内的小小B端的角色,如底层商家、淘客、羊毛党因为阿里战略调整,对外发生了外溢,这些互联网游牧民走到哪,哪里就形成了新的细小供应链——这些人离开阿里要吃饭啊,这是最主要矛盾。 第二点,低价智能机和微信支付相结合,带来了小镇青年整体电商用户盘子扩大——这些人的日常时间要怎么打发,身边可能连个高级商场都没有,这是次主要矛盾。 这些东西,身处五环内的你在那个年代里,光看数据是不会马上发现的,只有靠细微的洞察才能感知到: 快递小哥的包裹里是不是开始有了别的平台的商品? 老家父母亲戚的朋友圈,是不是很多东西变了? 地方台的的综艺节目里面,广告赞助商是不是出现了不认识的牌子?(可惜很多北上广人不看电视) 那些像游牧民族一样的羊毛党,被你屏蔽朋友圈的微商妈妈又在忙什么? 透过现象看本质,拼多多就是抓住了这些要素悄悄长大的。 蒋凡上任后面对这个需要被再次重视的市场,是怎么抓“主要矛盾”的? 首先是重新平衡天猫、淘宝的重心,平衡“大多数用户”和B端之间的消费和供给——这不是拿捏尺度的平面问题,而是一个对顶层架构重新分析、设计的立体问题。 选用模式更适合五环外市场的聚划算做渠道下沉,向低线城市渗透、并且覆盖全年龄段,尽快封堵挤压拼多多的继续扩张 发力短视频、抖音、网红,直播这些内容场景,再通过大数据精准推送,通过占领用户时间,赢得市场,让B端人群比如主播网红下沉去填补C端的使用手机时间。 带领品牌商家下沉。之前很多品牌集中在打一二线市场,原有的渠道网络对于下沉市场是滞后的。但随着阿里的强势运营,优质的中部商家做敲门砖品牌迅速得以下沉——提前占住山头,让对手仰攻。 随着最近淘宝特价推出,结合淘宝、聚划算、天猫、淘小铺全面出击,阿里军团的刀枪剑戟朝向了同一个方向:B端搭建架构,C端占领时间,蒋凡完成了对北上广人群和下沉市场的一记全垒打! 目前我们还不知道拼多多的黄铮会如何接下蒋凡这一记硬球——因为占据了品牌优势,拼多多对阿里会长期处于一种“仰攻”状态。 这就难受了,毕竟狮子猛回头扑向一只咬自己尾巴的鬣狗很容易,但鬣狗要一口吃下一只狮子却很难。 03 你该如何训练“三种思维” 获得职场成功! 写到这里,你也许会说:似乎这些思维习惯也没有多么的深奥啊?这些难道不是常识吗? 你说的没错,但那些高手恰恰是将尝试变成了一种日常习惯去反复练习——因为“思维陷阱”会无时无刻存在,人必须通过训练保持觉知才行,所以我们需要复习一下这三种思维习惯: **1. 如何训练 ** 带着无知“观察”的思维习惯? 日常中,很多人会觉得自己的情商和同理心不足,不知道对方心里想什么,要怎么办? 这就可以先从“观察”自己的内心的练习开始。 练习“观察”的方式: 保持空无,抛下预设 ▼ 用客体视角觉察出自己内心与行为的关系 ▼ 再试着深入“阅读”他人内心与行为的关系 ▼ 结合规律,分析出外界真实的需要 ▼ 在生活与工作中做出策略调整或反应 ▼ 保持练习,达到情商和洞察力的提高 如果观察熟练,可以用这个方法去看世界和他人的情绪,进而搞明白对方真正的需要,即使是对方没有清晰表达出来的。 打个比方:春节时期,网上那种对于钟南山敬佩和对湖北一些事情愤怒的两极声音,如果你用心观察,你会发现他们的底层其实是同一种情绪“恐惧”——恐惧引发了行为,无论是愤怒还是寻找安全感。 再打个比方:如你单位中有一个人,别人都说这个人是自私自利的小人;你通过“观察”发现,原来对方只是个内心缺乏安全感的可怜人,所以也就可以在职场打交道中理解和推测出对方的想法和行为,读出对方真正的内心需要。 做市场运营,产品经理,品牌定位,尤其需要这种“观察”他人内心真正需要的能力。 **2. 如何训练 ** 保持“关联性”思考的习惯? 如何培养“关联性”思维,在职场拿到资源,产生更好的协作? 练习“关联性”思维的方式: 抛开过去那种任何事都想着“自己干”的想法,问自己三个问题: 我现在要做的事情,有没有利他性? 可以不可以与他人形成合力? 最终取得的成果,能不能多方共享? 如果三个问题想清楚了没问题,那么不怕拒绝,厚着脸皮干就完了! 如果三个问题想清楚了没问题,那么不怕拒绝,厚着脸皮干就完了! 日常要留心,自己和他人身上,有哪些可以“做成事”的资源,这并不是要人学会自利,而是需要培养自己的协作性;自己的专业知识,钱,甚至体力,时间,人脉圈,都是能一起互相协作的资源。 除了人与人的资源关联性,还可以培养物与物相互跨界联系的能力。 比如在阿里,训练公关的新闻策划能力,就有一种称之为“两只试管法”的日常思考方法。 你可以想象成左手握一个产品试管,右手握一个情绪试管,然后两种试剂倒在了一起,产生神奇的化学反应。 比如: 盒马鲜生(线下的果蔬生鲜服务设施/一种都市快节奏生活方式)+ 房价(情绪饱满的高敏感民生话题)= 品牌概念:盒区房 进口水果 + 北上广的生活压力(情绪饱满的消费焦虑)= 热门话题:车厘子自由 “关联性”思维练习配合“观察”运用在策划和创意里,是不是非常有趣? **3. 如何训练 ** “看穿事物底层矛盾”的思维习惯? 看事物的底层逻辑,也同样需要上面的两种思维。 日常可以多读读经典,少接触如今的“时髦概念书”以免被先入为主污染,枕头边可以放一本《毛选》,其中《矛盾论》和《实践论》是精华。 日常遇到争议性的事情,不要着急下判断,也不要站队;就站在旁观者的角度,思考思考为什么双方会这么想,他们各自有哪些需要没有被满足? 渐渐地,在别人眼中,你成了一开口就可以直击问题本质的人。 等到熟练之后,再拿来看一个人群或者一片市场,思考和实践调研他们真正的供需中,有哪些地方是目前供需所不平衡的,在这样不平衡产生的痛点中,出现了什么替代方案? 以上就是我所分享的练习方法。 最后补充一点:如果有一件事你觉得一定会如此,那么保险起见尝试从相反的方向推论看有没有漏洞。 你还可以经常对外分享自己的心得和观点(我自己就在用这种方式保持二次学习和修正提炼),不要担心出错,通过理性的交流和思辨,通过他人的认知进行思辨和修正。 通过这种方式收获了解,你会发现:自己其实并不孤独。 参考: 《毛选》 《行为》罗伯特·M·萨波斯基 《智能的结构》霍华德·加德纳 《硬球》克里斯·马修斯 《合作的进化》罗伯特.阿克塞尔罗德 《笑傲江湖》金庸 作者:舒扬,笔名舍予兄(个人WX:shuyang9451)休养前担任阿里健康高级公关专家,目前是一名 长跑 和 行为心理学 爱好者,著有畅销书《共鸣》,一个喜欢深夜在朋友圈发长篇思考的人。事业目标是成为最好的公关,在这条路上将永远是一个学生。

剑曼红尘 2020-04-13 11:47:20 0 浏览量 回答数 0

回答

为什么你的代码是一个单体? 除了已经实现了微前端的应用之外,所有前端应用本质上都是单一的应用。原因是如果您正在使用 React 库进行开发,并且如果您有两个团队,则两个团队都应该使用相同的React 库,并且两个团队应该在部署时保持同步,并且在代码合并期间始终会发生冲突。它们没有完全分离,很可能它们维护着相同的仓库并具有相同的构建系统。单体应用的退出被标志为微服务的出现。但是它适用于后端! 什么是微服务? 对于微服务,一般而言最简单的解释是,它是一种开发技术,允许开发人员为平台的不同部分进行独立部署,而不会损害其他部分。独立部署的能力允许他们构建孤立或松散耦合的服务。为了使这个体系结构更稳定,有一些规则要遵循,可以总结如下:每个服务应该只有一个任务,它应该很小。所以负责这项服务的团队应该很小。关于团队和项目的规模,James Lewis 和 Martin Fowler 在互联网上做出的最酷解释之一如下: 在我们与微服务从业者的对话中,我们看到了一系列服务规模。报道的最大规模遵循亚马逊关于Two Pizza Team的概念(即整个团队可以由两个比萨饼供给),意味着不超过十几个人。在规模较小的规模上,我们已经看到了一个由六人组成的团队支持六项服务的设置。 我画了一个简单的草图,为整体和微服务提供了直观的解释: 从上图可以理解,微服务中的每个服务都是一个独立的应用,除了UI。UI仍然是一体的!当一个团队处理所有服务并且公司正在扩展时,前端团队将开始苦苦挣扎并且无法跟上它,这是这种架构的瓶颈。 除了瓶颈之外,这种架构也会导致一些组织问题。假设公司正在发展并将采用需要 跨职能 小团队的敏捷开发方法。在这个常见的例子中,产品所有者自然会开始将故事定义为前端和后端任务,而 跨职能 团队将永远不会成为真正的 跨职能 部门。这将是一个浅薄的泡沫,看起来像一个敏捷的团队,但它将在内部分开。关于管理这种团队的更多信息将是一项非常重要的工作。在每个计划中,如果有足够的前端任务或者sprint中有足够的后端任务,则会有一个问题。为了解决这里描述的所有问题和许多其他问题,几年前出现了微前端的想法并且开始迅速普及。 解决微服务中的瓶颈问题:Micro Frontends 解决方案实际上非常明显,采用了多年来为后端服务工作的相同原则:将前端整体划分为小的UI片段。但UI与服务并不十分相似,它是最终用户与产品之间的接口,应该是一致且无缝的。更重要的是,在单页面应用时代,整个应用在客户端的浏览器上运行。它们不再是简单的HTML文件,相反,它们是复杂的软件,达到了非常复杂的水平。现在我觉得微型前端的定义是必要的: Micro Frontends背后的想法是将网站或Web应用视为独立团队拥有的功能组合。每个团队都有一个独特的业务或任务领域,做他们关注和专注的事情。团队是跨职能的,从数据库到用户界面开发端到端的功能。(micro-frontends.org) 根据我迄今为止的经验,对于许多公司来说,直接采用上面提出的架构真的很难。许多其他人都有巨大的遗留负担,这使他们无法迁移到新的架构。出于这个原因,更柔软的中间解决方案更加灵活,易于采用和安全迁移至关重要。在更详细地概述了体系结构后,我将尝试提供一些体系结构的洞察,该体系结构确认了上述提议并允许更灵活的方式。在深入了解细节之前,我需要建立一些术语。 整体结构和一些术语 让我们假设我们通过业务功能垂直划分整体应用结构。我们最终会得到几个较小的应用,它们与单体应用具有相同的结构。但是如果我们在所有这些小型单体应用之上添加一个特殊应用,用户将与这个新应用进行通信,它将把每个小应用的旧单体UI组合成一个。这个新图层可以命名为拼接图层,因为它从每个微服务中获取生成的UI部件,并为最终用户组合成一个无缝 UI,这将是微前端的最直接实现朗 为了更好地理解,我将每个小型单体应用称为微应用,因为它们都是独立的应用,而不仅仅是微服务,它们都有UI部件,每个都代表端到端的业务功能。 众所周知,今天的前端生态系统功能多样,而且非常复杂。因此,当实现真正的产品时,这种直接的解决方案还不够。 要解决的问题 虽然这篇文章只是一个想法,但我开始使用Reddit讨论这个想法。感谢社区和他们的回复,我可以列出一些需要解决的问题,我将尝试逐一描述。 当我们拥有一个完全独立的独立微应用时,如何创建无缝且一致的UI体验? 好吧,这个问题没有灵丹妙药的答案,但其中一个想法是创建一个共享的UI库,它也是一个独立的微应用。通过这种方式,所有其他微应用将依赖于共享的UI库微应用。在这种情况下,我们刚刚创建了一个共享依赖项, 我们就杀死了独立微应用的想法。 另一个想法是在根级共享CSS自定义变量( CSS custom variables )。此解决方案的优势在于应用之间的全局可配置主题。 或者我们可以简单地在应用团队之间共享一些SASS变量和混合。这种方法的缺点是UI元素的重复实现,并且应该对所有微应用始终检查和验证类似元素的设计的完整性。 我们如何确保一个团队不会覆盖另一个团队编写的CSS? 一种解决方案是通过CSS选择器名称进行CSS定义,这些名称由微应用名称精心选择。通过将该范围任务放在拼接层上将减少开发开销,但会增加拼接层的责任。 另一种解决方案可以是强制每个微应用成为自定义Web组件(custom web component)。这个解决方案的优点是浏览器完成了范围设计,但需要付出代价:使用shadow DOM进行服务器端渲染几乎是不可能的。此外,自定义元素没有100%的浏览器支持,特别是IE。 我们应该如何在微应用之间共享全局信息? 这个问题指出了关于这个主题的最关注的问题之一,但解决方案非常简单:HTML 5具有相当强大的功能,大多数前端开发人员都不知道。例如,自定义事件(custom events) 就是其中之一,它是在微应用中共享信息的解决方案。 或者,任何共享的pub-sub实现或T39可观察的实现都可以实现。如果我们想要一个更复杂的全局状态处理程序,我们可以实现共享的微型Redux,通过这种方式我们可以实现更多的相应式架构。 如果所有微应用都是独立应用,我们如何进行客户端路由? 这个问题取决于设计的每个实现, 所有主要的现代框架都通过使用浏览器历史状态在客户端提供强大的路由机制, 问题在于哪个应用负责路由以及何时。 我目前的实用方法是创建一个共享客户端路由器,它只负责顶级路由,其余路由器属于相应的微应用。假设我们有 /content/:id 路由定义。共享路由器将解析 /content,已解析的路由将传递到ContentMicroApp。ContentMicroApp是一个独立的服务器,它将仅使用 /:id 进行调用。 我们必须是服务器端渲染,但是有可能使用微前端吗? 服务器端呈现是一个棘手的问题。如果你正在考虑iframes缝合微应用然后忘记服务器端渲染。同样,拼接任务的Web组件也不比iframe强大。但是,如果每个微应用能够在服务器端呈现其内容,那么拼接层将仅负责连接服务器端的HTML片段。 与传统环境集成至关重要!但是怎么样? 为了整合遗留系统,我想描述我自己的策略,我称之为“ 渐进式入侵 ”。 首先,我们必须实现拼接层,它应该具有透明代理的功能。然后我们可以通过声明一个通配符路径将遗留系统定义为微应用:LegacyMicroApp 。因此,所有流量都将到达拼接层,并将透明地代理到旧系统,因为我们还没有任何其他微应用。 下一步将是我们的 第一次逐步入侵 :我们将从LegacyMicroApp中删除主要导航并用依赖项替换它。这种依赖关系将是一个使用闪亮的新技术实现的微应用:NavigationMicroApp 。 现在,拼接层将每个路径解析为 Legacy Micro App ,它将依赖关系解析为 Navigation MicroApp ,并通过连接这两个来为它们提供服务。 然后通过主导航遵循相同的模式来为引导下一步。 然后我们将继续从Legacy MicroApp中获取逐步重复以上操作,直到没有任何遗漏。 如何编排客户端,这样我们每次都不需要重新加载页面? 拼接层解决了服务器端的问题,但没有解决客户端问题。在客户端,在将已粘贴的片段作为无缝HTML加载后,我们不需要每次在URL更改时加载所有部分。因此,我们必须有一些异步加载片段的机制。但问题是,这些片段可能有一些依赖关系,这些依赖关系需要在客户端解决。这意味着微前端解决方案应提供加载微应用的机制,以及依赖注入的一些机制。 根据上述问题和可能的解决方案,我可以总结以下主题下的所有内容: 客户端 编排路由隔离微应用应用之间通信微应用UI之间的一致性 服务端 服务端渲染路由依赖管理 灵活、强大而简单的架构 所以,这篇文章还是很值得期待的!微前端架构的基本要素和要求终于显现! 在这些要求和关注的指导下,我开始开发一种名为microfe的解决方案。在这里,我将通过抽象的方式强调其主要组件来描述该项目的架构目标。 它很容易从客户端开始,它有三个独立的主干结构:AppsManager, Loader, Router 和一个额外的MicroAppStore。 AppsManager AppsManager 是客户端微应用编排的核心。AppsManager的主要功能是创建依赖关系树。当解决了微应用的所有依赖关系时,它会实例化微应用。 Loader 客户端微应用编排的另一个重要部分是Loader。加载器的责任是从服务器端获取未解析的微应用。 Router 为了解决客户端路由问题,我将 Router 引入了 microfe。与常见的客户端路由器不同,microf 的功能有限,它不解析页面而是微应用。假设我们有一个URL /content/detail/13 和一个ContentMicroApp。在这种情况下,microfe 将URL解析为 /content/,它将调用ContentMicroApp /detail/13 URL部分。 MicroAppStore 为了解决微应用到微应用客户端的通信,我将MicroAppStore引入了 microfe。它具有与Redux库类似的功能,区别在于:它对异步数据结构更改和reducer 声明更灵活。 服务器端部分在实现上可能稍微复杂一些,但结构更简单。它只包含两个主要部分 StitchingServer 和许多MicroAppServer。 MicroAppServer MicroAppServer 的最小功能可以概括为 init 和 serve。 虽然 MicroAppServer 首先启动它应该做的是使用 微应用声明 调用 SticthingServer 注册端点,该声明定义了 MicroAppServer 的微应用 依赖关系, 类型 和 URL架构。我认为没有必要提及服务功能,因为没有什么特别之处。 StitchingServer StitchingServer 为 MicroAppServers 提供注册端点。当 MicroAppServer 将自己注册到 StichingServer 时,StichingServer 会记录MicroAppServer 的声明。 稍后,StitchingServer 使用声明从请求的URL解析 MicroAppServers。 解析M icroAppServer 及其所有依赖项后,CSS,JS和HTML中的所有相对路径都将以相关的 MicroAppServer 公共URL为前缀。另外一步是为CSS选择器添加一个唯一的 MicroAppServer 标识符,以防止客户端的微应用之间发生冲突。 然后 StitchingServer 的主要职责就是:从所有收集的部分组成并返回一个无缝的HTML页面。 其他实现一览 甚至在2016年被称为微前端之前,许多大公司都试图通过 BigPipe 来解决Facebook等类似问题。如今这个想法正在获得验证。不同规模的公司对该主题感兴趣并投入时间和金钱。例如,Zalando开源了其名为Project Mosaic的解决方案。我可以说,微型和 Project Mosaic.遵循类似的方法,但有一些重要的区别。虽然microfe采用完全分散的路由定义来增强每个微应用的独立性,但Project Mosaic更喜欢每条路径的集中路由定义和布局定义。通过这种方式,Project Mosaic可以实现轻松的A/B测试和动态布局生成。 对于该主题还有一些其他方法,例如使用iframe作为拼接层,这显然不是在服务器端而是在客户端。这是一个非常简单的解决方案,不需要太多的服务器结构和DevOps参与。这项工作只能由前端团队完成,因此可以减轻公司的组织负担,同时降低成本。 已经有一个框架叫做 single-spa。该项目依赖于每个应用的命名约定来解析和加载微应用。容易掌握想法并遵循模式。因此,在您自己的本地环境中尝试该想法可能是一个很好的初步介绍。但是项目的缺点是你必须以特定的方式构建每个微应用,以便他们可以很好地使用框架。 最后的想法 我相信微前端话题会更频繁地讨论。如果该主题能够引起越来越多公司的关注,它将成为大型团队的事实发展方式。在不久的将来,任何前端开发人员都可以在这个架构上掌握一些见解和经验,这真的很有用。 关于本文 译者:@Vincent.W 译文:https://zhuanlan.zhihu.com/p/82965940 作者:@onerzafer 原文:https://hackernoon.com/understanding-micro-frontends-b1c11585a297 加入阿里云钉钉群享福利:每周技术直播,定期群内有奖活动、大咖问答 阿里云开发者社区

茶什i 2020-01-06 17:57:24 0 浏览量 回答数 0

问题

Nginx性能为什么如此吊

小柒2012 2019-12-01 21:20:47 15038 浏览量 回答数 3

问题

【精品问答】Python二级考试题库

珍宝珠 2019-12-01 22:03:38 1146 浏览量 回答数 2

问题

Git 改变了分布式 Web 开发规则:报错

kun坤 2020-06-08 11:09:24 3 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站