关于微前端(阿里QianKun)的那点事——上线一个“微前端”逼走了2位90后

·  阅读 49532
关于微前端(阿里QianKun)的那点事——上线一个“微前端”逼走了2位90后

「本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!

  • 📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!
  • 📢本文作者:由webmote 原创,首发于 C🙉
  • 📢作者格言: 生活在于折腾,当你不折腾生活时,生活就开始折腾你,让我们一起加油!💪💪💪

🎏 序言

作为一个团队领导者,需要经常帮助组员解决各类阻塞问题。🎎🎎🎎

而我一直从事后端的开发,导致对前端的知识储备并没有那么丰富(实际很简陋)。

鉴于当下流行的开发模式几乎都是前后端分离的,为了组建好团队,前端、后端几乎1比1配置好像有些不太对,因此稍微倾斜了下后端,按80%配置前端,这个比例到底是不是合适,估计每个人都有自己的见解,可以留言谈谈你们团队的人员配比问题。

我们的新的产品,后端采用微服务,前端采用微前端,感觉是绝配啊。没想到,悲剧就此拉开序幕.....

在这里插入图片描述

🎏 01.你好像不会哎...

为了组建团队,需要进行多轮次的面试,遴选人才从来不是一个轻松的活。

揣着一颗忐忑不安的心,在备足了前端的知识后,开始上岗面试了,碰到我这种半瓶子晃荡的面试官,诸位前端大佬们是不是很轻松的吊打面试官?

谈谈我的面试方式

我的一般步骤是:

  • 🍄进入正题前,和他们聊聊经历、离职原因以及之前的开发团队情况,聊完觉得还合适的,就再深入聊聊技术。
  • 🍄一般会问下vue的生命周期、vue的路由分类、父子组件通信方式以及对象的深度拷贝,甚至会让他写个递归函数,到此基本结束。

一般在聊对象深拷贝的时候,好多前端工程师就冒出来一句:你好像不会哎,你不了解前端吧。

  哎呀,妈呀!这句话简直是晴天霹雳,震得老夫虎躯一阵摇晃!

看来我恶补的vue知识、typescript基础以及当时上手的angular项目都是白来的了,好吧,我只好坦白,我不是很懂。

好像我终于找到了真正的前端工程师,你就是我想要的人才!

来吧,come on,baby!

这就是我被吊打的整个过程。🔥🔥🔥

🎏 02.看起来不错的90后前端

面试的一位前端90后,聊的还算愉快,会的也多(⚡吊打后的真实反应⚡),看项目经验也蛮不错,我希望他来做前端组长。

毕竟对于疏于前端知识的我来说,没必要在不熟悉的领域花费太多时间。

让能干的人,把事情干好就行了。🤔🤔🤔

工资我还希望能再给他多点,毕竟找个能干的人不容易,稳定的团队才能够持续发展。

也许灾难的起源就在于不了解,对前端的知识匮乏,导致了后续事件的发酵。

微前端的概念应该有好几年了,之前也和以前的同事聊过,都觉得是不错的理念。恰好我看到有介绍阿里QianKun引擎的文章,讲的非常详细,我就转发给了这位90后小伙子。并多次给他说我们需要微前端架构搭设我们的项目,采用阿里成熟的引擎,至少方向不会错。

不知道我的理解对不对:

微前端在我的理解是基于目前的框架,代替了iframe老式组织形式的变种而已。

如果没有淘汰iframe,那么使用iframe做微前端,简直简单的要死。 而微前端引擎就是采用新的技术替代iframe,因此需要做到子应用的加载,甚至动态加载,并且需要解决掉CSS、JS的冲突,隔离开其范围。

任务已经布置了,就耐心等待结果吧,一切就交给“前端组长”吧!😍😍😍

🎏 03.目不暇接的DEMO

团队的沟通永远是个问题,而日本人并不这么认为,他们有一套自己的方法。

一个问题,要想布置的很清晰,需要按五步法来进行。

  1. 要有一个能胜任的人 🕺
  2. 要有明确的完成时间 ⏱️
  3. 要有明确的完成标准 🚩
  4. 布置完任务,让员工复述一遍🗣️
  5. 做好汇报要求,检查进展✅

而在此过程中,我并没有按照上述步骤实施,而我以为他以为可能并未对齐。

当然我只是简单的跟踪下任务进度和看下最终结果,里面的代码我也没有去把控。

大概几天后,我亲爱的90后前端组长(手下有2为前端成员),就拿出来3个DEMO,说都是别人基于qiankun或是single-spa做的微前端,基座和子应用都有,支持vue、angule、react等等。

我感觉随便一个都满足我的需求啊,这下我就更放心了。 “你来定一个”,反正我们也不需要其他技术栈,只要支持vue就可以了。

另外一个前端工程师去做子应用,配合基座完成子应用的改造。

分工感觉很明晰了,这个迭代的目标也应该没问题了吧?每天的晨会,都有进展,就不提了。

🏃🏃🏃又过了大约1-2周,当我再去了解的时候,前端组长说基座和子应用通信有些问题,我就大致看了下qiankun的介绍文档,并把文档贴到群里。 在这里插入图片描述

我感觉我已经看懂了,采用引擎提供的api,就可以传递token过去,然后我决定和他当面沟通下。 对话如下:

我:咱们这个通讯采用我发的那篇文章介绍就可以,你看看。 他:嗯嗯,这个很简单,采用localstorage就可以。 我:不行吧,子应用可能部署在不同的域下,那怎么可能呢? 他:这样啊,那我们就采用那个api,我再改改,改动比较大。 我:你用的是qiankun 几? 他:别人集成的,不知道啊。 我:是不是版本太低,现在好像是2点几。 他:这个项目看不了使用的是啥版本。 我:看看包里有没,我再看看官方文档去。 ............. 我看文档后 ,发现只需要安装qiankun包即可。 我:yarn add qiankun 他:我这个项目好像不是qiankuan的,我再看看别的demo......

此时,另外一位前端告诉我,他已经按照组长的吩咐,分别在3个demo上改了3版登录了,并且用的都不是qiankun...

我的娘啊,发生了啥!

在这里插入图片描述

🎏 04. 闪人了

星星之火,已经燎原!🔥🔥🔥

前面的错误耽搁了我们的选型时间,不过知错就改,赶快掉头仍来得及。

事情来了,稳住,别乱!🧺

我紧急通知前端组长,尽快采用qiankun包,构造项目,搭建基座。

刚好公司又来了一位前端,是个老手,这里就称呼他老A吧,让他和前端组长一块搞。

我自己也忙着查看官方文档,试图协助他们搞定基座容器项目,毕竟迭代任务需要按时完成

花费了几个小时,大致原理我看了一遍,觉得集成起来应该很简单,没有特别复杂的地方,当然作为技术经理,对其中的小坑还是有一定预知的。

下班时间到了,和他们一起沟通了下,哎,下班前做事情真不是我的初衷。

老A说,没问题,特简单,交给我搞吧,明天搞定。

前端组长说:搞不定了,让我去做子应用吧。

@@@我就和他单独聊了下前因后果,应该没有特别重的话,只是告诉他应该采用qiankun,而不应该采用其他的引擎,除非他有把握做的更好。这次就这样吧,让老A去搞基座,我们去做子应用的相关任务,并给他分了几个任务。

没想到在下班路上收到他的微信。

经理我想提离职,状态不行,平静一段时间再找工作

没适应过来

本来一号想说

状态不行,怕耽误进度

我试图挽留,毕竟仅仅遇到一个小坎坷呗,挺过去就没什么了。结果他只说了句:哎,状态没调整过来,去深圳我同学那调整一段时间,提升下技术。

好似一片雪花从头上划过,我看好的,依赖的,没有检验就依赖的前端组长,就这样闪人了。 一个月,留下了 7个DEMO项目。

难道这就是,传说中的这个领导不听我的....

🎏 05. 救火还需队长

除了面临前端组长留下的烂摊子以外,我也备受组建团队的打击。

我忽然明白了一个人的突然离职,对他的上级来说,也是一种额外的重击,当然,最终我又想通了,没啥大不了的,总结下教训就是了,没必要上纲上线。

第二天仍然是忙乱的一天,我一直跟踪着基座项目的进展,消息忽好忽坏。

下班的时候,前端老A告诉我,里面有许多问题搞不定,可能用不了,他下班了,明天再看。

虽然下班了,但我真的不能任事态发展下去了,我决心自己来试一下,看看到底卡在哪里了。

加班不分时间,好像做了领导就有了这觉悟!

我克隆下qiankun的官方Demo1、我发的那篇文章的Demo2,然后对比教程,一步步建立一个新的vue基座项目。

不会的就百度、谷歌。

  1. 建立新的vue项目:宇宙飞船

vue create portal-spaceShip

  1. 增加element-ui

yarn install element-ui

  1. 增加qiankun

yarn add qiankun

  1. 把demo2的ts程序翻译为js写到项目内
  2. 启动

✨好像成功了,我怀疑我是不是没进入新的状态,这么顺利吗?

✨把demo1的子应用启动一个,我的神啊,就这么快吗,没问题啊。

❤️好像有信心了:增加登录窗口、增加链接,没什么难点啊,登录ok了。

应该好了70%吧,我心里想。

好像还有点小问题,加载的子应用并没渲染到指定的容器内,而是顶在了顶层容器上。一番折腾,我终于发现问题的根源。

5.1 阿里乾坤的坑1

子应用加载会加载到顶层,是因为子应用和基座应用都使用了相同的id,把基座的index.html内的id修改为不同的id即可。

在这里插入图片描述

5.2 坑2 动态注册微服务

引擎注册由于生命周期缘故,需要在vue的周期前后启动,一般放在main.js,注册api registerMicroApps也在此时调用。但由于还没登录,因此无法注册设定的服务。经过大量查询issue,发现其已经支持动态添加子应用。只需再次调用 registerMicroApps即可。

你可以在app.vue内合适的地方调用,即可渲染增加新的微服务。

5.3 坑3 子应用返回主应用

这个应该不能算是引擎的坑,应该是启用了根目录导致的,不能往上层弹出路由,仅需要使用即可。

      //window.location.href = "/";
      window.history.pushState(null,'','/login');

5.4 核心点 子应用无需qiankun包

最核心的一点是,子应用不需要关注qiankun框架,无需引用其包,只需按照标准实现导出接口即可。

一切妥妥的,并没有那么难。

🎏 06. 绝杀技:有事不来了

当然晚上加班并没有搞完所有的,几个坑也是在加班后第二天解决的。

因为老A第二天没来,问起来,说是请假了,哎,这个假批还是不批...

其实既然已经开始搞了,那就搞得风生水起,当然也无需在意这些细节。

“不来就不来吧,没什么大不了。” 我只能自己安慰自己。

职场生存技能:如果搞不定手头的紧急事情,就请假吧,拖到你的上级两眼冒金星✨✨✨,事情自然有进展!

在这里插入图片描述

看起来,有必要加强前端知识了~~~

看起来,我带队伍的能力有待提高 ~~~

🎏 07. 结语

关于此事情,我和老板详谈了下,要点记录如下。

当然是他得看法和建议,值得反思,其实也有点打击我的积极性,因为我没有得到他的支持。

  • 识人问题,没搞清楚,就让人担大任
  • 放权问题,检验与任务布置不清晰
  • 职级差别,心离得太远,很难听到实话
  • 沟通占用时间过长,每个人都需要和我沟通
  • 后台框架固有问题,某某的槽点
  • 情商问题,情商不高🤕🤕🤕
  • 需要考虑轮流组长,设定中间人,来承担任务

🤕🤕🤕玻璃心的我也受到1万点伤害,不过我需要挺过去,看到得朋友希望能帮我分析分析!

谢谢,谢谢大家了。

这也是一场难得得经历,记录下来,以后也是一串特别得足迹!

年少不识前端香,🕺🕺🕺 错把后端当个宝!

例行小结,理性看待!

结的是啥啊,结的是我想你点赞而不可得的寂寞。😳😳😳

👓都看到这了,还在乎点个赞吗?

👓都点赞了,还在乎一个收藏吗?

👓都收藏了,还在乎一个评论吗?

还有系列前端文章,客官,你不瞧瞧?

👉前端项目,看我在这里管理全局后台初始化的数据,就问你飒不飒?

👉Vue中路由到一个公共组件,然后根据路径中是否存在文件动态加载组件

👉解放前端工程师——手把手教你开发自己的自定义列表和自定义表单系列之一缘起

👉解放前端工程师——手把手教你开发自己的自定义列表和自定义表单系列之二接口

👉解放前端工程师——手把手教你开发自己的自定义列表和自定义表单系列之三表格

分类:
前端
标签:
分类:
前端
标签:
收藏成功!
已添加到「」, 点击更改