2011-05-21 38 views
8

我一直在開發一個新的rails項目幾個星期,雖然我對令人敬畏的插件和框架中的一些非常棒的功能感到驚訝......我也有點失望。我很擔心。鐵路'陷阱'和學習曲線 - 它會停止嗎?

我想我犯了一個錯誤。

我應該按下還是返回到我所熟悉的狀態? (Java /春)

  1. 看來,除非你正在尋找「簡單的例子」,谷歌搜索的規則的例外,特殊情況等真正阻礙生產力並日益成爲我的常態。

  2. 來自主站點,博客,截屏視頻等的文檔和示例大多已過時。對於每5-10個例子,其中一個實際上是正確的。

  3. 做什麼新的應該「只是工作」幾乎從來沒有。我嘗試並遵循文檔和示例,但是我的結果似乎有所不同,我發現文檔和示例中從未提及的問題。實際上這似乎始終發生。

  4. 我嘗試使用CoffeeScript並與Rails集成的經驗是一場災難。無論何時出現「編譯器錯誤」,都無法看清問題所在,這無疑是令人沮喪的。

  5. ActiveRelation真的很棒,直到你需要做一個連接7個表的查詢。然後它開始崩潰。我認爲在第一次學習Hibernate時可以更快地完成7表連接查詢,並且可以可靠地完成。

  6. 在Rails中測試實際上很難。有太多的「魔術」在繼續。由於Ruby是動態的,我不知道我需要調用什麼來測試適當的東西。似乎總是有例外的規則。

    例如,Devise像你期望的那樣工作......直到你想在助手中測試Devise。它只是不起作用,所以你必須在測試中發明Devise生成的方法來使測試通過。您不需要爲控制器執行此操作。

    有一些博客教導如何使用Rails進行測試,但它們非常微不足道,並且不是非常有用。其中一些實際上很糟糕。我發現如何以比我發現的許多博客更高級的方式進行有效的測試驗證。我發現當談到測試時,我經常獨自一人。

  7. 爲什麼切換到生產時圖像和樣式表無法正常工作?瘋了吧。許多人問這是否谷歌它...但框架不「只是工作」。

    我害怕死亡,最終部署此應用程序。生產版本似乎不像開發版本那樣工作。害怕。

  8. 出於某種原因,在添加jquery-rails和設計後,認證令牌在ajax請求期間沒有得到傳遞。我必須添加4行JavaScript代碼才能使其工作。這花了我5個小時。在Java中,因爲你有適當的會話,你甚至不需要考慮這種類型的東西。

  9. 測試運行非常慢。我有大約780次測試,並且它已經比測試1800次的Java項目花費了更多的時間。

  10. 在瀏覽器中測試應用程序非常慢。它需要1/4秒的時間來渲染一些頁面......甚至沒有那麼多的ORM操作正在進行!即使對於有1個數據庫查詢的頁面,也需要100-200毫秒。這太瘋狂了。

  11. 文檔經常過時。例如,試圖在設計中覆蓋事物是一件痛苦的事情,因爲文檔實際上告訴我做錯了事情。經過幾個小時的谷歌搜索並在另一個論壇上等了48個小時,我纔能有人告訴我我需要做什麼。我想要做的就是讓登錄表單拒絕User.enabled爲false的用戶。而已。事實證明,我壓倒了「活躍?」。而不是「active_for_authentication?」 - 這是RDoc中的錯誤。

  12. ORM的行爲非常奇怪,根本不直觀。當您關聯新對象時,插入/更新的工作方式不同。它也不像Hibernate那樣級聯......這讓我懷疑它沒有跟蹤髒對象嗎?如果是...那麼默認情況下爲什麼不級聯設置?像這樣的事情不是很好的默認值。 Rails在默認情況下應該不錯嗎?

2周後,「陷阱」數量沒有真正減慢。我真的很擔心和害怕。我知道Java對於問題和困難並不是免疫的,但我通常每月遇到2-3次問題 - 一週內不是30次。

我幾乎認爲使用Java/Spring時缺乏靈活性現在當您考慮平臺的穩定性,快速性和可預測性時,現在並不是什麼負擔。你可能會寫更多的代碼,但是你確切地知道發生了什麼......你從來沒有真正處理過沉默的失敗......而且事情往往更可靠地工作。

我開始質疑使用Rails這個新項目。

+0

我應該停止或者我應該按上?這是一個錯誤嗎?鐵軌是否被認真對待?我不知道。我只是害怕,擔心陷阱和問題不會停止:(這不是因爲我不理解這些概念......我非常瞭解它們,Rails對於簡單的事情非常適用......但每次我想做一些「更復雜」的事情,我遇到了問題,有些時候,應該「正常工作」的簡單事情實際上是行不通的,這實際上是道德敗壞,因爲它很「神奇」(更不用說「沉默」了) ,我在黑暗中如何解決這個問題 – 2011-05-21 15:17:11

+4

你的問題聽起來像缺乏經驗,如果我試圖用Java編程,我肯定會遇到同樣多的問題 – DGM 2011-05-21 15:41:58

+0

你可以爭辯說缺乏經驗是任何事情遇到問題的原因 - 甚至沒有編程相關的事情,我只是認爲文檔應該更準確 - 這可以解決很多問題,而且,你不必去遍歷互聯網找出如何去做點什麼,這有點敗了pu獲得生產力效益。我在想,除非你計劃在一年內使用Rails,否則如果你只計劃花費2個月的時間來製作一個新項目,那麼改變平臺可能是不值得的。 – 2011-05-21 15:48:15

回答

4

當我幾年前開始使用Rails進行敏捷Web開發時,您可以做的最好的事情是閱讀和處理本書中的示例,這真的幫助我理解事情應該如何工作,也是一個很好的參考資料,您可以隨時查閱某些主題。

最新版本似乎是: http://www.amazon.co.uk/Agile-Development-Rails-Pragmatic-Programmers/dp/1934356549/ref=sr_1_1?ie=UTF8&qid=1305991885&sr=8-1

+0

我翻看了目錄,我真的很瞭解書中的很多內容。我已經有大量的應用程序已經建成。從一些評論中,我得到的印象是,你們認爲我幾乎無法獲得控制器或1個Ajax電話的工作。我的問題是關於事情如何精確運作的可怕文檔以及作爲規則例外情況的複雜事物或事情。沒有任何關於在rails中執行7表連接的示例。我甚至沒有看到一個2表加入的例子,更不用說了。這就是問題所在。 – 2011-05-21 18:48:51

+3

而7表加入甚至不那麼難......我在誤入歧途之前就被誤導了六次。首先是「&」...這是谷歌首先提出的。然後「合併()」。但是當你想用2個merges()做3個模型時,它停止工作..所以你不需要再使用merge。而且......永遠不會結束。 – 2011-05-21 18:51:31