9

我正在着手開發一個用於可視化的JavaScript web應用程序,其中包含具有註釋的各種圖表的書籤。
一個典型的示例是:狀態,顯示兩個SVG圖形和一個時間滑塊,用於操縱以及一些放在這裏和那裏的信息註釋。JavaScript可視化應用程序 - 代碼組織,主幹mvc,桌面版本等

傳統(而不是寫過JS了一段時間),我想嘗試某種模塊化JS方法:

src 
    data 
    chart 
     chartType1 
     chartType2 
     chartType3 
    layoutManager 
    stateManager 
    utils 
lib 
    d3? 
    backbone? 
    jquery? 

...打破了數據處理,一些實用功能,狀態&佈局經理等

但是,有大量的圖書館,也許我應該抱着我的馬,並嘗試一種新的方法?

代碼組織?
- 像上面或更多的MVC像?
- 任何可能有用的特定模式?
(僞代碼非常感謝)

狀態處理/模型?
- Backbone.js的
- JavaScriptMVC

看法?
- 是否有任何JS應用程序使用SVG庫(D3,Raphaël等)與mvc框架一起使用的好例子?

Compiler/minifier?
- 谷歌關閉編譯
- Jammit

IDE?
- Aptana Studio 3
- Netbeans
- 其他?

桌面版?(標準:數據存儲,更新等)
- AIR
- 鉻嵌入式
- 的XULrunner
- 鈦Appcelerator的
- 其他選項?

對不起,這個問題的範圍相當廣泛,但如果洞察這些領域的任何一個領域,我會考慮回答。所以請幫我選擇...

+2

這更像是一個哲學的起點,然後是一個問題:)無論如何 - 我喜歡它。我將backbone.js和raphäel.js一起用於python的appengine上的一個項目:http://www.ichbinadrian.ch/blog/2011/04/29/maps-a-decentralised-mindmap - 所有的代碼都在github以及,也許這有幫助。 – thgie 2011-05-04 06:02:29

+0

我可以告訴你,backbone.js確實是骨幹。這是最簡單的Javascript MVC框架,沒有任何花哨的小部件和東西。它做它做得非常好。 – thgie 2011-05-04 06:04:44

+0

感謝分享monkee - 我會從github上下載這個項目,並且肯定會學到很多東西。我主要關心的是,我是否應該改變JS方法,徹底試圖實現mvc框架? – dani 2011-05-04 09:42:04

回答

0

代碼組織? - 我做的像MV中的MVC(應用程序/視圖,幫助器,控制器,模型) - 框架應該組合在一起IMO

狀態處理/模型? - Backbone.js絕對。

觀看次數? - 我不知道有關圖書館。對於一般骨幹視圖和模板,我建立了這個https://github.com/juggy/backrub,它負責根據模型/視圖中的事件來更新視圖。它節省了大量的膠水代碼。

編譯器/縮小器? - Google Closure編譯器 - Jammit

我使用Jammit和閉包編譯器作爲後端。 Jammit可以讓你有效地分組/打破文件。

IDE? 由你決定,越輕越好。

桌面版? (標準:數據存儲,可更新等) 使用一些配置,您現在可以在本地運行Web應用程序。我想你可以看看那個。

1

如果你已經很瞭解MVC,那麼你可以用Backbone做得很好。關於如何組織前端javascript,有太多未知數,我們使用JavascriptMVC,這爲您做出了很多決定。

不知道爲什麼我會使用IDE .. TextMate &控制檯對我很好。當我玩這個遊戲時,NetBeans看起來不錯。 JetBrains RubyMine是最高質量和迄今爲止最好的IDE,但它是商業的。

編輯 是的,JMVC不值得爲它提供的麻煩。骨幹是優雅和簡單的。唯一的問題是如果你對代碼結構相當陌生,因爲你必須定義代碼的結構。如果您使用的軌道,只需複製你的Rails應用程序的組織: 路由器/ 的意見/ 模板/ 型號/

併爲每個類一個單獨的文件,當然。然後使用一些東西來要求一切,如果你使用Rails 3.1或者真的喜歡使用Sprockets,或者使用3.0.x來使用Jammit。

如果你使用coffeescript,只是意識到你的代碼可能被封裝在一個頂級的閉包中,所以如果你要麼必須將你的類加入到頂層散列中,要麼將它們聲明爲window.Classname。

(實際上,「本」是「窗口」在頂層,所以你可以聲明爲: 類@Classname )

祝你好運!

+0

如果您不需要Ruby或RoR,我也會推薦JetBrains WebStorm – Raynos 2011-06-15 08:02:10

+1

我已經使用JavascriptMVC一段時間了,我可以明確地說,如果您使用的是具有體面js資產管理的後端系統,那麼請選擇骨幹。我最終將黑客StealJS設爲無操作並手動包含所有帶有Jammit的JMVC庫,因爲JMVC的基於Java的編譯器需要forEVER,並且它的coffeescript插件會在一定數量的文件之後中斷。 – Duke 2011-07-27 23:40:59

+0

這應該是一個重新修改/更新你的答案告訴我們你的經歷一個月。 – Raynos 2011-07-27 23:43:17