如何击败腾讯
过去四年来,我一直在为自己管理的网站使用开源内容管理系统(CMS)Drupal。 尽管在使用开放源代码产品时可能会有一些古怪之处,但我无法想象以其他任何方式使用它。
人们在考虑是否使用开放源代码产品时可能会有些犹豫,这可能包括以下事实:当您遇到问题并希望在两个工作日内得到答复时,您不能只提交帮助台票证。 在大多数情况下,像专有系统一样,在开源项目的背后没有一家公司或实体存在。 相反,开源拥有社区。
当您在内部构建自己的自定义系统时,或者在使用另一家公司的专有软件时,只有少数开发人员(您的内部开发人员或该公司的开发人员)在使用系统的功能。 另一方面,当您使用开源项目时,作为该项目社区的一部分,会有大量的贡献者。 例如,drupal.org最近拥有100万个帐户。 在撰写本文时,Drupal.org的开发人员数量为32,468,但是,许多用户在不提交补丁的情况下为社区做出了贡献,因此,贡献者的数量要大得多。
这是开源最大的优势。 一旦网络趋势出现,并且客户注意到它并要求我将其包含在网站中,那么Drupal社区中的其他人(或一群人)很可能已经为该功能编写了一个模块。 例如,当社交共享链接开始弹出,并且客户希望将其包含在他们的网页中时,已经有各种各样的Drupal模块提供了该功能。 我对其进行了测试,选择了我喜欢的工具,然后轻松地将该功能包括在网站上,而无需编写任何代码。
![社交媒体栏 social media bar](https://i-blog.csdnimg.cn/blog_migrate/2771b1d28e5bc80466032f331b0630c0.png)
同样,创建群集地图成为网站上的一项新功能。 当我们需要绘制基于北卡罗来纳州的生物科学公司的地图时,我再次能够找到两个稳定的模块,这些模块可以完成我们想要的大部分工作(作为免责声明,我确实必须修补其中一个模块才能使其完全正常运行我们需要的东西,但是与必须自己编写一个模块相差很远)。
![映射开源 mapping open source](https://i-blog.csdnimg.cn/blog_migrate/50dddd946ef2d999fdd4ec417a41eab9.png)
当新HTML 5标准发布时,Drupal社区立即开始创建新主题并改进现有主题以输出HTML 5并利用这些改进。
简而言之,当有一些与Web相关的新功能或改进时,Drupal社区中的活跃参与者就在上面 。 我所要做的就是四处搜寻以找到几乎所有与Web相关的需求的解决方案。 通常,我要做的就是下载一个提供我所需功能的模块,或者更新一个现有模块,因为社区贡献者不断对其进行扩展和改进。 这就是开源社区的真正力量。
为社区做贡献
现在,当然,不建议您围坐在一起,让其他人去做。 如果我们所有人都有这种态度,那么就不会有开源项目。 有很多方法可以帮助您使用的开源项目。 我已经编写了补丁程序以消除错误或扩展了模块的功能,还测试了需要测试的其他人的补丁程序,甚至只是在线提供了文档,这些文档也是社区生成的。 即使您不编写代码,也可以测试他人编写的补丁并增强文档。
假设我以上述多种方式之一贡献了20个模块。 听起来可能很多,但请考虑以下问题:在最繁忙的Drupal网站上,我使用了多达97个模块(除了核心模块)。 因此,您将看到如果我们每个人都做出一点贡献,我们就能收获多少。
我在社区中有多有能力或有多活跃都没关系。 从头开始编写所有我想使用的Web功能:具有评论的功能,用于登录用户的自定义帐户,社交媒体共享按钮,下拉菜单,集群地图,可自定义的搜索界面,新闻稿订阅,还有更多。 如果无法利用那里成千上万增加Drupal的安全性,功能和视觉外观的开发人员,我将无法自己完成很多工作。
注意这些差异
成本
对于专有系统,您需要付费使用该系统以及任何相关的技术支持,而当您选择使用开放源代码软件系统时,则可以免费获得该系统本身。 您的成本来自于您是否选择让管理员和/或开发人员可以为您自定义它,并且知道如何在开源社区中有效地工作。 特别是如果您的需求需要大量的复杂性和自定义设置,那么这可能是必要的支出(而且可能并不便宜)。
灵活性
让内部开发人员在开源社区中工作可能意味着,与向正在使用其系统的公司请求全新功能相比,您可以更快,更可靠地进行自定义。 外部公司可能有很多客户,因此有很多请求,而您的请求可能会排成一列。
决定是社区决定
有时,您想沿某个方向使用系统或特定模块,但是社区或模块维护者可能不需要。 大多数时候,多数人的意见是正确的。 但是,社区模型也可能存在问题。 例如,模块可能会被其原始作者和维护者抛弃,而不是采用计划中的,有思想的“此功能将被弃用”的方式,拥有专有产品的公司会为您提供一段时间后停止使用该功能的机会。 由于各种原因,模块可以被放弃。 对于具有许多用户的活动模块,这种可能性不大,因为社区中的其他人可能会介入并提供帮助,但是我已经多次看到使用较小模块的情况。
此外,社区或模块维护者可能不会就模块的增长或演化方式与您达成一致。 我已经看到有两年的模块问题了,经过长时间的讨论,参与者的人数接近100分,他们讨论的不是谁应该解决特定的技术错误,而是如何甚至应该解决它。 有时,不同的用户希望以不同的方式使用相同的功能,在这种情况下,模块维护者(志愿者职位)或资深Drupal贡献者可能会占据主导地位,而与多数职位无关。
但是,在Drupal中,即使社区朝着与您想要的模块不同的方向发展,您也可以编写自己的自定义模块,以供单独使用,并且与社区的已贡献模块存储区分开。
这些只是使用开源软件项目的一些细微之处。 您必须学习社区的工作方式,如何贡献自己,如何报告问题,测试解决方案以及自己贡献解决方案,以及获得修复和改进的局限性。 每个社区都有不同级别的活动和不同数量的用户,这两者都会影响产品修复和改进的速度。
无论如何,您将免费使用一堆完整的代码,这是数十,数百甚至数千个人工作的结果–您可能负担不起这个数字。 但是,通过开源项目,您可以获得所有好处。
翻译自: https://opensource.com/business/14/4/open-source-community-beats-tech-support
如何击败腾讯