首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Discuz插件设计

一、Discuz介绍 Discuz是国内比较知名的开源论坛了,后来被腾讯收购,Discuz在设计时就考虑了生态体系的建设,支持插件设计,可以让广大开发者朋友来一起建设生态,不得不说设计者是很有商业头脑的...回到话题,我们为什么要学习Discuz的插件设计呢,因为假如我们哪天自己想做一套系统,也要支持插件,可以借鉴下相关的设计。...二、插件系统的需 求和场景 在分析Discuz的插件设计之前,我们还是要大概分析下如果设计一个支持插件的系统,系统应该支持哪些功能。...3、插件的加载顺序 因为插件之间可能有加载先后顺序,或者说一个插件依赖另一个插件,就需要设置插件的加载顺序了,这个应该算是用的比较少的场景。 4、插件的自我描述 提供插件名称等信息来描述自己。...9、完善的扩展点 一个设计好的插件应该提供很多扩展点,让插件能够在系统的原有流程上扩充一些能力。 举个例子,支付方式,可以一个插件提供微信,另一个插件提供支付宝的。

3.1K41

WordPress插件设计

fr=aladdin WordPress也是支持插件的,因为最近在做插件系统的设计,所以想分析下它的插件设计思想。...二、插件分析 关于一个支持插件的系统应该具备哪些功能,前文已有说明,有兴趣的同学可以查看:Discuz插件设计 先看下WordPress插件的基本结构: ?...插件中,主文件就是 akismet.php。...三、整体感受 整体来说,WordPress的插件做的是比较灵活的,通过观察者模式,通过钩子回调的方式,让插件可以快速、简单的关注自己感兴趣的扩充点,做到处处可扩展。...这需要系统设计者从全局去考虑系统有多少可以扩充的点,如果没有好的规范和监管,很可能会滥用,也有可能带来安全问题。

77330
您找到你想要的搜索结果了吗?
是的
没有找到

直播插件体系设计

| 导语   直播页面是一个功能丰富且复杂的页面,整个页面几乎全部由若干个功能组件构成,在这样一个背景下,如何通过前期的合理设计来接入这些功能组件,同时提高页面的扩展性和可维护性。 ? 一、背景 ?...我们在设计这套体系的时候,设置了几个目标。 高内聚,低耦合。插件在接入这套体系之后,插件插件之前是耦合开的,不会相互影响。 可维护。由于直播项目工程比较大,希望这套体系能承接住近一两年的需求。...目标是能够接入各种各样功能的插件,避免因为某个插件不适配需要重构这套体系。 方便接入。因为在开发插件的时候,任何人都可能会来参与开发。...布局,轮询,状态管理统一收归到插件体系,插件开发不需要关注如何内部实现,只需要调用具体的方法即可。 基类继承。所有插件继承一个公共的基类,保证插件的规范性。...这个方案需要解决的最大问题就是位置计算,如果把这个计算交给插件做的话,每个插件接入进来都需要去计算当前已有的插件的位置,势必会把插件开发变得更复杂。所以我们把这套计算交给了插件体系去做。

82410

Rainbond插件体系设计简介

设计原则 Rainbond插件体系的设计遵循易于理解和易于使用的原则: 易于理解 在Rainbond插件体系中,插件使用的过程即主容器与init或sidecar等容器结合的过程,原理是将插件容器以sidecar...类应用化 Rainbond插件体系为插件设计了与应用类似的生命周期,包含创建、启用、关闭等模式,与Rainbond平台用户操作应用的习惯保持一致。...同时,Rainbond插件体系简化了插件创建类型,支持基于docker image和dockerfile创建,创建插件比创建应用更加简单。 插件创建流程设计如下图所示: ?...内存的限制将在pod创建时进行限制,插件变量生效与实时修改在下文中会继续介绍。 独有的变量作用域 注入到容器内的变量设计为有两类:共用变量与插件变量。...因此在rainbond设计中将插件的配置资源放置在了discover_service中,由该发现服务来支持动态配置。

57930

Rainbond插件体系设计简介

设计原则 Rainbond插件体系的设计遵循**易于理解**和**易于使用**的原则: 易于理解 在Rainbond插件体系中,插件使用的过程即主容器与init或sidecar等容器结合的过程,原理是将插件容器以...类应用化 Rainbond插件体系为插件设计了与应用类似的生命周期,包含创建、启用、关闭等模式,与Rainbond平台用户操作应用的习惯保持一致。...插件创建流程设计如下图所示: [Rainbond插件创建流程] 需要注意的是,当一个插件版本固定后,其内存、版本信息、插件变量无法再做修改,这些元素仅作用于当前插件版本。...内存的限制将在pod创建时进行限制,插件变量生效与实时修改在下文中会继续介绍。 独有的变量作用域 注入到容器内的变量设计为有两类:共用变量与插件变量。...因此在rainbond设计中将插件的配置资源放置在了discover\_service中,由该发现服务来支持动态配置。

88790

设计提效-Figma插件

设计提速的秘诀就在于Figma中功能各异的插件。但当打开Figma插件库,海量插件让人头晕眼花,究竟哪一款才是最适合你的呢?...为此QQ设计师在日常工作中反复实验,终于找到了这些宝藏插件,让UI设计领域的你成为高效的设计师。...而Auto Layout Styles插件可以很好的管理或者单独对某几个元素配置Auto Layout,设计师可以在插件内设置好布局关系并进行命名,然后应用到设计中。...即使团队其他设计师没有安装这个插件,也可以在拉伸界面时预览到动态布局。...所有的设计工具本身都有局限,但合理利用插件可以放大工具的价值,为设计提效,让设计师有更多的时间去思考设计方案本身。 你在设计中是否也遇到过一些宝藏插件呢?

2K30

前端领域的插件设计

插件设计能带来许多好处,例如 它可以极大地提升软件的可扩展性。...插件设计的改造案例 除了我们去使用一个一个的插件,我们也可以把插件化的设计引入到我们自己的系统中,下面抛砖引玉,按照笔者的理解介绍一些基本的设计思路,当然插件设计方式并非固定的,我们也不应当公式化地套用模式...,核心在于体会其设计思想。...插件设计的案例分享 我们已经对插件设计有了一个基本的认识,我们再来看看一些开源库的插件设计案例 Webpack webpack 核心模块为 compiler 和 compilation,他们都有各自的声明周期钩子...file=App.tsx 通过上面的介绍,想必大家可以感受到插件设计的魅力了,感谢看到这里,希望能对大家有所帮助。

1.6K20

插件化架构设计(2):插件化从设计到实践该考量的问题汇总

根据《插件式可扩展架构设计心得》精读扩展版怎么实现插件化模式插件模式本质是一种设计思想,并没有一个一成不变或者是万金油的实现。...同时,开发编译或修复测试一个插件,也比针对整个系统要简单得多。插件式开发架构要领不管基于何种语言进行插件式开发框架的设计,有一些共同的要点需要具备。...插件架如何协同-调度问题当正式开始设计我们的插件架构时,我们所要思考的问题往往离不开以下几点。整个设计过程其实就是为每一点选择合适的方案,最后形成一套插件体系。...个人认为设计一个插件架构,是一定逃不开针对这些问题的思考的,而且只有去真正关注这些问题,才能避开炫技、过度设计等面向未来开发时时常会犯的错误。.../p/35997606插件式开发架构综述 https://www.modb.pro/db/131158转载本站文章《插件化架构设计(2):插件化从设计到实践该考量的问题汇总》,请注明出处:https:/

58510

设计一个JavaScript插件系统

让我们从创建一个插件系统开始。 世界上最小的插件系统 我们将从创建一个 register 方法开始,其他开发人员可以使用它在 BetaCalc 上注册插件。...更好的插件架构 让我们来看一个更好的插件架构。...我们还可以扩展插件注册。如果可以使用一些初始设置注册插件怎么办?可以使插件更灵活吗?...你的插件系统 BetaCalc 及其插件系统都非常简单。如果你的项目较大,则需要探索其他一些插件体系结构。 一个很好的起点是查看现有项目,以获取成功的插件系统的示例。...你可能还想熟悉各种 JavaScript 设计模式。每种模式都提供了不同的接口和耦合程度,这为你提供了许多不错的插件体系结构选项供你选择。了解这些选项可以帮助你更好地平衡使用项目的每个人的需求。

69241

详解前端领域的插件设计

插件设计能带来许多好处,例如 它可以极大地提升软件的可扩展性。...插件设计的改造案例 除了我们去使用一个一个的插件,我们也可以把插件化的设计引入到我们自己的系统中,下面抛砖引玉,按照笔者的理解介绍一些基本的设计思路,当然插件设计方式并非固定的,我们也不应当公式化地套用模式...,核心在于体会其设计思想。...插件设计的案例分享 我们已经对插件设计有了一个基本的认识,我们再来看看一些开源库的插件设计案例 Webpack webpack 核心模块为 compiler 和 compilation,他们都有各自的声明周期钩子...file=App.tsx 通过上面的介绍,想必大家可以感受到插件设计的魅力了,感谢看到这里,希望能对大家有所帮助。

27530

浅谈 Python 库的插件系统设计

给软件设计一个易用和强大的插件系统,能让你的软件寿命更长,让整个社区来共同建设,符合开源的精神。...上周末我给PDM实现了一个插件系统,于是就顺便利用这篇文章总结一下 Python 库里面用到的插件系统的设计方法。...大体说来,插件分两种类型: 安装了以后需要写配置、写代码让插件生效——我称之为可选配的插件 安装了以后插件功能即生效,或者程序运行时自动生效——我称之为安装即生效的插件 下面我会分别对这两种类型,结合一些项目的例子来说明...可选配的插件 可选配的插件一般用在 Python 库中1,特点是可配置,可调整插件参数,但需要写额外的代码或配置来装载它。...所以 Flask 的插件系统设计也是相当优秀的,所有的扩展点都收拢到了flask.Flaskapp 对象上,扩展中只用接受到这个对象,然后对它进行一顿改造就完了。

20840

浅谈 Python 库的插件系统设计

上一篇文章介绍了可选配型插件的实现的例子,这篇文章继续说说安装即生效的插件原理。 安装即生效的插件 如果使用方只用把插件加到依赖里,安装以后这个插件就自动生效了,那使用方岂不是非常方便?...插件宿主加载并执行 第一种方法最为自然,宿主预留出加载插件的地方,执行到这个地方,就把当前所有安装的插件载入,并调用执行。...插件起作用的方法,既可以调用这个对象的某个函数,也可以在插件顶层代码中实现,因为导入插件会执行一次import,所有的顶层代码都会执行一次。...利用 Python 的启动机制执行 但如果这个宿主没有为插件预留入口,或者它没有设计成可扩展的,那我们也有办法硬插进去。...首先必须留出插件载入点,通过 entry_points 的方式载入插件,其次我希望暴露的对象尽可能少,插件的入口尽可能少。 这样就要求 PDM 中的基本对象类型,都是可以继承然后替换的。

20930

【HTML插件】帮你100%还原设计

设计狮们还在纠结重构还原到位了吗?U工们还在锻炼像素眼吗?来试试这款设计还原检查插件吧!...width.gif # 这是什么 Contrast.js插件主要用于检验移动端Web重构还原度,由于大部分设计稿是基于iPhone6以上(1334 x 750)设计的,所以该插件比较适合用iPhone6...# 引入插件     1. 准备好需要验证的设计稿,如bg.png     2....);     关闭工具:点击“工具按钮”,插件隐藏;     查看设计稿:在屏幕上半区向右滑动,左侧展示设计稿,右侧展示重构稿;     设计稿透明度:在屏幕下半区向左滑动,设计稿逐渐透明;在屏幕下半区向右滑动...答:不限制规格,推荐宽750px的设计标准。     会不会影响正常开发和上线?     答:插件适用于检查还原度,上线时注释引用即可,不影响正常开发和上线。

1.7K20

Sketch插件新利器——使用摹客设计规范制作设计

Mockplus团队全新推出了一款能够轻松帮助设计师实现与摹客设计系统无缝对接的Sketch插件新利器。...Sketch插件新利器——实现Sketch与摹客设计系统的无缝对接,同步自动更新 1.Mockplus ds设计系统Sketch插件.png Mockplus DS(Design System)设计系统...而该Sketch插件,之所以称作“新利器”,主要因其拥有以下突出特点: 1.支持6大模块设计资源的导入和导出,为设计师提供更加全面的设计服务 插件提供了6大设计模块(比如Logo、色彩、字体、组件、图片以及图标模块...支持插件与摹客设计系统的同步自动更新,简化设计规范制作过程 在Sketch插件内添加的各种图片,组件以及字体样式,Mockplus DS系统会自动同步更新,从而极大简化设计规范系统制作过程。...总之,作为设计规范制作新利器,此款Sketch插件对于实现设计系统的搭建和优化,发挥着重要作用,极大地提高了设计师工作效率。

67340

如何设计一个JavaScript插件系统

WordPress 有插件、 jQuery 有插件、Gatsby、Eleventy 和 Vue 也是如此。...更好的插件架构 让我们再来看看一个更好的插件架构。...我们还可以扩展插件注册的功能。如果一个插件可以通过一些初始设置来注册呢?这是否能使插件更加灵活?如果一个插件作者想注册一整套按钮,而不是一个单一的按钮——比如“BetaCalc 统计包”?...你的插件系统 BetaCalc 及其插件系统都非常简单。如果你的项目较大,则需要探索其他一些插件架构。 一个很好的起点是查看现有项目,以获取成功的插件系统的示例。...你可能还想熟悉各种 JavaScript 设计模式,每种模式都提供了不同的接口和耦合程度,这给你提供了很多好的插件架构选择。了解这些选项有助于你更好地平衡使用你的项目的每个人的需求。

76420
领券