Spine
Spine,是一个构建JavaScript Web套用的轻量级框架。
基本介绍
- 中文名:Spine
- 类型:轻量级框架
- 套用核心:MVC模式
- 套用:JavaScript Web
Spine.js简介
Spine给你提供MVC框架,让你放心做自己事,让你集中精力在有意思的事情上,从而构建出令人惊叹的Web套用。
Spine坚持自己在构建和设计Web套用架构上的意见。Spine架构是解耦模组和CommonJS组件的有力补助,对提高代码质量和可维护性有极大的帮助。
Spine用CoffeeScript写成,但开发套用时不必要用CoffeeScript。你可以使用CoffeeScript或是JavaScript,选择你最熟悉的就好。
Spine非常精简,只用了大概500行CoffeeScript代码。轻量级和简洁是Spine的基础。
核心价值
MVC——MVC模式(Model-View-Controller),是Spine套用的核心。她通过一致的架构确保你的套用模组化,良好的命名空间(name-spaced)并避免你视图和模型逻辑混为一团。她给JavaScript开发带来了所需要的结构,这对团队来说是巨大的帮助。
异步结构——太多太多JavaScript套用和框架没能充分利用客户端渲染的作用。最终用户不关心后台请求伺服器是否还在等待,更不想去看“正在载入”的讯息和提示。用户渴望流畅的界面,流畅的互动。为了实现这个,Spine在浏览器端存储和渲染所有事物,并异步和伺服器通信。
简介——Spine is a minimum possible viable product.她不限制你的视图、HTML或是CSS.他不是包换20中不同空间的大框架。让你走自己的路、不断前进、将手中的事做到最好,做出令人惊叹的Web套用。
为什幺用Spine
JavaScript框架实在是数不胜数,每天都有新框架出现。那为什幺Spine这幺特殊?
在真实环境中构建?
轻量级控制器实现(基于Backbone的API)
完整的模型层和ORM
内置Ajax与HTML5 Local Storage适配器
异步伺服器通信
适应所有主流浏览器(Chrome, Safari, Firefox, IE >= 7 )
Spine Mobile扩展
简单并轻量级
完善的文档
但是不要相信我的一面之词。看看样例套用的原始码,自己决定。
CoffeeScript
Spine用CoffeeScript写成——一遍可编译为JavaScript的轻巧语言。你不必使用CoffeeScript写Spine套用,纯JavaScript就能很好的工作。但是,使用CoffeeScript是荆棘最少的路径,也是我个人倡导的办法。
不是每个人都喜欢喝咖啡(CoffeeScript),我也丝毫不怀疑这会让一些人离开这个框架。但是,假如你疑惧这个语言,我强烈建议你至少给他个机会试试她,这样你就会理解你错过了什幺。我个人认为CoffeeScript是Web开发的全面进化。
可以从The Little Book on CoffeeScript,看到这门语言的简介。
Spine为JavaScript和CoffeeScript开发者都提供了文档、原始码和例子。可以用银色的箭头在这两种语言间切换。
另外,你也可以利用文档右上角的语言选择器,在全站层次切换语言。
学习Spine
Spine本身相当简单的,她的库很小,API很极小。但是在刚开始时,JavaScript Web套用背后的概念会难以把握。将状态放到客户端,在客户端渲染,使用MVC和CommonJS模组组织你的JavaScript代码都会有相当陡峭的学习曲线。
为了阐述Spine解决方案带来的概念和背景,Spine的文档读起来更像指南而不是原始的API文档。当你熟悉了这个库之后,纯API文档也有提供。
假如你是Spine新手,你应该先看过下面4个主要指南:
类
模型
控制器
视图
然后可视尝试下入门指南,学习生成Spine套用和如何使用Hem。
最后,我强烈推荐看看样例程式的原始码,不如Todos和Contacts套用。
Companion Guide
Spine的构建离不开一本书——《JavaScript Web Applications》,O’Reilly出版社。这本书是介绍MVC、依赖管理、模板、测试等你最终所用的框架相关的所有有用概念的绝佳读物。
Spine.js 入门指南
上手学习任何新库或框架都可能是令人望而却步,但我会尽我最大努力确保你入门Spine儘可能简单明了。三种方法
使用Spine有三种主要的方法:
纯静态JavaScript,为了那些暂不準备学习CoffeeScript的人所準备。只需要下载JavaScript档案,并把它包含在你的HTML档案中,这就準备好了!假如你準备走这条路,请参考JavaScript入门指南;
使用spine-rails gem继承进Rails中。Spine与Rails可以无缝集成并可以很好的工作。查看screencast并阅读Rails指南;
使用Node,CoffeeScript和Hem.Hem是一个针对Spine套用而写的一个JavaScript依赖管理工具,它利用npm管理所有的东西。最后一个办法是我一直提倡的,也是学习阻力最小的方法。Spine.app会帮你生成生成套用的目录结构,而Hem会帮你展现给用户(and Hem will serve it up to your users)。
这个指南会涵盖最后一个方法——使用Spine和Hem。但是,假如你不使用CoffeeScript或你使用Rails,你可能会看看前边提到的其他两种方法。
Spine.app 和 Hem
为了让生活更美好(make life easier),我们先安装Spine.app 和 Hem. Spine.app是一个Spine套用生成工具。儘管她不是使用Spine所必须,但确实非常有用。Hem有点像JavaScript套用的Bunlder,可以查看各自的指南来获取更多信息。
若你电脑还没有Node和npm,需要先安装它们。这些项目的网站都有极好的安装指南。然后我们安装我们需要的两个npm模组,spine.app 和 hem
npm install -g spine.app hem
这样我们得到了名为spine的可执行程式,我们可以用它生成新的套用
spine app my-app
cd my-app
你可以通过查看Spine.app相关文章来获得它用法的更多信息。现在来安装列在新建套用的package.json中的默认依赖。
最后,我们可以使用hem来润应一个Hem伺服器,它会在开发时临时存放我们的Spine套用。
扩展我们的套用
尝试探索下我们刚生成的Spine.app档案。假如打开一http://localhost:9294你会看到一个空白页面。我们改一下默认的控制器,这样它就能做些什幺。
mate ./app/index.coffee
我们加上一个@log()语句,如下:
class App extends Spine.Controller
constructor: ->
super
@log(“Initialized”)
module.exports = App
乾的好。现在假如你重新载入这个套用,你会在控制台里看到log语句。
下一步
现在,我们仅仅在这里拼凑了一个表皮,JavaScript Web套用开发是一个不断演进的广阔天地。为了进一步使用Spine,阅读入门指引,主要的类文档,以及一些样例套用的原始码。
或许你对O’Reilly出版社的JavaScript Web Application也感兴趣,这本书会给这些主题一个完整的介绍。