2012-02-13 27 views
1

我對JavaScript和PHP很合適,我會說我是一箇中間人。我開始了一個真正需要像MVC框架那樣構建的新項目。我一直在尋找backbone.js,但由於某種原因,邏輯並不堅持。我探討了OOPHP,當然也在與jQuery合作,一定程度的「對象」是固有的......但我無法完全掌握像backbone.js這樣的基本方法。只是沒有得到MVC(如backbone.js)

有沒有別的地方我應該開始?一個更簡單的MVC或者我可以使用的一個好資源將有助於概念和方法的堅持?

這只是這樣的模式轉變。與迄今爲止我所做的所有程序性的東西相比,它實際上就像學習一種新的語言。

而且,我不會通過PHP使用RESTful接口或什麼,只是良好的OLE老式儲蓄東西MYSQL。

回答

3

如果您有興趣使用javascript學習MVC的做法,我建議閱讀Javascript Web Applications。你還會找到關於Backbone的一章。

也看看Backbone Patterns

+0

+1對骨幹模式不錯,我不知道那個網站,謝謝:) – Sander 2012-02-13 11:25:56

+0

很棒的資源!謝謝! – 2012-02-13 17:48:22

2

好,

技術上Backbone.js的是對整個MVC概念的變體。 Backbone使用模型視圖集合概念而不是模型視圖控制器。視圖,接管一些真正的mvc中的控制器會做什麼的工作。

這不是一件壞事,在我看來,JavaScript是從來沒有打算做這樣的事情:) ,如果你不使用MVC編程你可能不會注意到差別。

儘管如果你想從幾個簡單的例子開始,在backbone.js周圍,我建議你看看這個網站http://www.backbonetutorials.com/,它可以幫助你構建模型視圖集合應用程序(作爲主幹)。那麼當你掌握這個概念時,你可以跳到examples given on the backbone.js website。特別是Todo應用程序,它也提供了對象的註釋源。它是一個完全正常工作的簡單應用程序,它可能會讓你知道它應該如何工作,而不是有這些分離的例子。但你必須從某個地方開始。

+0

是的,MVC的東西只是踢我的屁股。 – 2012-02-13 17:48:36

+0

是的,MVC邏輯就是如此的陌生。它會在真正點擊之前進行一些嘗試。我玩Knockout,MVVM方法更容易消化。它似乎更明顯?直觀?它可能是「sloppier」編碼混合標記與腳本,但有關該方法的一些東西對我來說更有意義。 – 2012-02-13 17:50:59

+0

請記住,backbone.js不是真正的MVC,你的代碼與你的視圖相當緊密。事實上,我發現自己寫了很多代碼到視圖中,實際視圖(mvc將定義的視圖)或多或少都是我通過骨幹視圖呈現的模板。我只是不想讓你知道關於骨幹的一切,並且認爲你知道真正的MVC :),它只是另一個有它自己的味道的旋轉,現在我認爲它做得很好。 – Sander 2012-02-14 01:09:54

2

骨幹不是MVC模式的實現。最好將其視爲一個MV *實現,它具有模型,但不包含控制器,其視圖通常作爲視圖,控制器和演示者的組合來實現,並且沒有嚴格的控制器或演示者或視圖模型。理解這絕對是在感覺混淆主幹並試圖瞭解如何在引用MVC模式時使用它的時候實現的第一件事。

MVC,MVP,MVVM和MV *模式很難通過閱讀一兩篇文章或一個簡單的例子來真正實現,而且似乎每個人都有一個類似但略有不同的想法,是。

關於MVP和MVC與骨幹關係的真正討論,請閱讀Addy Osmani關於開發骨幹應用程序Here的文章。

但是,如果您只是關心如何使用骨幹網,並覺得您必須成爲MVC專家才能正確執行此操作,那麼您就擔心錯誤的事情。相反,看一下現有的出版骨幹的例子,請按照這些模式,併爲你添加代碼到您的視圖和模型,請記住以下幾點,每一段代碼編寫:

  1. 是這種觀點的具體代碼?然後把它放在視圖中。
  2. 這是特定數據的代碼嗎?然後放入模型中。
  3. 這是關於協調視圖和模型的代碼嗎?傾向於將它放在視圖中。

上面#1和2的一個很好的指南是不允許你的模型引用DOM,然後把你可以在模型中的所有代碼。只有需要引用DOM的代碼才能進入視圖。如果你試圖實現這個目標,並且只有在代碼放在模型中時才顯得更加複雜,那麼只有違反它,那麼你應該很好。