phodal / microfrontends

Micro-frontend Architecture in Action-微前端的那些事儿
https://microfrontends.cn/
3.08k stars 349 forks source link

公共 UI 库 #14

Closed mistricky closed 3 years ago

mistricky commented 4 years ago

Hi~ 我有幸在 Github 上看到您写的书,大致了解了 micro FE,但是有一点很要迷惑

如果是 micro server,那我大致可以把一些通用的 utils 抽成一个单独的 服务,然后其他业务服务需要用到这些 utils 的时候就去做 rpc。这样是合理的。但是如果放在微前端,我就很迷惑了,现在看来,微前端只是在做一个网关(分发器)来分发视图?如果我现在有几个前端服务,各自都有共同的工具,我想把它们抽成一个单独的服务,其他前端服务也来做 rpc(类似),现在我的问题是,这个 “rpc” 我该怎么去做?

谢谢您抽空帮我解答~

phodal commented 4 years ago

你要的应该是重用?

重用有多种方式,代码重用、二进制重用、进程重用。从前端的角度来说,很少存在微服务一样的进程重用,所以你要的应该只是代码重用。

mistricky commented 4 years ago

@phodal 是的,是代码重用,如果我把几个 微前端 公用的部分抽出来组成一个新的 微前端,那这些微前端该怎么去访问那个公用的呢? git submodule? 有没有更好的方法

phodal commented 4 years ago

这部分拆分实际上是没有多大意义的

mistricky commented 4 years ago

@phodal 请问为什么呢,公共的 UI 库,公共的 utils,公共的 API 库,这些都是可以拆分出来的呀

phodal commented 4 years ago

是要拆出来,但是不是拆成一个微服务。你要的就是 submodules、npm 包之类的方式。

mistricky commented 4 years ago

我理解的,拆分成 micro server 不是更好吗?通过一种类似 rpc 的调用,为什么不能拆成一个服务呢? 什么样的东西应该要拆成微服务呢

phodal commented 4 years ago

不,不是,微服务不是银弹。

wedog commented 4 years ago

一个大的前端项目必须是一个完整的单页面应用,但是由多个团队开发甚至是多个公司开发。单个应用不仅会造成开发构建非常慢,而且各个团队用一份代码权责不明,本身不是技术问题,但是由于有人的因素会造成代码发布、问题修改互相扯皮,所以微前端是必不可少的架构方式。

wedog commented 4 years ago

@phodal 楼主能方便透露一下文档中的图使用什么工具画的吗?