全栈应用开发,Meteor实战

零星年前,从 RePractise 的同样首著作里,我起了 Growth
应用以及电子书的编写。Growth 整个系列的内容在 GitHub 上曾闹近万只
star。明天大家带了 Growth
的纸质版《全栈应用开发:精益实践》,她必然非会晤被你失望的~。

贪图1 Meteor 实战封面

这,作为 Growth 纸质版的 《全栈应用开发:精益实践》到底以讲些。

     
 广义的Web全栈,一般包含后端开发、前端开发、界面设计、产品设计、数据库、各个活动客户端支付等等,狭义的Web全栈则最少含有后端开发、前端开发、数据库。全栈的难度在要求您明白前后端的多种技、可能而学会多种语言,比如我们还充足独立的全栈概念LAMP(Linux+Apache+Mysql/MariaDB+PHP/Python/Perl),前端要就此Javascript自不用说,后端或因故PHP、或因故Python/Perl,数据库你还得会SQL,要想一个丁通晓这样多技术和言语,依旧生有若干难度之,尽管精晓了,在其实付出中,你的首还要当各样不同语言中来回切换,既长了脑子负担,有提高了出错机率,实在是平等桩让丁郁闷
的业务。

这边描绘图片描述

     
不了就Node.JS和MongoDB诞生后,一个初的全栈概念MEAN诞生了,从此世界爆发了不小的变。所谓MEAN是一个强劲的JavaScript全栈解决方案,它由四百般组件组成:数据库MongoDB、Web服务器框架Express、Web客户端框架Angular,以及服务器平台Node.js。那么些零部件由不同之社开发,由开发人士和倡导者组成的社区推进各样模块的开,并也那些创立连锁文档。假若你是相同称为Javascript程序员,那么对“Javascript全栈开发”这一个概念想必不碰面极其陌生,即使没有亲自尝试了,也该享有耳闻。图灵出版的《MEAN
Web开发
》、《MEAN实践》《Node与Express开发》、《JavaScript急速全栈开发》都介绍了Javascript全栈开发的见。MEAN的重要性优势在于那以JavaScript为重中之重的编程语言。用平等帮派语言就干定前后端、数据库,光想就是同宗令人兴奋的作业
! 

本书目的

本书的主线结合了《全栈增长工程师指南 》与《全栈增长工程师实战
》两片的情,即以尽的不二法门来贯穿这个理论知识。本书的靶子,是目的在于援助读者构建
Web 应用的全栈开发所要之整知识体系,并为精益创业的思索来一步步支
Web 应用:

  • 自打创建一个 UI 原型到编辑出静态的前端页面

  • 自静态的前端页面及带动后台的施用,并安排下

  • 起 Web 后台开发 API 到出活动 Web 应用

当此过程中我们尚用介绍一些对称的步子:

  • 动构建系统来加速 Web 应用的支付

  • 否下数据解析工具来立异产品

  • 应用分析工具来立异用的特性

  • 经过自动化部署来加速上线流程

好了,上转纲要吧~~~。


本书结构

本书从布局及分为了三有,每个有还会面不同的侧重点。

率先片段:备等

以霎时等同有些里,大家会拿第一集中为编码前的同一多重开发准备工具,从选拔一个正好的
IDE 到开创一个 Web 应用之构建流动。

第1章 基础知识
介绍了搭建开发所急需的中央条件,以及IDE、操作系统、版本管理工具等等常见工具的选料以及运用。还介绍了如何对一个对象展开切分,以便为大家于落实的时可以一步步望下实施。

第2段 最小可行化应用 介绍了怎么利用 UI
工具来成立原型,并因这原型成立有一个卓殊简便的 Web 应用。并介绍了当
Web 应用开发之过程中,如何以精益的构思来支付有用户喜爱之成品。

第3段 技术选型与事务
对后台开发所欲的技巧拓展一个简易的概览,并介绍了不同后台组件的框架,以及如何由那多少个框架中摘暴发确切的框架。同时还介绍了
Python 下的 Web 开发框架 Django,以及哪些用此框架创造一个 hello,
world。

第4回 构建系统会同工作流 介绍 Web
应用被广泛的构建流程与零部件,以及怎样构成 Fabric 来打后台的构建系统。

亚有:编码到直达丝

以就同样组成部分里,我们第一描述大部分 Web
应用的支付过程,并介绍在付出进程被之局部吓的履行。

第5章 Coding 介绍了如何使 Django
创立一个简约的博客应用,以及咋样拔取单元测试、UI 测试来测试代码的功能。

第6章 上线 介绍了什么样手动来布局我们开发之 Web
应用到产品环境,以及哪行使机关部署工具来成功自动化部署。

第7段 数据解析与心得优化
介绍了争使用网页监测工具来分析网页的流量来源、用户作为等等,并构成一些前端、后台的优化工具来对下举办优化。

第8章 持续交付
介绍了什么下持续集成工具,以及如何拔取持续集成工具来改革开发流程,并贯彻自动化的配备。

第9节 移动 Web 与移动使用 介绍如何结写后台
API来创设移动接纳,并介绍怎么着呢单页面应用提供 SEO 襄助。

老三有些:增量性优化

第10章 遗留代码和重构
介绍什么是留系统,以及怎么着遵照第二片段被的更来改进遗留系统。

第11回 增长和新架设
介绍咋样采取回顾和举报来要程序员成长,并介绍咋样依据用规划来新的架构。

     
当然,学习标准的MEAN开发,你或如分别去读书MongoDB、Express、Angular和Node.JS的,有没有暴发更进一步简明(偷懒)的措施也,想啊呢
  ! 答案是:还当真有 —— 这就是是 Meteor 
(Web界的流星),遵照《Meteor实战》的说教,Meteor依然因MEAN栈的,或者说是属于泛MEAN阵营的(即泛指那么些运行为Node.js之上并使NoSQL数据库的其余框架。MEAN栈架构图见图2)。只是Meteor建构了一个包扎的逾紧凑的生态系统,而不仅仅是服务器进程和仓库(框架)的结合。

感谢一

自我而把当时仍开献给花仲马,没有其就从未这本书。感谢她当这遵照开之行文过程中一直陪同在自家,并为当时本开进行了闽南语校对来担保语句的珠圆玉润。

又,我惦念特别感谢 ThoughtWorks
的同事薛倩、Alibaba之孙辉于本书写之进程遭到提供了详实的反映,正是他们的扶持于本书更加纯粹、容易看。我还想特别感谢在
ThoughtWorks
学习时之同事,为我提供悉心指引和扶。特别感谢王超、陈卿、王妮、曹隆凯、张静强、刘杰、王磊,在跟她俩开展结对编程时,我学习到了高速软件开发、Tasking等等编程之外的艺,感谢他们拉扯自己走了这般多。

此外,还有这多少个在 GitHub
上呢己提供报告的用户,正是他俩的反映促使这本开更完整。由于人数多,这里仅仅列出这个用户的
ID:


ethan-funny、izhangzhihao、kaiguo、gymgle、aidewoode、wenzhixin、sasuke6、wangyufeng0615、walterlv、lolosssss、NehzUx、mikulely、yulongjun、PhilipTang、ReadmeCritic、ReadmeCritic、wangcongyi、loveisbug
等用户为 《Growth: 全栈增长工程师指南》提供报告及改。

感谢 Pandoraemon、wo0d、ReadmeCritic、zhangmx、felixglow
等用户也《Growth:全栈增长工程师实战》提供了反映和修改。


上述内容仍旧描摹在挥洒里之~~。

简单易行地游说,Meteor是了拔取JavaScript创立富Web应用程序的开源平台。它于同一个框架下束并提供有必要的零部件。它由以下几部分构成:Node.js、MongoDB、实际的应用程序代码,以及一个强的CLI工具。

感谢二

谢谢阅读本书,并为本书做出推荐语的前端大牛们:

  • 百度高级工程师 颜海镜
  • 红 Web 研发工小胡子哥
  • W3cplus.com站长大漠
  • 在线回声前端学者 justjavac
  • Alibaba技术专家 勾三股四
  • 大搜车无线架构团队Leader 芋头(封面放不下了,2333~)

打地点:

亚马逊:https://www.amazon.cn/dp/B0722YJR89
京东:http://item.jd.com/12195442.html
当当:http://product.dangdang.com/25077858.html

图2 MEAN栈架构图

     
假若采用Meteor,你可以登时从零起首(当然,必要之Javascript基础仍旧要有的,具体求参见本书第一章节)成立Web应用程序,假如您读书了本书第二回,你便会合发现建立一个包响应式用户界面、用户账户管理、和一个展开透明性响应式编程的Web程序可以完成怎么着的快!只要照着例子使用Meteor的CLI(命令行工具),你还无需了然什么样设置或安排外服务器软件(Meteor已帮你弄定矣具有基础设备方面的工作)。比如在人情的MEAN栈里,用户征与登录就有些做事,你是得在前端用Angular写,服务端用Express

  • Node.JS
    来写,最终用户数量在MongoDB上的存取你吧得勾,而Meteor把这个繁琐工作曾于包好了,你而召开的饶是讹敲她的命令行。有外国程序员做同样图(见图3)相比较规范MEAN栈与Meteor(Comparing
    Meteor.js and the MEAN
    stack
    ),犹如装满零件的购物车
    与超跑   的界别,如故多形象之。

图3 Meteor超跑


本书的亚片段(3-10章节)进一步通过实战性的事例详细介绍了Meteor的基本点有(见图4)。

希冀4 Meteor重要结合图

     
 第3回介绍的凡Meteor自有的Blaze库,是Meteor在此以前默认的前端库,亟待指出的是,Meteor并没将前端UI绑死在协调的Blaze库上,实际上,在官网上就生出Meteor用两种植不同前端库(Blaze、Angular.JS、React)做Todo
List的教程。另外,还有一个需披露的黑就是是,在风行的Meteor官方指南中,Blaze只是一律笔画带过、Angular的介绍还停于1.x等、而正乌黑最多的则是React,鉴于如今点滴年React的狂,各中缘由可能不称自明。

       
一个全体的Web应用得要干数额的多、删、查、改(CRUD),第四节介绍的便是Meteor如何举办CRUD,由于Meteor的数据库使用的是MongoDB,所以其数额建模的考虑要与民俗的SQL数据库来酷可怜分别之,尽管一旦举办复杂一些之用,就得深远了然一些MongoDB的学识,具体能够瞻仰《MongoDB权威指南》、《MongoDB实战》、《深入学习MongoDB》等书。

       
第5段介绍了Meteor的重头之一——响应式编程,利用Meteor数据库无处无以的准,并使就设有于客户端的本地集合。这样做的裨益在让,你对数据/表单的改变变化在界面上从来反应出来,不用等交数码交到到后台还给取回前端再渲染,实际上就散了等候数往返后端的时,在用户体验及本来会获取更好的效益。

       
生产环境遭到之Web应用得离不起用户注册和登录,以及认证(authentication)和授权(authorization),并且要还仔细粒度的计来定义用户权限,那些工作如果温馨开支,这都是大烦的业务,而且安全性

仍旧只问题。而Meteor已经拉您管顿时件事为做好了,你几无待重新写任何代码。当然,你吧足以免由盖用户称与密码系统。使用大的社交账户登录到您的以可减低注册之技法,这种办法我们称为OAuth(Open
Authorization),Meteor集成了例如乐乎、非死不可、GitHub、推特、Google等账号登录的API,你若敲下“meteor
add accounts-facebook”这样类型的通令就足足了。

     
结合用户征和授权,Meteor就可以轻松的按照用户权限和体系布局来贯彻用户数据的昭示以及订阅,比如通过文档字段(比如用户/所有者ID)来安地范围所发布之多少,或者保证客户端提供的有所数据以运用前都举办了说明。

     
第8回介绍的是Meteor的路由、第9回是Meteor的承保管理,这么些内容以各个前端框架中都相比较大,所以不再赘言。


     
关于Meteor的下载、开发同布局,个人提出足以利用docker来赞助大家,有一个雅好用的开源工具meteor-up,使用
docker 来运转 Meteor 和 MongoDB,并且可以好之拿地面 Meteor
部署至提服务及。只要你生出局部docker的根基,借助meteor-up来实现非是同一项难事。


       总括,Meteor的紧要优点如下:

1、善学,同正式MEAN栈相相比,新开人士不用对松耦合的前端库和后端框架举办深远地钻,就可兑现有施用。对JavaScript有些基本的问询就充分起始

2、大部分运得当客户端上运行,利益是:服务器的负载会较小,用户界面的响应很快,用户体验于好。

3、代码可选拔,由于Meteor的同构(Javascript)性质,同样的代码可以以浏览器中、服务器上甚至是挪装备及运行。

4、强硬的命令行工具,Meteor提供了开箱即用软件包管理及构建管理工具,覆盖了方方面面构建过程,从采访和编译源文件及文件精简、源映射、解决因关系等等,让您将心理用在业务逻辑上。


      假如你待一个快速的以原型开发工具 
,那么Meteor一定是一个卓越的选料 ☑️ 。

相关文章