問題描述
我認為自己是一名訓練有素的 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。
