问题描述
我认为自己是一名训练有素的 WordPress 模板开发人员,最近我开始阅读有关 Web 应用程序框架的书籍和文档,特别是 Django 和 Ruby on Rails 。我不知道这两种语言,但我没有学习另外一两种语言的问题。我真的没有获得使用框架的真正好处,因为我对 WordPress 的力量非常有信心。那么任何人都可以告诉我使用框架的真正好处吗?例如,Pinterest 是使用 Django 制作的,但我认为我可以使用 Javascript 和 CSS3 与 WordPress 模板达成相同的结果。有谁能告诉我在这种情况下使用框架的差异/好处吗?谢谢!
最佳解决方案
您可以使用 WordPress 实现相同的前端,但您将无法实现的是基于更多 application-oriented 架构的应用程序的速度和规模 (最重要的是可维护性) 。
WordPress 是非常灵活的,但它也很慢,需要很大的 TLC 才能够以任何形式进行大规模的操作。它的设计允许非常灵活的运行时修改行为,但这也是一个 Pandora 的 Box,因为这意味着代码可以最终运行在任何给定页面的整个地方,这使维护成为一个噩梦。
WordPress 非常擅长成为一个 CMS,但是一旦你开始把它推到了这些界限之外,你会陷入困境,发现自己必须编写自己的更抽象的框架,运行在 WordPress 的上下文中才能实现您的应用程序的需求。
也就是说,如果你有一个应用程序,你可以建立在 Wordpress 的上下文,我会说去吧! WordPress 可以成为构建 proof-of-concept 或 MVP 的精彩工具。如果它让你开始运行,那么它可能是编写完整的应用程序的正确选择。不过,请注意,随着产品设计的成熟以及受众的增长,您将打破一些砖墙,除非您的应用程序符合相当狭窄的设计要求,否则 long-term 可能会发现自己必须移动到定制应用程序。
凭证:我花了几年时间维护一个 WordPress 安装,每月提供超过 2500 万个独家销售,我们必须非常聪明才能保持运行状态。我们已经用一个 Rails 应用程序来替换它,该应用程序的速度比 10x-30x 的数量级别要高一些,而且作为一个应用程序可以显著扩展,这样我们就可以开始探索我们真正无法使用 WordPress 的应用程序的潜力。
次佳解决方案
我想提出一个反对意见,即使我提出了最高的答案。
Rails 真的很特别吗
Rails 由 David Hansson 创建,他从 Basecamp 中提取出来,该软件是在免费的 WordPress 插件 WP Project Manager 中复制的。我认为这是 Rails 开发人员低估 PHP 和 WordPress 的一个很好的指标。
MVC 和 WP
是的,它不遵循 MVC 模式。但是如果您使用 hooks,单独的逻辑 (在插件中) 与视图 (在模板中),那么您将具有良好的代码分隔。 (另外提示:自定义帖子类型就像模型。)
框架与应用程序
您可以看到,Wordpress 可以像应用程序或框架一样对待。它是一个应用程序,包含您希望在框架中找到的所有组件。开箱即用,您具有安全性,身份验证和可扩展性。这意味着要延长。
缩放
WP 拥有互联网网站的 18%,其中包括 TechCrunch,Smashing Magazine 和 (CNN) 的部分。似乎有办法使 WP 规模。免责声明:我没有像这样的气象工作的经验,所以我只提出猜想。
WP 未来
目前对 WP 社区的排斥是将 WP 从 CMS 转移到框架。我认为这是一个自然的进展,考虑到所有的片段到位。 WordPress 社区正在发展壮大。
第三种解决方案
我已经做出了一个决定,在一些 Start-Up 工作,选择 WordPress 的高级 e-commerce,community-driven 市场。
它。是。最差的。可能。决策。
这是我的感觉:
一开始,它看起来很好 – 你有惊人的社区,插件的一切等等,但让我们面对真相 – 在根源 – WordPress 是博客平台!
-
技术上每一个平安的内容都是
post
。 -
创造高级物品关系是一场恶梦
-
WordPress 不是 Object-Oriented 。它有很多类,但是一般来说,你必须使用很多
functions
,像get_post_meta
来管理它的核心功能。像$post->author()->comments()
这样的事情只是一个梦想。 -
功能不一致。某些功能在某种程度上起作用,其他功能似乎非常相似,以不同的方式工作。有时你需要一些奇怪的黑客来实现似乎很简单的任务。它使您经常阅读文档,以了解您第 1000 次使用的功能如何工作。 (说实话,我需要说的是,WordPress 的文档是非常好的!)
WordPress 社区做得很好,但与任何好的框架相比,有一个主要区别 – 框架只是框架 – 它们是一组工具,这些工具可帮助您完成项目。 WordPress 已经在试图成为你可能会改变的东西。
我会说:如果你需要一辆汽车,你可以买一些工具来建造它,或者你可以买一辆卡车,尝试修改,直到它开始看起来像一辆车。
我永远不会使用 WordPress 的任何需要一些 well-organized 的自定义功能。
这只是博客和一些小型 e-commerce 的好处 (只因为有些家伙做了很好的工作,改装卡车才能创建产品的功能,这是真正的帖子,连接他们的促销活动,真的是 post-metas,添加一些促销经理,在一些神奇的方式将它包裹在一起) 。
第四种方案
不是真的一个答案,而是一个提示:
http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks
好像你可以完全取代它… 我认为这主要是逻辑流程的问题。这取决于您打算做多少必要 (Ruby on Rails) 与描述性 (WordPress) 编程。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。