本书带领读者认识和学习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
IfyouwantmorethanyouraverageBSDuser--youwanttoexploreandexperiment,unearthshortc...
《解密性传播疾病》内容简介:本书作者从临床工作数十年的经验中收集了50个问题,涉及性病的预防、传播、发现、治疗及生活细节等方
《财务报表分析》内容简介:本书立足报表间的关系和影响,从三个角度解读,带你构建财务分析的“三维视角”。为帮助深入理解财务报
《一级计算机基础及Photoshop应用》内容简介:本书依据教育部考试中心最新发布的《全国计算机等级考试大纲》以及编者多年对等级考试
《雾都孤儿》内容简介:《雾都孤儿》(1838),又译《奥利弗·退斯特》,是作者的第一部社会小说。作品通过孤儿奥利弗的凄苦遭遇,
《国家工业遗产洞窝水电站研究》内容简介:泸州洞窝水电站是中国近代史上第一个由中国人自主研发的水电站,2019年被评选为国家工业
应用Ajax可以得到更好的用户体验,并能减轻服务器和带宽的负担,因此Ajax技术得到了诸如GoogleMaps、oogleSuggest、Flickt等网站
《信息图表设计入门》是一本信息图表制作的实用入门书。信息视觉化是一种潮流,无论是商业宣传活动、专业设计领域还是制作供非专
《Python面试通关宝典》内容简介:本书内容分为两篇,第1篇是Python语言面试题,第2篇是算法面试题。Python语言面试题涵盖面试通用
《犯罪参与论》内容简介:本书是对犯罪参与这一刑法学中复杂的重要基础理论问题进行全面系统深入论述的学术专著。其在对我国刑法采
计算机网络:自顶向下方法与Internet特色:第3版 内容简介 本书以Internet为特色,采用自顶向下的方法由应用层到物理层顺序讲述计算机网络的基本原理及...
MoreEffectiveC++的重点包括:·经过验证的一些用来改善程序效率的方法,包括尖锐而犀利地检验C++语言特性所带来的时间和空间上的
《文化传播(2017年第1期/总第1期)》内容简介:本期《文化传播》共收入18篇文章,作者大多系海内外高校或研究机构长期从事人文社会
《高情商沟通力》内容简介:人是感性的动物,只会偶尔的理性,人与人沟通不是为了找一个答案,而是想要多一份理解和认同。本书的独
《你若安好 便是晴天:林徽因传》内容简介:邂逅一个人,只需片刻,爱上一个人,往往会是一生。她是诗人、作家、建筑师,是人民英雄
《崛起的超级智能》内容简介:21世纪以来人工智能、云计算、大数据工业4.0、云机器人、区块链、城市大脑等等新技术不断冲击着人类的
《中古社会变迁与隋唐史研究(上下册)》内容简介:本书是吴宗国先生从教六十周年纪念论文集,分上下两册。上册研究篇,汇集了历年
R语言预测实战 本书特色 R语言具有上手快、效率高的特点,它横跨金融、生物、医学、互联网等多个领域,主要用于统计、建模及可视化。预测是数据挖掘的主要作用之一,也...
《围观考古现场》内容简介:翻开这本书之前,请你思考一个问题:考古学究竟是一门怎样的学问?是挖坟掘墓找古董?是翻山越岭看岩壁
《科学大王·植物大观》内容简介:开启神奇的植物王国之旅,从藤萝缠绕、花繁叶茂的热带雨林,到奇特的花、草、树、木、水果、蔬菜