关于引入插件体系的一些想法

本贴最后更新于 1226 天前,其中的信息可能已经时移世异

刚刚安装了思源笔记,总体使用感受是很棒的,所以也去支持了一波 XD

其他的一些关于使用体验上的一些小问题我在这里就不提了,主要是说一下关于标题上提到的插件体系的一些想法和不成熟的建议:

优点:

  1. 软件的轻量性:随着特性和新功能的增加,应用本身的启动速度应该是会受到影响到,软件本身的初衷是轻量,那么在引入第三方的组件后应该会对启动速度有所影响(内存占用的问题先不讨论了,这个其实我觉得很多人可能也不会太关心 XD),即使使用了延迟加载,也存在影响体验的可能。但是使用插件模式之后,可以规避这个问题,插件的启用与否取决于用户,不同用户对于性能和功能的权衡也不同,这个风险通过这种方式可以转移到用户端。
  2. 第三方扩展:这个是插件模式最重要的一点,当然也是应用于众多开源编辑器中最多的一点,虽然作为商业软件要维持软件本身的严谨性和健壮性,但是作为功能扩充,这个是极为重要的一环。现在开发都是组件化的,不管是开发者和用户都有可能有自己独特的需求,没有必要为了一两个不太泛用的需求去增加编辑器本身的特性和功能,从而背离上面说到的轻量性。
  3. 易于维护:将编辑器本身的维护和插件的维护剥离开,维持编辑器本身的纯洁性,修复编辑器本身带来的 bug,提升编辑器本身的使用体验才应该是第一位的,所有功能的扩充都应该是额外的工作 XD。官方插件官方维护,第三方插件第三方维护,这才是可取之道。

弊端

  1. 开发成本: 这个就不说了,想做插件的扩充开始挺难的,需要考虑标准接口,组件开发规范,插件适配等等很多问题,十分耗费时间和精力。
  2. 性能问题: 现在不太清楚,反正我知道以前我用 Atom 的时候,插件多了那个性能,啧啧啧~ 不过 vscode 是真的 nb,巨硬,yyds ~

以上都是我的个人浅见,如果觉得是胡言乱语请轻喷。不过也希望路过的大佬能指出问题,给我一个自我提高的机会 XD

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    18700 引用 • 69815 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 视图这个发展思路非常靠谱

  • 其他回帖
  • 个人看法:关于插件的安全性我觉得开发者不必太担心,只要在开启插件模式/引入插件时给予足够的风险提醒就行了。用思源笔记的很多朋友可能都是深度用户,其中一些人可能还有点点打造工具的强迫症(比如我 😂 ),提供未来更多的可定制性对我来说非常重要。

    就像 steam 的“创意工坊”一样,提供这样的一个平台可能能让这款软件长盛不衰,充满活力。

    视图还是插件这是两种不同的路线,各有优劣;我挺希望未来能有插件系统的,希望您再考虑考虑 😄 谢谢啦!

  • 我也是联想到不少编辑器才有的一些想法,纯粹瞎琢磨 😄

    D 大加油~~

  • 感谢帮忙思考,我们大致的计划是引入“视图”:数据只读,不提供 API 进行数据写入从而降低风险。视图主要用于提供各式各样的展现,满足用户对数据查询和渲染方面的需求。

    不过在此之前,我们会先着手“主题市场”,让其他开发者可以先参与到思源笔记的开发中,熟悉社区协作和基础以后我们再着手“视图市场”。

    3 回复
leejoker
个人博客 http://leejoker.github.io/ 欢迎订阅~ 北京

推荐标签 标签

  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    163 引用 • 1450 回帖
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    915 引用 • 931 回帖
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    40 引用 • 24 回帖
  • 反馈

    Communication channel for makers and users.

    123 引用 • 906 回帖 • 192 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖 • 2 关注
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 4 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 56 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 563 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 462 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 594 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    83 引用 • 165 回帖 • 43 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    124 引用 • 580 回帖
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    82 引用 • 122 回帖 • 621 关注
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    523 引用 • 4581 回帖 • 690 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    198 引用 • 120 回帖 • 1 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 521 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 618 关注
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    21 引用 • 58 回帖 • 1 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 2 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 683 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    126 引用 • 1699 回帖
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 291 关注