本书带领读者认识和学习7种影响现代Web应用并改娈了Web开发方式的框架,以期给Web开发者带来启发和思考。
本书延续了同系列的畅销书《七周七语言》、《七周七数据库》的体例和风格。全书共8章,前7章介绍了Sinatra、CanJS、AngularJS,Ring、Webmachine、Yesod和lmmutant共计7种Web开发框架,最后一章总结回顾了所有的知识点。书中对每一种框架的介绍,都为构建Web应用带来了独特而强大的思路。除此之外,书中还提供了一系列代码示例和在线资源以供参考。
本书适合有一定基础的Web开发人员阅读,能够帮助读者拓宽思路,激发更多的设计灵感。
第1章 Sinatra1
1.1 简单的领域特定语言2
1.2 第1天:构建一个书签应用2
1.2.1 你好,Sinatra3
1.2.2 用RSpec来测试4
1.2.3 REST风格的API6
1.2.4 数据持久化6
1.2.5 创建和读取书签8
1.2.6 编写自动化测试9
1.2.7 更新和删除书签10
1.2.8 我们在第1天学到的11
1.3 第2天:创建视图12
1.3.1 ERB简介12
1.3.2 Mustache介绍17
1.3.3 Slim介绍20
1.3.4 我们在第2天学到的23
1.4 第3天:添加新功能24
1.4.1 校验24
1.4.2 块参数26
1.4.3 过滤器27
1.4.4 为书签打上标签28
1.4.5 添加标签的API支持31
1.4.6 使用正则表达式来匹配路由33
1.4.7 我们在第3天学到的34
1.5 总结35
1.5.1 Sinatra的强项35
1.5.2 Sinatra的弱项35
1.5.3 最后的思考36
第2章 CanJS37
2.1 CanJS的独一无二之处37
2.2 第1天:创建对象和同步变化39
2.2.1 你好,CanJS!40
2.2.2 构建和扩展对象41
2.2.3 观察属性的变化44
2.2.4 使用CanJS创建一个前端书签应用46
2.2.5 连接模型与服务器47
2.2.6 渲染视图48
2.2.7 动态绑定50
2.2.8 我们在第1天学到的50
2.3 第2天:创建控制器51
2.3.1 将控制器绑定到页面元素上52
2.3.2 监听UI事件53
2.3.3 使用datao方法从页面获取数据模型54
2.3.4 使用观察者实现控制器之间的沟通55
2.3.5 创建一个表单控制器57
2.3.6 我们在第2天学到的60
2.4 第3天:与模型的协作61
2.4.1 添加校验62
2.4.2 实现标签的处理64
2.4.3 过滤书签66
2.4.4 创建一个标签列表69
2.4.5 使用路由管理浏览器的位置71
2.4.6 我们在第3天学到的73
2.4.7 对CanJS的创造者Justin B.Meyer的采访74
2.5 总结76
2.5.1 CanJS的强项76
2.5.2 CanJS的弱项76
2.5.3 最后的思考76
第3章 AngularJS77
3.1 概览77
3.2 第1天:使用依赖注入79
3.2.1 你好,AngularJS80
3.2.2 创建服务83
3.2.3 换个角度来看我们的书签应用前端86
3.2.4 使用资源服务87
3.2.5 为服务写自动化测试89
3.2.6 我们在第1天学到的93
3.3 第2天:创建控制器和视图93
3.3.1 创建控制器和使用视图指令94
3.3.2 利用数据双向绑定的优势97
3.3.3 创建书签表单98
3.3.4 关于作用域的重要注意事项100
3.3.5 端到端的自动化测试102
3.3.6 我们在第2天学到的104
3.4 第3天:创建过滤器和路由105
3.4.1 为书签添加标签106
3.4.2 构建一个标签列表107
3.4.3 通过过滤器操作数据108
3.4.4 定义路由112
3.4.5 我们在第3天学到的114
3.4.6 对AngularJS创建者Mi?ko Hevery的采访115
3.5 总结116
3.5.1 AngularJS的强项116
3.5.2 AngularJS的弱项117
3.5.3 最后的思考117
第4章 Ring118
4.1 Ring简介118
4.2 第1天:基础组件120
4.2.1 起步121
4.2.2 Hello,World!121
4.2.3 用Korma处理数据124
4.2.4 用Hiccup把数据转化为HTML130
4.2.5 使用Compojure处理路由133
4.2.6 我们在第1天学到的136
4.3 第2天:拼接的模式137
4.3.1 定义API137
4.3.2 处理JSON138
4.3.3 验证输入140
4.3.4 可组合的路由143
4.3.5 我们在第2天学到的146
4.4 第3天:构建应用的其他方法147
4.4.1 Ring中间件147
4.4.2 Enlive149
4.4.3 关于测试153
4.4.4 我们在第3天学到的154
4.4.5 对James Reeves的采访155
4.5 总结156
4.5.1 Ring的强项156
4.5.2 Ring的弱项157
4.5.3 最后的思考158
第5章 Webmachine159
5.1 Webmachine简介159
5.2 第1天:HTTP请求状态机161
5.2.1 起步162
5.2.2 Hello,World162
5.2.3 和资源函数一起工作165
5.2.4 资源函数166
5.2.5 请求转发168
5.2.6 参数化转发170
5.2.7 我们在第1天学到的171
5.3 第2天:构建应用172
5.3.1 短链接172
5.3.2 使用Mustache模板引擎179
5.3.3 Petite里的模板182
5.3.4 处理多种内容类型184
5.3.5 我们在第2天学到的186
5.4 第3天:照亮HTTP的阴暗面186
5.4.1 让资源可缓存187
5.4.2 授权193
5.4.3 我们在第3天学到的196
5.4.4 对Justin Sheehy的采访197
5.5 总结198
5.5.1 Webmachine的强项198
5.5.2 Webmachine的弱项199
5.5.3 最后的思考199
第6章 Yesod200
6.1 Yesod简介201
6.1.1 组成部分201
6.1.2 计划201
6.2 第1天:你不能搞错的数据202
6.2.1 新手入门202
6.2.2 Hello,World203
6.2.3 使用DSL描述数据205
6.2.4 使用模型207
6.2.5 改变和删除模型210
6.2.6 我们在第1天学到的211
6.3 第2天:视图、表单和认证212
6.3.1 Ye Olde的模板语言213
6.3.2 功能性表单216
6.3.3 认证和授权219
6.3.4 我们在第2天学到的223
6.4 第3天:继续Rumble224
6.4.1 创建头版225
6.4.2 创建一个发布新闻表单228
6.4.3 查看新闻与提交评论230
6.4.4 我们在第3天学到的233
6.4.5 对Michael Snoyman的采访234
6.5 总结237
6.5.1 Yesod的强项237
6.5.2 Yesod的弱项238
6.5.3 最后的思考238
第7章 Immutant 239
7.1 Immutant简介239
7.1.1 Immutant的特性240
7.1.2 计划240
7.2 第1天:不仅仅是网络
基础241
7.2.1 开始241
7.2.2 你好,世界242
7.2.3 分布式缓存244
7.2.4 计划任务249
7.2.5 我们在第1天学到的250
7.3 第2天:构建数据管道251
7.3.1 消息队列251
7.3.2 管道255
7.3.3 Overwatch的管道257
7.3.4 我们在第2天学到的262
7.4 第3天:多语言应用263
7.4.1 叠加263
7.4.2 集群268
7.4.3 我们在第3天学到的272
7.4.4 对Jim Crossley的采访273
7.5 总结275
7.5.1 Immutant的强项275
7.5.2 Immutant的弱项275
7.5.3 最后的思考276
第8章 结束277
8.1 关键想法277
8.1.1 简单性278
8.1.2 代码运行在何处278
8.1.3 组合279
8.1.4 声明式优先于指令式279
8.1.5 动态类型和静态类型280
8.1.6 状态机280
8.1.7 交互性281
8.2 快乐的探索吧281
《国外电子与通信教材系列·数字与模拟通信系统(第6版)(英文版)》在前五版的基础上改编而成,系统地介绍了现代通信系统的基本理论
计算机学术进展研究丛书基于稀疏表示模型的人脸超分辨率研究 本书特色 人脸是视频监控之类应用的重要辨识信息。人脸超分辨率算法是利用视频图像前后帧互补信息或样本库先...
《现代纠错编码与调制理论及应用》系统地介绍了编解码理论的基本概念、基本方法和基本应用。《现代纠错编码与调制理论及应用》内
语义Web服务匹配及其应用 内容简介 《语义Web服务匹配及其应用》系统介绍了语义Web服务研究的相关概念、研究现状、*新进展、语义Web服务匹配算法及语义We...
《PhotoshopCC移动UI界面设计与实践(含DVD光盘1张)》一共包含三部分,共14个Part的内容。第1部分基础篇(Part1~Part3):介绍移动
《破坏之王》内容简介:网际空间的发展带来了机遇,也带来了威胁,ddos是其中最具破坏力的攻击之一。本书从不同角度对ddos进行了介
《JavaScript精粹》主要介绍JavaScript应用中一些常见的问题及其解决方法,从最基础的数字、字符串、数组到进阶的DOM、表单验证、
用户故事与敏捷方法 本书特色 《用户故事与敏捷方法》:敏捷大师Mike Cohn的软件需求方法圣经,小型团队(项目)不可或缺的敏捷开发宝典,亚马逊五星级长销图书...
地理信息系统实习教程 内容简介 本教程由一系列的练习组成,可使学习者循序渐进地掌握地理信息系统(GIS)的基本功能,特别是通用的空间分析功能。内容包括:空间、属...
随着网站越来越大,问题开始出现:速度变慢、链接失败、安全性变差、兼容性降低……怎么办?从头开始重建网站总不是明智之举,这
MarkRichards是一位造诣颇深的作者和会议演讲者,他是金融服务行业的实战型SOA和企业体系结构师。除了发表大量文章之外,他还是《
《快速开发:纪念版》内容简介:本书进度失控,几乎是每一个软件开发项目挥之不去的噩梦。如何从容赶急,如何通过正确的开发策略和
《十九世纪欧洲经典二十四画》内容简介:今天世界的框架是在十九世纪欧洲建立起来的。当我们在追问艺术的现代性时自然而然地就会将
在本书中,Lakos介绍了将大型系统分解成较小且较好管理的组件层次结构(不是继承)的过程。这种具有非循环物理依赖的系统的维护、
[FROMwww.amazon.com]:TheLittleProverintroducesinductiveproofsasawaytodeterminefa...
AntonA.Chuvakin博士是日志管理、SIEM和PCIDSS依从性领域公认的安全专家,他参与撰写了《SecurityWarrior》(ISBN:978-...
作为一位平面设计师,为什么一定要依赖那些已有的字体、用别人的图形——如果你能够创造自己的标志、字体和书写的话。莱斯利·凯
《哈佛凌晨四点半大全集》内容简介:哈佛大学的老师经常给学生这样的告诫:如果你想在进入社会后,在任何时候、任何场合下都能得心
《背影(2019)》内容简介:时光匆匆,背影长存 2019未删节新版 一九二八年开明书店初版散文集《背影》完整呈现 《背影》《荷塘月色
《做个会表达的女人(20万册纪念版)》内容简介:★台湾新生代两性教主魔女shasha畅销书20万册纪念版 《做个会表达的女人》上市后广