开源框架创建“超级”网络应用程序

尚无读者喜欢这篇文章。
Consumer Financial Protection Bureau on open source and "growing the pie"

Opensource.com

如果你想组装世界上最好的水果篮,你不会从同一个果园挑选所有的水果。 你会从多个来源收集最好的水果:华盛顿苹果、佛罗里达橙子和夏威夷菠萝。

应用同样的理念,许多程序员和开发人员现在正在结合来自多个开源 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 的约束中解放出来。

这种进步需要一个庆祝的水果篮……只要里面的内容是最好的,并且正值采摘时节。

 

标签
User profile image.
Michael Babker 是信息技术行业的资深人士,在该领域拥有超过 15 年的知识和经验。 在发现对使用开源和为开源做贡献的热情之后,他已转型并主要担任 Web 开发人员的角色。

8 条评论

感谢您分享您对 Web 应用程序框架的见解和知识,Michael。 很棒的阅读体验!

很棒的文章,Michael。 在节省时间和使用最佳解决方案方面,混合方法具有巨大的优势。 基于最受欢迎功能集成的解决方案通常质量更高,使用效率更高。

我完全同意,Aseem。 对我来说,好处太多了,甚至无法计数。 最后,很高兴能够在高质量的项目上工作,并专注于我自己的需求,而无需编写自己的会话处理程序或数据库集成类。

仅供参考
对我来说,这种想法既令人兴奋又令人恐惧——作为一名工程师,我对这开启的可能性感到兴奋。 但我可以看到一个纯粹的商人看到他们不理解的技术,因此会看到成本。

嗨,Nabeel,

因此,为了回应商业人士,我的一个卖点可能是关于他们更多的投资将如何用于他们特定的产品需求,而不是被要求我自己搭建基础设施。 例如,引入 Symfony 的代码来处理我的会话,我只需要将其集成到我的堆栈中,而无需编写自己的代码。 从维护的角度来看,会有一些额外的时间要求,因为您需要监控这些项目的活动并根据需要及时更新。 因此,对我来说,项目启动的成本会稍微低一些,但在维护方面可能会稍微高一些。

这种方法是否应该让人对改进内容抱有希望?

您所说的改进内容是指哪些方面?

在构建应用程序时,我尽量意识到应用程序将服务于哪种类型的内容,但我基于 PHP 的大多数代码不会为了适应内容而改变。 我发现在我的工作中,内容部分更多地集中在模板级别,即内容如何显示以及与内容交互的人员如何管理内容。

可能是一位老前辈的渴望。 相信如果作家不必担心造纸过程,他就更有可能创作出“伟大的美国小说”。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.