当前位置: 首页 > Web前端 > HTML5

MiniStar:一个实现微内核(插件)架构的前端框架

时间:2023-04-05 16:32:58 HTML5

介绍mini-star是一个实现微内核(插件)架构的前端库,旨在帮助您更轻松无痛地构建(或转化为)生产可用的微内核(插件)架构系统。什么是微内核?它由一组尽可能减少数量的软件程序组成。他们负责提供和实现操作系统所需的各种机制和功能。这些最基本的机制包括低级地址空间管理、线程管理和进程间通信。设计理念将系统的实现与系统的基本运行规则区分开来。它的实现方式是将核心功能模块化,分成几个独立的进程,分别运行。这些过程称为服务。所有服务进程都运行在不同的地址空间中。使服务独立可以降低系统间的耦合度,便于实现和调试,提高可移植性。它可以避免单个组件的故障而导致整个系统崩溃。内核只需要重启这个组件,不会影响其他服务器的功能,增加了系统的稳定性。同时,业务功能可以根据需要替换或增加一些服务流程,使功能更加灵活。在代码量方面,由于功能简化,核心系统总体上比集成系统使用的代码更少。更少的代码意味着更少的隐藏程序错误。ministar的核心设计理念很简单。由于基础工程和插件工程可以独立于技术栈,ministar只是一个面向用户的类似于jQuery插件系统的库。需要通过ministar/runtime加载插件和共享依赖组件,然后使用ministar/bundler构建插件工程,即可实现对原有系统的插件化改造。解耦/技术堆栈无关微内核的核心目标与微前端相同,都是将单体应用拆解成多个松散耦合的、可以自治的微应用。ministar的很多设计都遵循这个原则,除了共享公共依赖和基础项目提供的能力外,插件项目有自己的上下文、依赖管理和相互通信机制,从而保证插件-具有自主开发能力。并保证与其他依赖项共享类型的能力。功能开箱即用,也可以定制。技术栈无关,任何技术栈应用都可以使用/接入,无论是React/Vue/Angular/Svelte/JQuery还是其他框架。共享依赖,相同的依赖只需要加载一次,减少不必要的体积和打包时间。插件之间的依赖调用是基于Rollup封装的,就像调用原生组件一样,快!为现代前端而生。以前我们都是通过windows暴露方法。现在我们所有的代码都需要编译成模块,暴露的也通过模块拓扑依赖进行排序,防止时序问题。Documentation官方文档Github微内核架构在大型前端系统(micro-frontends)中的应用