2011-03-30 65 views
4

在過去的2年中,我們一直在使用CakePHP構建a web application。到目前爲止,我們非常喜歡CakePHP,並認爲它很棒。我們在開始之前評估了Ruby on Rails,但決定使用CakePHP,因爲我們的團隊對PHP/MySQL有更多的經驗,並且聘請RoR開發人員似乎更加困難/昂貴。從CakePHP切換到Ruby on Rails有多難?

最近,我們一直在思考的回報率,因爲:

  1. 許多新的高度成功的Web應用程序 是建立在回報率和最期待美麗簡單使用。
  2. 用戶庫,文檔, RoR 的查找答案似乎比CakePHP更大。
  3. PHP來在 往往開發商我們的做法說他們知道CakePHP的 這麼多的口味,但實際上他們 程序PHP和不堅持CakePHP的 約定。
  4. Ruby on Rails創建成功盈利 業務依賴於代碼庫。 因此,給我們一個假設,即 RoR的改進速度會比CakePHP的 更快。
  5. 包管理讓我們 相信插件更容易在RoR上安裝 而不是CakePHP。

考慮到這一點。我們的問題是:

  1. 有多難了一位經驗豐富的 CakePHP的程序員從 CakePHP的切換到回報率?
  2. 多大的任務會是給 重寫一箇中等大小的CakePHP的(約定嚴格遵循) Web應用程序中的回報率
+2

這有點過於主觀的想法。沒有確切的方法來衡量它是多麼的難以切換,而且它確實取決於cakephp程序員對MVC和Ruby語法的瞭解如何。 – corroded 2011-03-30 15:42:24

+3

「美麗」和「簡單」特質並非由於Rails本身(除非你正在查看源代碼),而是很好的應用程序設計和JavaScript/css(可以使用任何框架進行管理)。 – 2011-03-30 16:39:06

回答

4

PHP是一個非常不同於野獸的野獸。 PHP並沒有像Ruby那樣接近於面向對象,並且最初是一個相當大的大腦彎曲者。也就是說,我認爲一個熟悉通用語法的堅實的程序員應該能夠很容易地學習新的語法類型。

$a = new A(); 

並不比

a = A.new 

太大區別至於蛋糕去,VS Rails的,這是另一個整個怪物。用rails開發很快。非常快。但是當你在飛行中轉換整個應用程序時,你需要一個能夠真正分解它的組件的人,並迅速進入這些細節。所以你可以把每個人的骨骼放在一起來「填充」。至少,這可能是我的方法(儘管通常我會等待一個應用程序的'預定'重寫,以轉移到一種全新的語言)。

在團隊中有一些非常有經驗的RoR開發人員(至少在此期間)可能會大大加快此過程,並讓您的團隊儘可能快地工作。加快速度可能會花費更多,但這會大大提高生產力。雖然我不能說經驗(不同的答案)有,但我從經驗中知道,一旦你開始用Ruby編寫並獲得Rails的要點,實現實現所需的時間比在PHP中花費的時間少得多(YMMV )。儘管面對傳統的開發實踐(比如ActiveRecords),Rails中的一些事情會完成,但大多數人都會與數據庫交互。

最後,與其他基於框架的社區相比,RoR社區相當龐大。它本身非常靈活,並且可以讓你真正利用PHP社區中不存在的許多不同的零碎。

希望這會有所幫助!

+1

+1「爲團隊中有經驗的RoR開發者」。 – Zabba 2011-03-30 18:48:44

2

你可能想從事一個人誰是Rails開發。這將是緩解過渡進程的重要一步。

一個好的程序員將把握紅寶石快,至少閱讀Learning Ruby重要章節,例如後。然而,Rails的開發很大程度上取決於最佳實踐。通過Rails Guides進行閱讀可以幫助您獲得更多的信息,但如果能夠開始使用具有Rails項目體驗的人員,則會更容易。

學習/ Rails的開發兼職3個月後,我帶領5個學生一個項目誰也不知道的Ruby或者Rails的。在一週內,我可以教導開發人員Rails的基本工作,並且在1-2周內,每個人都可以自己開發。我們在3個月內建立了一個生產型中型應用程序。這並不難。

1

這是一個有點爭論,但是這就是我的想法:

  1. 你做出正確的選擇切換到Rails的。我相信你會愛上它的。
  2. 雖然我不會說謊。 Rails的學習曲線陡峭。這很困難,需要大量的研究。
  3. 一旦你知道如何用Rails做事,沒有更快的方式來開發Web應用程序。
  4. Ruby幫助程序員,Rails幫助程序員。一個偉大的事實。
  5. 我一直在重寫一個從PHP到Rails的瀏覽器遊戲。 2周後,約有60%的工作完成。
+0

所有優點。我喜歡Rails,但Rails中的很多東西缺乏良好的文檔。你在書中發現的很多例子只是談論簡單的例子,很少有你找到深入的例子。 – Zabba 2011-03-30 18:47:38