我目前有一個用rails3編寫的web應(yīng)用程序.我想寫一個基于骨干的js應(yīng)用程序,它將使用rails3服務(wù);雖然有許多帶有rails的骨干的例子,但我更愿意在不同的項目中構(gòu)建它.這個項目將是純粹的html css js,然后指向其他項目的服務(wù).
>這種方法有哪些優(yōu)點或障礙?
>還有其他方法嗎?
我注意到github上的大多數(shù)rails3-backbone項目在幕后做了很多魔術(shù)(例如:預(yù)編譯車把資產(chǎn),自動包含js文件),這使得理解所有部分如何協(xié)同工作變得更加困難.另外,如果我想使用phonegap / trigger.io / etc打包應(yīng)用程序,這會不會更難?
解決方法:
在編寫B(tài)ackbone應(yīng)用程序時,單獨開發(fā)它實際上很有意義.換句話說,正如你所說,開發(fā)它作為一個純粹的html css js應(yīng)用程序.
有很好的理由這樣做:
>部署
在部署應(yīng)用程序時考慮.在某些時候,您肯定希望部署應(yīng)用程序的某些模塊化組件.這可能是負(fù)責(zé)為您的客戶提供json的后端服務(wù),或者可能是對UI的調(diào)整.無論哪個,最好是你能夠獨立部署它們.
>模塊化
能夠在幕后使用一些魔術(shù)來幫助開發(fā)UI可能聽起來很有吸引力.但是,請考慮項目的模塊化.
IMO,Backbone(或任何AJAX應(yīng)用程序)都很漂亮.美麗來自于UI代碼實際上與后端的實現(xiàn)無關(guān)的事實.它可以與PHP / JAVA / RAILS / PYTHON / YOU-NAME-IT服務(wù)器通信,但它仍然無關(guān)緊要.也就是說,如果您正在實現(xiàn)RESTFUL服務(wù)器.實際上,UI代碼可以放在NGINX服務(wù)器上,該服務(wù)器只提供靜態(tài)內(nèi)容,它仍可以完美運行.這實際上就是你想要的.您的UI代碼在任何時候(在開發(fā)或生產(chǎn)期間)都不應(yīng)該知道您的后端框架或您的后端支持的任何工具.將不必要的依賴項引入Backbone項目將是一種犯罪行為.
想象一下,有一天,當(dāng)你認(rèn)為適合遷移到不是Rails的不同架構(gòu)時.如果存在任何依賴性,那將是一場噩夢.更確切地說,UI具有完全獨立于后端實現(xiàn)的UI.
>包裝
您提到您將使用PhoneGap打包您的應(yīng)用程序.這可能是您的項目應(yīng)該獨立的最大原因.當(dāng)您說,將您的應(yīng)用程序提交給Apple時,如果您計劃這樣做,那么您將無法從服務(wù)器上加載js.必須將所有腳本打包到App中,該App必須是獨立的.
最后但同樣重要的是,回答有關(guān)“其他方法”建議的問題.這是非常模糊的,所以我不確定這個建議是否會有所幫助,但我想指出一些有助于組織Backbone項目的資源,讓您的生活更輕松.
我認(rèn)為這是使用Backbone的最佳方式. RequireJS讓你在js文件中指定你的依賴,就像你在編譯語言中導(dǎo)入一樣,這對于組織你的Backbone項目和將代碼分解成更小的模塊有很大幫助. requireJS提供的優(yōu)化工具也允許您將所有javascript文件壓縮到一個文件中.我相信如果您想在PhoneGap中打包您的項目,這將派上用場.
你提到過使用HandleBar.但是,我建議您查看下劃線的模板引擎,該引擎受RoR模板的啟發(fā).假設(shè)您使用Rails非常舒服,那么下劃線模板引擎可能正是您所需要的.
來源:https://www.icode9.com/content-1-268651.html