用开源代码如何建立网站

如果有一个词经常使对话充斥着开源的好处,那是选择 。 我们经常庆祝800多个Linux发行版 ,无数的台式机,应用程序,框架等等。 选择似乎是一件好事。

有趣的是,选择也是一种情绪化的东西。

我记得当Unity桌面启动时,以及一封又一封愤怒的邮件中,一封电子邮件声称功能被剥夺了,选择能力也被剥夺了。 尽管我们社区中比较冷静的成员使这类批评家想起了台式机还有许多其他选择,但许多批评家仍然对他们的选择受到限制不屑一顾。

我一直对此有两种看法。 一方面,我尊重并珍惜固执己见的设计。 我希望看到把自己的股份的不只是他们在何种地面工程,也是他们不会什么。 举例来说,我喜欢基础小组在定义清晰明了的方向方面所做的工作。

另一方面,不能满足您需求的软件可能变得无趣,无关紧要甚至令人沮丧。 通常,比不执行您想要的事情更糟糕的是得到可以执行大部分您想要的事情,但是却留下了一些生物安慰。 通常,选择可以弥合这种差距。

或者,选择的马戏团镜子可能会提供太多选项,希望能为所有用户提供服务。 令人遗憾的是,这些项目可能会使用户不知所措,并且在提供选择的同时也会在使用该软件时带来认知模糊。

尽管还有另一种方法,但我越来越喜欢它。

一个简单的核心

不久前,我开始使用Atom编辑器。

Atom提供了一个非常简单的核心编辑器。 它提供了大多数用户可能想要的大多数核心功能和设置,但缺少了某些用户可能想要的许多更高级或特定的功能。 这就是包装系统独有的地方。

Atom提供了一个强大的框架,该框架几乎允许更改和扩展Atom的任何部分。 然后,此功能将在软件包系统中公开,因此可以轻松创建,共享,安装,更新和配置这些自定义项。 有用于键绑定,代码审查,颜色选择,用户界面更改,GitHub集成等的软件包。

这意味着Atom可以根据不同用户的特定需求进行调整; 您只需要打开所需的部件即可。 想要功能最少的时尚Atom? 没问题。 需要功能齐全的IDE风格的Atom吗? 没问题。 想要完全不同的Atom体验,取决于您正在处理的代码或项目类型? 没问题。

Atom不是执行此操作的唯一软件。 另一个很好的例子是GNOME Shell ,我不久前写了它 。 GNOME Shell具有集成的扩展系统,可让您根据自己的喜好调整桌面。

强大的方法

简单,时尚的内核和功能强大但简单的扩展/插件系统的概念之所以出色,是因为许多不同的原因,有些显而易见,而另一些则不然。

一个明显的好处是用户可以选择。 我们都是不同的,我们都有不同的想法,喜好,烦恼和怪癖。 更具可插拔性的平台提供了服务更多人并交付满足各种需求的软件的机会。 它还为配置文件视图的概念打开了可能,您可以在其中加载用于不同用例的插件集合,并使切换变得简单。 例如,想象一下与Python相比,编写Python时完全不同的Atom体验。 或者,在为不同的台式机,Web平台,企业或其他地方编写时,想象一下不同的Atom体验。

这种方法还打开了插件经济 。 本质上,这意味着您不必拥有每个人都必须使用的一项功能的实现。 如果您不喜欢Atom中的代码审查程序包,则可以构建自己的程序包,或对现有程序包进行改进。 一个完善的插件系统将为最流行和功能最强大的实现提供一个浮出水面的机会。 这样可以确保该工具保持最新状态-功能的更新和更好的实现可能胜过坚定。 这显着减少了嗜睡,并为每个人创造了一个创新机会,使他们的工作浮出水面。

插件经济也为多元化提供了机会。 对于许多人来说,将核心功能纳入重大项目在技术上和社会上都是艰巨的工作。 插件经济可以为任何人提供创建出色功能,通过平台的插件系统公开这些功能以及使其工作越来越流行的机会。 这为通常无法将功能纳入核心产品的贡献者提供了展示出色,周到的工作的机会。

当然,框架方法也存在挑战。 首先,保持核心简单并抵制包含流行的插件或功能的诱惑(从而破坏项目可扩展性的目的)非常重要。

其次,框架方法在入职体验和培训方面提出了挑战:您可以并且应该在文档和指南中使用哪些插件?

第三,平台中的插件/程序包管理系统是可发现的,并且能够使用各种指标将最佳程序包置于顶部。

最后,框架方法依赖于拥有一个真正可黑客入侵的平台,但这种平台是安全的。 这是一个复杂的体系结构考虑。

未来

尽管交付框架方法可能具有挑战性,但我认为机会是巨大的。 在UNIX的早期,该平台被定义为一组可以以有趣的方式组合在一起的工具。 这使UNIX成为功能非常强大的系统-不同的工具可以连接并服务于几乎无限的用例。

如果我们能够建立一种更具可插拔性的开源文化,那么我们有可能深入到更广阔的领域并为更多的用户提供服务。 它还为人们提供了一个令人难以置信的入口匝道,人们可以将脚趾插入带有插件的项目中,而不是对核心代码做出巨大贡献。 这可以使更多的人参与开放源代码,建立成功的信心,并使我们更广泛的社区多样化。

我喜欢在Atom和GNOME Shell中进行深思熟虑的实现,并且我希望看到在其他项目中使用类似的方法。 你怎么看? 您是否认为这也是做事的更好方法?

翻译自: https://opensource.com/life/16/2/culture-pluggable-open-source

用开源代码如何建立网站

用开源代码如何建立网站_建立更可插拔的开源文化相关推荐

  1. 用开源代码如何建立网站_建立开源社区时要考虑的6件事

    用开源代码如何建立网站 经常有人问我:"为什么决定将产品开源?" 在Kaltura ,我们之所以走开放源码之路,部分是由于好奇心和热情,部分是因为我们进入了一个竞争已经日趋激烈且显 ...

  2. java 建立网站_建立基本的Java Web站点

    1.创建站点及虚拟目录.在Eclipse中创建新的Dynamic Web Project(这里命名为WebTest).在文件WebContent目录下新建index.html ,然后在Tomcat中创 ...

  3. 用开源代码如何建立网站_糖尿病患者找到开源并建立自己的医疗设备

    用开源代码如何建立网站 Dana Lewis是2018年开源女性奖的获奖者! 这是她关于开源如何在很大程度上改善她的健康的故事. 达娜患有1型糖尿病,市售的医疗设备使她不及格. 她用来管理血糖的连续葡 ...

  4. 用开源代码如何建立网站_在开源上建立自举业务

    用开源代码如何建立网站 早在2009年,我们在Planio的日常工作就是为客户编写软件. 客户工作通常很有趣,但也有一种感觉,您陷入了无休止地忙于项目的仓鼠,总是在寻找新客户. 我们使用Redmine ...

  5. java 监控usb端口插拔_监控USB设备插拔

    最近做了UKey加密中设计到USB设备. 因UKEy是用来加密和执行PC与项目间通信加密的介质.从作用范围来讲不是传统意义上U盘作为存储介质来使用.其实熟悉网银驱动DR应该了解.在网银系统安全上一个最 ...

  6. python代码弄成网站_原创:用python把链接指向的网页直接生成图片的http服务及网站(含源码及思想)...

    原创:用python把链接指向的网页直接生成图片的http服务及网站(含源码及思想) 总体思想: 希望让调用方通过 http调用传入一个需要生成图片的网页链接生成一个网页的图片并返回图片链接 最终调用 ...

  7. ftp无法与服务器建立连接_建立与Oracle数据库服务器连接的两种连接模式

    建立与Oracle数据库服务器连接的两种连接模式(专用服务器与共享服务器) 在建立Oracle数据库的时候,应该会在数据库建立助手向导上面看到这么一个选项,就是数据库的连接模式采用什么方式.在Orac ...

  8. orcale可视化建立用户_建立动态可视化的新方法

    orcale可视化建立用户 by Sushrut Shivaswamy 通过Sushrut Shivaswamy 建立动态可视化的新方法 (A new way of building dynamic ...

  9. 机器学习 建立模型_建立生产的机器学习系统

    机器学习 建立模型 When businesses plan to start incorporating machine learning to enhance their solutions, t ...

最新文章

  1. 知识图谱要看的书 了解的人 公众的号
  2. JS模块化工具requirejs教程02
  3. Java Spring源代码学习之DispatcherServlet.getHandler
  4. 使用wireshark+ssh+tcpdump远程抓包
  5. 合并 多个dataframe_什么是Pandas的DataFrame?
  6. md5会重复吗_如何优雅地处理重复请求(并发请求)
  7. dw如何写php代码提示,DW CS5 jquery代码提示插件
  8. 解决python读取json格式数据后提取object不存在报错KeyError
  9. getComputedStyle与currentStyle获取样式(style/class)
  10. ubuntu 12.04 LTS 安装配置JDK1.6.0_45
  11. 和 对比_Yeezy350V2新灰橙真假对比
  12. 数据中心监控软件 - ManageEngine OpManager
  13. 京东订单自动评价方法
  14. 帝国php改密码后登录不进去,帝国CMS安装,后台,登陆,密码常见问题汇总
  15. 为一加七Pro(LineageOs17.1 4.14内核版本)编译KernelSu
  16. 群控代理、2016年很火的云豹群控代理
  17. eclipse 插件更新站点
  18. SolarWinds告诉你,IT网络运维“酷”在哪?
  19. 智慧校园与数字校园的区别是什么?
  20. 基于vue2+element+springboot+mysql+jpa+mybatis的图书管理系统

热门文章

  1. 使用git命令拉取远程分支到本地分支
  2. 电脑主机选购---内存条,光驱
  3. Maven项目中,添加依赖项后仍然出现找不到该jar包的解决方法
  4. 约翰·聂夫:31年22次跑赢市场、55倍投资回报,传奇投资大师的7种投资武器!
  5. 打印机共享后每天要重新连接
  6. 色彩深度、位深度、8位图像、16位图像、24位图像
  7. 对于手机号和邮箱的格式验证
  8. C++ 命令行CMD 的控制与源代码
  9. 服务器需要支持5g,5G时代需要什么样的服务器?
  10. 河南省第五届ACM程序设计竞赛总结