本书带领读者认识和学习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
《安全之路:Web渗透技术及实战案例解析》是《Web渗透技术及实战案例解析》一书的第2版。《安全之路:Web渗透技术及实战案例解析
《企业内部控制从懂到用》内容简介:本书将作者近20年内控咨询、培训及与企业各级管理人员沟通交流的经验进行归纳沉淀,通过完备的
本书向我们介绍数字通信的基本概念,揭示了通信行业的发展历程,是通信修养专业的一本非常优秀的教材。在本书的全新版本中,作者
SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能。本书是深受世界各地读者欢迎的SQL经典畅销书,内容丰
《如何阅读文学经典》内容简介:复旦大学中文系邵毅平教授在海内外大学从事教学研究四十年,他在上海多所高中开设的“中国文学特别
《每个妈妈都是创意家》内容简介:本书从“艺术培养”“母女关系”“哲学思维”“旅行与性格”“职业培养”等方面,展示了作者在20
BarkersFutureEdge,publishedin1992andlaterrepublishedasParadigms,gottractionasabu...
《岛屿来信》内容简介:翁达杰说,如果你从空中俯瞰,这个世界是没有疆界的,地图上那些边界线都不存在。因为对这个世界心存向往,
《那猫那人那城》内容简介:《猎人们》之后,朱天心全新猫书 异族他类自由来去,街猫与人族相遇的城市传奇 马家辉、杨照推荐,这不
《自我催眠术(第2版)》内容简介:本书旨在解决日益严重的心理亚健康问题。针对疲劳感、失眠、冷漠、怯场、焦虑、压力、孤独、强迫
《测试驱动开发》(中文版)设想把编程看成是转动曲柄从井里提一桶水上来的过程。如果水桶比较小,那么仅需一个能自由转动的曲柄就
《国际平面设计基础教程:GRIDS网格设计》的目的是向读者介绍平面设计中网格的基本运用原则,就像当代设计师们所实践的那样。虽然
《乐高创意机器人教程(中级·下册:10~16岁)》内容简介:本书为青少年机器人创新教育课程,以乐高机器人套件为教具,围绕机械结构
MATLAB GUI设计学习手记-(第3版) 本书特色《matlab gui设计学习手记》(第3版)在《matlab gui设计学习手记》(第2版)的基础上,结...
《心理学与沟通技巧》内容简介:本书全面系统地揭示了心理学在沟通技巧中的运用,指导读者把握好沉默的分寸,把握好说话时机、说话
《关羽:神化的《三国志》英雄》内容简介:《三国志》中的豪杰,为什么会被人们作为商业之神来崇拜呢?从史实到故事,再到信仰的对
《中国资本市场三十年》内容简介:本书是为中国资本市场三十年而写,由导论、11章和文献附录,以及后记组成,重点研究中国资本市场
“你不是个玩意儿。”这句话当然不是骂人,这是一个宣言。人当然不是玩意儿,不是机器,而是人。在网络化程度越来越高的今天,我
本书注重理论与实践的结合,全面讲述高级的DOM脚本编程。全书分为3个部分:第一部分“深入理解DOM脚本编程”,涉及W3CDOM规范的各
《自适应学习:人工智能时代的教育革命》内容简介:本书以浅显生动的语言讲述最前沿的理念——人工智能与自适应学习将如何改变教育