如果你想组装世界上最好的水果篮,你不会从同一个果园挑选所有的水果。 你会从多个来源收集最好的水果:华盛顿苹果、佛罗里达橙子和夏威夷菠萝。
应用同样的理念,许多程序员和开发人员现在正在结合来自多个开源 Web 应用程序框架 (WAF) 的最佳代码,以创建他们自己定制的网站、内容管理系统 (CMS) 以及其他基于网络的应用程序和服务。 称之为精挑细选的精华。
这些“嵌合体”应用程序,本质上拥有不止一个 WAF 的 DNA,是使用专有代码甚至开源 CMS 来编程基于网络的应用程序或网站的一种流行的替代方案。
更少的限制
开源 WAF 运动背后有三个普遍的关键:更好的控制和定制、缺乏开销以及与其他开源软件的互操作性。
喜欢不全面编码其产品各个方面的开发人员可能完全可以舒适地使用专有软件来创建其基于网络的产品。 然而,这种捷径是有代价的:缺乏自定义这些预编程解决方案的自由,以及更改任何实际可以修改的内容所涉及的开销。 即使是免费的开源 CMS 也是如此,它可以节省成本,但在其应用程序结构和运行方式方面仍然是严格的。
另一方面,开源 WAF,例如最近推出的基于 PHP 的 Joomla 框架,允许程序员更精细地控制其网站或基于网络的应用程序。 这使他们能够在利用框架工具的同时进行改进、调整和重新配置。
但也许这个领域最令人兴奋的趋势是开发人员实际上可以将来自多个开源框架或库的单独工具或代码(前提是它们以相同的语言运行)组合起来,以创建和优化最符合程序员目标的混合解决方案的能力。
例如,作为开发人员,可以利用 Joomla 的应用程序和路由器包、来自 WAF 提供商 Symfony 的会话管理功能、来自另一个竞争提供商(如 Doctrine)的数据库包,以及来自另一个提供商(可能是 Monolog)的日志记录解决方案。 程序员不仅避免了花费大量时间为这些过程编写代码,而且这些包都无缝地协同工作,尽管它们来自不同的来源。
事实上,某些基于 PHP 的开源框架提供商,他们也提供内容管理系统——这包括主要参与者 Joomla 和 Drupal——要么已经开始,要么计划采用和整合来自其他基于 PHP 的框架的代码。 这样做将使他们能够构建更好的全方位产品来提供给用户。
向开源社区学习
开源 WAF 的大规模互操作性促成了一系列集成成功案例。 例如,Joomla 最近成为第一个基于 PHP 语言的框架提供商,提供允许用户连接到基于网络的托管解决方案 GitHub 的 API(应用程序编程接口)的代码。
利用开源框架的巨大优势之一是开发人员可以通过研究其代码并学习程序员如何实现不同的部分来创建最终产品,从而获得知识和技能。
同样重要的是要观察开源社区的支持如何使这些基于网络的应用程序和服务成为可能。 这里没有任何专有技术——没有什么是不能分享的“秘方”。
正是这种协作环境促进了当今程序员的创造力和创新——越来越多的程序员正在利用一流的解决方案,同时将自己从闭源解决方案和传统开源 CMS 的约束中解放出来。
这种进步需要一个庆祝的水果篮……只要里面的内容是最好的,并且正值采摘时节。
8 条评论