首页IT科技让我们切蛋糕英语怎么说(EluxJS-让你像切蛋糕一样拆解前端巨石应用)

让我们切蛋糕英语怎么说(EluxJS-让你像切蛋糕一样拆解前端巨石应用)

时间2025-09-18 09:06:11分类IT科技浏览5135
导读:大家好,EluxJS是一套基于“微模块”和“模型驱动...

大家好                ,EluxJS是一套基于“微模块                ”和“模型驱动                     ”的跨平台             、跨框架『同构方案』                     ,欢迎了解...

可怕的巨石怪

工作中最可怕的是什么?是遇到业务复杂且乱作一团的巨石应用             。改一发而动全身        ,无法渐进式重构            ,也没人敢对历史包袱进行优化                     ,欠下的代码债只能像滚雪球一样越积越多           ,终于到某天玩不下去        ,大佬选择了跑路?...

不管多么优秀的团队                      ,都不可能一蹴而就的构建好应用              ,精品一定是在不断优化与重构中打磨成熟的                        。而这一切的前提是你得拥有一个松散                        、解耦的工程结构    ,能把不同领域的问题控制在一定范围内                       ,而不是动不动就全身检查动刀        。

把巨石怪横向切开:分层而治

蛋糕横向切开:巧克力层        、奶油层         、蛋糕层                       、水果夹心层...

如果我们把一个应用横向切开                 ,也应当是一层一层的逻辑和代码:

为什么要分层?

除了让专注的领域更专注,更可以避免稳定代码受到多变代码的频繁骚扰                    ,避免通用的逻辑被特定UI库与运行平台所绑架         。

剥离了业务逻辑                     ,UI层变得更纯粹    ,它只是负责展示            、交互和传递用户事件                       。 剥离了UI逻辑                ,业务层不再受到各种生命周期和糖衣语法的干扰                     ,更纯净透明            。 分层而治        ,增加了代码的可复用性和可移植性      。

跨项目      、跨平台                      、跨UI框架复用业务逻辑            ,业务通用                、UI各表:

模型驱动

应用的核心的逻辑是什么?是业务逻辑(游戏规则)而非UI交互逻辑                      。UI的职能只有2个:输入与输出                     ,仅此而已                。

UI只是指令的收集者   、传达者                     、反馈者           ,而不应当成为指令的执行者   。

所以不要再把所有逻辑都一股脑的写在React/Vue Component组件中了(业务逻辑与UI框架深度捆绑)        ,而应当站在更高层次谋求抽象的顶层设计                      ,这也是近年来流行所谓的“领域驱动        ”理念                     。

虽然视图驱动所见即所得              ,是最直观也是最简单的一种思维模式    ,但是我们不仅要解决问题                       ,还要思考如何优雅的解决问题                 ,这也好比是排版和设计的区别                    。

把巨石怪纵向切开:业务模块化

蛋糕不仅能横向切层,更能纵向切块                    ,满足更多人享用...

同样对于一个巨石应用                     ,我们也应当对不同的业务功能进行切块:按照不同的业务功能    ,不同的业务领域进行模块化                ,在Elux工程中称之为微模块。

自治与组合

这些被切成一块一块的蛋糕                     ,每块都包含巧克力层                    、奶油层、蛋糕层                 、水果夹心层...

每一个前端“微模块            ”        ,类似于后端“微服务                     ”            ,各自负责业务中某子领域的具体事务                 。它们谋求独立自治(有各自独立的UI层                        、Model层    、服务层...麻雀虽小             、五脏俱全)                     ,并且可以像积木一样组合成不同产品                        。

也可以跨工程共享业务代码:

视图插槽

前端微模块和后端微服务都是一些彼此松散的个体           ,平时不相往来    。向后端发送一个API请求        ,就可以把不同链路上的各种微服务串联起来                      ,共同完成一个业务动作             。

而串联前端各种微模块的手段则是视图插槽:

各个微模块的UI层彼此聚合嵌套在一起              ,共同组合成应用的UI界面:

被肢解的巨石怪

经过横劈竖斩    ,可怕的巨石应用已经被彻底的肢解了:

现在每个领域问题都有了自己明显的边界                       ,你再也不用担心牵一发而动全身了                 ,有空就挑一块出来进行局部重构吧,重构完再放回去                    ,持续重构持续集成...

最后欢迎大佬们共同探讨                     ,不舍赐教    ,更多想法参见官网:https://eluxjs.com/

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
怎么下载node以往版本的文件(node – 下载安装指定版本) python中time.sleep的用法(Python分析睡眠数据)