首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    插件式开发架构综述

    为了降低系统模块内部耦合度,减少开发难度,也为了能够支持多团队的并行开发,插件式开发架构变得愈加流行,尤其是在桌面软件、移动端应用中。...对于后端开发,微服务的形式也越来越流行,但是据笔者看来,微服务的很多设计思路,和插件式开发架构的设计理念也有相近之处。...Eclipse, Visual Studio, VSCode等,都是插件式开发架构的典型案例。 现代软件提供插件式开发架构,一方面是服务于产品自身内部开发,另外一方面服务于市场化。...插件式开发架构要领 不管基于何种语言进行插件式开发框架的设计,有一些共同的要点需要具备。 2.1 插件运行主体 基于插件模式进行开发的软件,一般会存在一个运行主体。...总结 本文简单说明了插件开发架构中的一些基本原则,以及采用不同语言开发的软件平台中的插件开发模式。

    3.2K20

    Webpack 插件架构深度讲解

    简介 网上不少资料将 webpack 的插件架构归类为“事件/订阅”模式,我认为这种归纳有失偏颇。...而 webpack 的插件体系是一种基于 Tapable 实现的强耦合架构,它在特定时机触发钩子时会附带上足够的上下文信息,插件定义的钩子回调中,能也只能与这些上下文背后的数据结构、接口交互产生 side...要理解 webpack 的插件架构,必须先理顺 Tapable 提供了哪些类型的钩子,不同类型分别有什么特点,适配哪些应用场景,所幸这块逻辑并不复杂,我们展开来看看。...前端社区里很多有名的框架都各自有一套插件架构,例如 axios、quill、vscode、webpack、vue、rollup 等等。...插件架构灵活性高,扩展性强,但是通常需要非常强的架构能力,需要至少解决三个方面的问题: 「接口」:需要提供一套逻辑接入方法,让开发者能够将逻辑在特定时机插入特定位置 「输入」:如何将上下文信息高效传导给插件

    1.7K20

    iOS插件化架构探索

    这里把项目搭建拆分细化为四个部分,分别是动态加载框架SVPCore和SVPRuntime、主工程以及其他功能模块插件,整体的架构设计如下图: ? 插件化及动态加载框架设计图 1....SVPBundleDelegate: 提供了一个根据SVPURI获取UIViewController的协议,由插件动态库的principalClass实现该协议,返回插件的主入口对象。...SVPRuntime SVPRuntime的主要作用是对功能模块插件进行管理,包括下载/解压插件以及读取解压后插件的动态库等。...,在此基础上实现插件的独立功能就可以了。...,只需要修改服务器上的配置列表和插件动态库压缩包,主工程在适当的时机更新本地配置列表,当用户点击该插件功能时,即可根据版本号查找并更新本地动态库,达到动态更新的目的。

    1.2K20

    【Chromium中文文档】插件架构

    背景 在阅读这个文档前,你应当熟悉Chromium的多进程架构。 概述 插件是浏览器不稳定的主要来源。插件也会在渲染器没有实际运行时,让进程沙箱化。...解决方案是,让插件在各自独立的进程中运行。 设计细节 进程内插件 Chromium有着在进程内运行插件的能力(对测试来讲非常方便),也可以在进程外运行插件。...无窗口插件通常用在希望插件在网页上透明的情况 -- 这取决于插件绘制代码,以决定它如何导航给定的网页。 为了将无窗口插件抽出进程,你仍然需要在同步的WebKit渲染端合并他们的渲染。...然而,渲染速度取决于插件进程(想象有着30个透明插件的页面,我们需要30轮插件进程的旅行)。所以,相反地,我们异步绘制无窗口插件,更像我们已有的页面是关于screen异步那样。...渲染器进程 回退存储插件最后绘制的东西 插件的共享内存,以接收更新(“透明的DIB”) 复制插件背后的页面背景(在下面有描述) 插件进程 复制插件背后的页面背景,作为绘制时的源材料使用 渲染器共享内存以发送更新

    2.2K60

    前端插件化架构的思考

    最近一个月,在我脑海回想最多的一个词语是“插件化架构”。作此文,也是想简单分享一下我对这个问题的见解。 来自 Webpack 的启发 ? 去年有参与过 Udacity 前端课程翻译。...从 Webpack 的插件化架构设计上所表现出系统良好的开放性,可持续的简洁性,我自然想象到,为何不在业务系统中采用这样的插件化架构。 什么是插件?...这样理解,有助于我们设计出更容易复用的插件,同时也可以复用已有软件的系统。 插件化架构的优势 正如前文所说,插件化架构一个显而易见的优势就是它是开闭原则在跨系统级别的最佳实践。...何为跨系统,如果说设计模式是设计单个系统的最佳实践,那么我们已经论证,插件化架构可以链接多个子系统,而做到开闭原则。即插件核心和接口不变,系统可以持续接入新插件,来丰富系统的功能。...插件化架构的未来 这里不好说它一定是未来。暂且认为是我设想的未来发展的一种可能。

    2.8K20

    插件化架构设计(1):插件化架构能解决什么问题?为啥选它?

    为了降低系统模块内部耦合度,减少开发难度,也为了能够支持多团队的并行开发,插件式开发架构变得愈加流行,Eclipse, Visual Studio, VSCode等,都是插件式开发架构的典型案例。...现代软件提供插件式开发架构,一方面是服务于产品自身内部开发,另外一方面服务于市场化。...为什么是插件化开发借用内核+应用软件开发的思想,首先有一个插件调度的核心,在这个核心的支持下可以开发支持这个核心的应用程序,我把这些应用程序称为『插件』,插件是一个具有完整逻辑的应用程序,它不依赖任何其他的插件...参考文章:前端插件化架构的思考 https://cloud.tencent.com/developer/article/1600005前端插件化架构的探索和实践 https://segmentfault.com...好像也就那么回事 https://juejin.cn/post/7143869920193822733转载本站文章《插件化架构设计(1):插件化架构能解决什么问题?为啥选它?》

    1.4K30

    插件化架构设计(1):插件化架构能解决什么问题?为啥选它?

    为了降低系统模块内部耦合度,减少开发难度,也为了能够支持多团队的并行开发,插件式开发架构变得愈加流行,Eclipse, Visual Studio, VSCode等,都是插件式开发架构的典型案例。...现代软件提供插件式开发架构,一方面是服务于产品自身内部开发,另外一方面服务于市场化。...为什么是插件化开发借用内核+应用软件开发的思想,首先有一个插件调度的核心,在这个核心的支持下可以开发支持这个核心的应用程序,我把这些应用程序称为『插件』,插件是一个具有完整逻辑的应用程序,它不依赖任何其他的插件...参考文章:前端插件化架构的思考 https://cloud.tencent.com/developer/article/1600005前端插件化架构的探索和实践 https://segmentfault.com...好像也就那么回事 https://juejin.cn/post/7143869920193822733转载本站文章《插件化架构设计(1):插件化架构能解决什么问题?为啥选它?》

    88620

    优酷 iOS 插件化页面架构方法

    如何才能解决上述痛点是我们在做架构蓝图时的一个突破口。...插件化页面架构的基调就被确定了。...插件化是业内普遍使用的解耦方案之一,我们不约而同地朝着这一方向来对现架构的改造,同时结合优酷的实际情况,得出一套以模块化、插件化、数据 Key-Value 化为特点的页面架构框架。...在此基础上,我们将常用的列表容器、UI 布局逻辑、埋点统计逻辑、网络请求逻辑、用户交互手势逻辑、路由跳转逻辑等通用逻辑进行抽象插件化改造,最终形成 4+N 的架构组成。 ?...七、架构实践 本章节用图来说明如何使用插件化来编写一个按钮功能。一个页面上有一个按钮并支持点击跳转。

    1.3K10

    优酷iOS插件化页面架构方法

    插件化页面架构的基调就被确定了。...插件化是业内普遍使用的解耦方案之一,我们不约而同地朝着这一方向来对现架构的改造,同时结合优酷的实际情况,得出一套以模块化、插件化、数据 Key-Value 化为特点的页面架构框架。...七、架构实践 本章节用图来说明如何使用插件化来编写一个按钮功能。一个页面上有一个按钮并支持点击跳转。...插件化页面架构有利也有弊,它颠覆了 MVC 架构的开发体验,增加了开发者学习成本,编译器也无法帮助开发者编译时(事件名错配等)校验。...因此,我们充分发挥它的面向切面编程能力,在开发过程中,我们通过插件的形式加入调试类和监控类逻辑来缓解架构的不足,另一方面则建立标准化插件管理平台对所有插件进行系统化管理。

    1.5K51

    Android插件化架构 - Activity的启动流程分析

    概述 Android插件化架构,目前第三方的框架比较多,早几年自己用的是DL框架,这个框架的源码比较简单主要用的是静态代理。...如果我们自己要去写一个插件化架构框架那要解决的问题会分为几个方面,类的加载,资源和布局的加载,广播的管理方式,Activity的加载和生命周期管理,Service的插件化,ContentProvider...的插件化等等等等,反正加载一个没有运行的app到主程序,需要解决的问题基本就这么多,如果能够一一解决那么就可以实现插件化了。   ...那么结合动态代码设计模式以及Activity的启动流程,我们就可以尝试去拦截Activity的启动流程,让没有在AndroidMainfest.xml中注册的Activity也能启动并且不报错,这样我们就算是跨出了插件化架构的第一步了...相关视频 一次让你彻底掌握Android插件化,征服面试!

    46030

    插件式可扩展架构设计心得

    讲到这里你可能以为我要开始讲过度设计这个主题了,但其实不然,我只是想以这个话题作为引子,和大家讨论一下关于设计一个插件架构我是如何思考的。...当正式开始设计我们的插件架构时,我们所要思考的问题往往离不开以下几点。整个设计过程其实就是为每一点选择合适的方案,最后形成一套插件体系。...一种是工厂模式,一个插件暴露出来的是一个工厂函数,由调用者或者插件架构来将提供配置信息传入,生成插件实例。另一种是运行时传入,插件架构在调度插件时会通过约定的上下文把配置信息给到插件。...所以我们在设计一个插件架构时呢,也主要就从这三方面是否会被影响考虑即可。那么插件又怎么去影响系统呢,这个过程的前提是插件与系统间建立一份契约,约定好对接的方式。...同一个插件重复注册了该怎么处理。 总结 当你跟着这篇文章的思路,把这些问题都思考清楚之后,想必你的脑海中一定已经有了一个插件架构的雏形了。

    1.8K31

    插件式可扩展架构设计心得

    讲到这里你可能以为我要开始讲过度设计这个主题了,但其实不然,我只是想以这个话题作为引子,和大家讨论一下关于设计一个插件架构我是如何思考的。...当正式开始设计我们的插件架构时,我们所要思考的问题往往离不开以下几点。整个设计过程其实就是为每一点选择合适的方案,最后形成一套插件体系。...一种是工厂模式,一个插件暴露出来的是一个工厂函数,由调用者或者插件架构来将提供配置信息传入,生成插件实例。另一种是运行时传入,插件架构在调度插件时会通过约定的上下文把配置信息给到插件。...所以我们在设计一个插件架构时呢,也主要就从这三方面是否会被影响考虑即可。那么插件又怎么去影响系统呢,这个过程的前提是插件与系统间建立一份契约,约定好对接的方式。...同一个插件重复注册了该怎么处理。 总结 当你跟着这篇文章的思路,把这些问题都思考清楚之后,想必你的脑海中一定已经有了一个插件架构的雏形了。

    1.4K20

    企业应用架构的基本模式之插件模式

    本篇介绍企业应用架构的基本模式之一插件(Plugin)模式。 插件(Plugin) 在配置时而非编译时连接类。...插件工厂不过简单的读取文本文件,查找指定当前环境下所需的接口对应哪一个实现的项,然后返回相应的实现。...插件模式在具有反射机制的语言中可以充分发挥其优势,因为工厂可以动态构造实现对象,而无需在编译时就与实现类存在依赖关系。当使用反射机制时,配置文件必须包含接口名到实现类的映射。...即使没有使用反射机制的程序语言,插件仍然有其存在的价值,它创建了一个中心配置点,仍然可以使用一个文本文件来设置连接规则,唯一区别在于你的工厂将使用一个条件判断逻辑来将接口映射到实现。...使用场景 只要有行为在不同运行环境要求不同的实现时,就应使用插件模式。

    51510
    领券