全栈开发之道重在讲述全栈开发的思想,自始至终延续这样的一个主题:如何通过一种框架(MEAN全栈),将前端和后台(端)贯穿起来,让前端工程师快速上手。
内容简介全栈(Full Stack)是一种全新的以前端为主导的框架,框架选型聚焦在MEAN(MongoDB、Express、AngularJS、Node.js)上。选用MEAN全栈技术,可以快速地实现敏捷开发,尤其是到了产品的运营阶段,其优势表现得非常明显。本书主要介绍MEAN全栈技术,分为入门篇、基础篇和实战篇,入门篇对全栈进行了概述,基础篇重点介绍了全栈的四个主要技术,即MongoDB、Express、AngularJS、Node.js,实战篇则通过四个常用的实例来引导读者循序渐进地掌握全栈开发的思路。
作者简介和凌志,客座教授,工信部人才交流中心认证讲师;拥有十多年移动互联网开发经验,先后在 Siemens Mobile、 Flextronics 等欧美公司担任手机软件架构师。2014年, 为北京高校录制慕课“iOS企业级应用开发技术”。近几年,专注于全栈技术开发, 代表产品有点时APP ――轻量级知识分享平台。
为什么选择 MEAN 全校技术开发一个功能性的网站并不容易,它要借助很多种技术,需要一套组合拳,单纯的某一项技术是不够的。在描述网站构建时,常听到一个词语,这就是“技术栈”。比如,Linux.Apache.
MySQL和PHP,把它们的首字母组合在一起,被称为LAMP栈。MongoDB的工程师Valeri Karpov发明了一个缩略语MEAN,指的是MongoDB,Express.AngularJS和Node.js.的确,这是一个很不错的技术组合,而且读上去朗朗上口。MEAN全栈(MEAN Full Stack)框架日益成熟,在网上可以找到大量的MEAN全栈示例。
如果想开发一个功能性网站,MEAN全栈技术框架是一个不错的选择,但它不是唯一的选择。就拿数据库来说,即便基于Nodejs开发,也不是非选MongoDB不可,用其他关系型数据库(如MySQL)也是可以的;同样,作为前端框架的选择,也不见得必须用AngularJS,用Vuejs也是可以的。这就是说,MEAN全栈无法体现Nodejs生态系统的多样性。MEAN这个缩略词漏掉了一个重要的组件-模板引擎。模板引擎的类型有多种,我们完全可以通过手动方式来配置。
在MEAN这个缩略词中,毋庸置疑,其中无可替代的组件当然是Node.js了。作为运行JavaScript语言的服务端,Node.js是其中的执牛耳者,尽管也有类似的服务端,但与Node.js比起来,难以望其项背。
起初,Javascript语言仅仅是为了编写网页,很难有其他用武之地。自从有了Nodejs,JavaScript的春天来了。通过JavaScript这一项技术,把MEAN全栈技术贯穿在一起。
夸张一点说,学习MEAN全栈技术,只需要掌握一门Javascript语言就够了。
MEAN全栈简介构建Node应用有很多选择,而MEAN全栈框架越来越成为一种趋势,MEAN全栈主要由四项技术组成。
MongoDB:用来存储数据的数据库。
Express.js:服务器端用来构建Web应用的后端框架
AngularJS:用来构建Web应用的前端框架。
Node.js:JavaScript运行环境
MongoDB于2007年推向市场,由MongoDB公司运营。Express最早由T.J.Holowaychuk于2009年发布,并已经发展成为Node.js之上的最主流的框架,它是一个开源的框架,社区活跃度很高。AngularJS是一个开源的前端框架,它的背后支持者是Google,到了2010年,AngularJS已经被广泛应用,AngularJS的发展势头强劲,从早期的1.x版本已经更新到今天的2.x版本。Nodejs是2009年发布的,Node.js采用了Google的V8 JavaScript开源引擎。
通过MEAN全栈框架,可以将文档数据以JSON对象的格式存储在MongoDB中,然后通过基于Node和Express搭建的RESTful API来操作数据库,前端通过AngularJS构建的客户端来操作这些API,AngularJS通过RESTful API获取服务器数据后,再把数据交给前端模板引擎渲染,最终形成HTML页面展示给用户。要想完成这些操作,只需要使用一门统一的语言--JavaScript。这样一来,代码更加具有一致性和可维护性。另一个好处是,整个MEAN全栈技术所要处理的大多是JSON数据结构,而MongoDB中的文档对象也是JSON格式,通过RESTful API获取的后台数据也是JSON格式,正是这些一致的JSON格式,才省去了格式之间的转换,从而提高了开发的效率。