2010-03-27 119 views
1

這是一個初學者的鐵軌學習困惑。當我學習鐵軌時,我不時因鐵軌原理「Convention over Configuration」而感到沮喪。 Rails大量使用約定。其中很多隻是命名約定。如果我忘記了一個約定,我會使用錯誤的命名並得到意想不到的結果,或者神奇地完成任務,但不知道如何。有時候,我想到配置。至少配置清楚地列出了一切,沒有什麼是迷霧。在鐵軌上,你和機器之間似乎隱藏着一個黑暗的契約。如果你遵守合同,你的溝通很好。但初學者通常會忘記合同中列出的項目,這通常會導致混淆。Rails學習的困惑

這就是爲什麼當我第一次拿起導軌時,我覺得它是某種難以學習的東西。此外,還有很多其他的東西可能對學習者來說是新的,比如使用git,使用社區的插件,使用RESTful路由樣式,使用RSpec。所有這些都是全新的,並且共同學習Ruby和Rails。這對初學者來說肯定會增加困難。

相比之下,如果你學習php,它不會那麼糟糕。你可以忘記很多事情,並專注於學習PHP本身。如果您已經瞭解SQL,則不需要學習數據庫處理(在rails中,您需要學習全新的概念遷移),您不必學習新的體面單元測試(在rails中,通常他們會一起教授RSpec因爲rails是敏捷的,你應該在早期學習階段學習測試驅動的開發),你不需要學習新的版本控制(在rails中,你將被教授git),你沒有要使用複雜的插件(在rails中,他們通常在教科書示例中使用第三方插件!究竟是什麼?爲什麼不教會如何在rails中做類似的簡化操作?),您不必擔心REST風格。總之,當我學習php的時候,我很快就學會了它,我開始自己寫東西。學習PHP類似於學習C/java。它嚐起來像那些傳統的語言。當我學習鐵軌時,這是更困難的。而且我也需要學習ruby(我相信很多人只是因爲rails而學習ruby)。

有沒有人有和我一樣的感覺?你如何克服它,並開始掌握鐵路?提示將受到歡迎。謝謝。

+1

社區維客請求 – clyfe 2010-03-27 23:42:50

回答

2

需要學習的Ruby。 Ruby是一種語言。它有它自己的怪癖。你不需要學習很多的Ruby的,但你不能學會沒有紅寶石想到寫像樣的東西。

接下來,你需要學習Rails慣例。學習約定意味着你不需要學習Ruby網絡類。如果你不想學習慣例,那麼寫任何有價值的東西都是困難的。

這與學習C#(作爲一種語言),然後學習MVC框架(如ASP.NET MVC或FubuMVC)沒有什麼不同。

是的,你在PHP中拋出任何東西,在這個過程中學到的東西少得多。但投資是有價值的。你的教育很有價值。

學習需要時間。建模非常重要,而且我看到了一些醜陋的Rails代碼,因爲作者是不好的建模者。那些可憐的模型變成了醜陋的數據庫。但它仍然有效!它滿足了客戶的需求。

0

因爲Rails是一個框架,而PHP是一種語言,所以您與PHP的比較並不成立。您應該將Ruby與PHP或Rails與某些PHP框架進行比較(我對PHP框架並不熟悉,並且不知道示例)

但是您對Rails「神奇」發生的事情是正確的。我也有問題了解他們,並在Rails代碼中查看了許多事情,以查看實際發生的情況以及原因。

要了解Rails的,你應該先了解其所建(像你應該可以與任何框架恕我直言,這樣做)的語言,所以先學紅寶石。我個人很喜歡Mr. Neighborly's Humble Little Ruby Book。它是以一種簡單而美好的方式書寫的,並不像無數的語言書籍那樣無聊/嚴肅。

之後,我閱讀/完成了關於http://guides.rubyonrails.org/的所有教程/指南,它們隱藏了(重要的!)基礎知識,並講述了您正在編寫的有關Rails的具體內容。

+0

我不比較rails和php。我比較的是學習使用rails並使用php進行web開發。我不打算比較ruby和php。 謝謝你的建議。 – Steve 2010-03-28 10:13:07

0

當我第一次聽說Rails的時候,聲稱你可以用比其他框架快十倍的速度構建一個Web應用程序。我一直認爲這太誇張了。

如果你沒有十年的'配置'方式,大部分的約定都很難記住。因此,對於新開發Web開發人員來說,很難記住所有的約定,並理解它們爲什麼重要。我絕對沒有看到生產力增加了十倍。例如,路由可能開始很好並且簡單,但變得越來越複雜。我認爲應該做出一些努力(可能由人們編寫Rails書籍),不要試圖將各種能力混淆在一起混淆新手。