新書推薦:
《
股市趋势技术分析(原书第11版)
》
售價:NT$
1010.0
《
汉匈战争全史
》
售價:NT$
454.0
《
恶的哲学研究(社会思想丛书)
》
售價:NT$
500.0
《
当你沉默时(悬疑推理 反PUA 反家暴 女性独立小说,揭秘情感PUA的真相,女性自我救赎的文学典范)
》
售價:NT$
255.0
《
不止江湖
》
售價:NT$
449.0
《
天才留步!——从文艺复兴到新艺术运动(一本关于艺术天才的鲜活故事集,聚焦艺术史的高光时刻!)
》
售價:NT$
704.0
《
双城史
》
售價:NT$
505.0
《
冯友兰和青年谈心系列:不是问题的问题(哲学大师冯友兰和年轻人谈心,命运解读)
》
售價:NT$
254.0
|
編輯推薦: |
1. 第一本完整介绍云原生开发的书,包含三大主题:云计算、构建基于云的应用程序以及云端开发
2. 全彩印刷,全新编写体例,对初学者特别友好
3. 提供系统而全面的学习路径,帮助读者从零开始掌握云开发的基本原理和实践技能
4. 567个优质资源:68个视频演示,52个代码示例, 35个代码分析,27个程序员观点,84个术语详解, 170个知识要点, 119个进阶习题
|
內容簡介: |
《轻松学编程:云端应用与游戏开发》依据认知心理学相关理论,专门针对初学者设计了结构和内容,帮助初学者运用JavaScript在云端开发小程序和游戏,全书分为三个部分,分别介绍了云、如何创建基于云的小程序以及如何利用云技术来进行应用和游戏开发。书中通过视频的方式来辅助读者学习,对提高学习效率很有帮助。
《轻松学编程:云端应用与游戏开发》适合打算成为高效率云开发人员的读者,能帮助他们在云端开发云原生小程序和游戏。
|
關於作者: |
罗伯·迈尔斯(Rob Miles)
曾就职于英国赫尔大学,有四十年编程教学经验。从2003年到现在,连续二十多年担任微软最有价值专家(MVP),在设备应用开发方向颇有建树。热爱写程序、写游戏和写诗歌。面对不同水平的学员,他喜欢因材施教,以独创的方式教他们掌握编程。此外,他也为商业软件项目提供咨询服务。
周子衿
本科留学期间多次入选“院长优等生名录”,主修商业分析,曾经运用数据模型和R语言帮助某企业在半年内实现了十倍的业务增长。就职于VMWare期间,对认知心理学、人工智能和技术发展产生了浓厚的兴趣,目前为编程与美食爱好者,奉行深思笃行的做事原则,有志于通过技术途径和感性思维来探寻商业价值与人文精神的平衡。代表译作有《游戏项目管理与敏捷开发》《人工智能与用户体验》《高质量用户体验》(第2版)等。
|
目錄:
|
第I部分 云计算
第1章 代码与云
第2章 进入云端第Ⅰ部分 云计算
第1章 代码与云 2
1.1?什么是云 4
1.1.1?万维网 4
1.1.2?将网页放到云端 5
1.2?为什么要选用JavaScript 7
1.2.1?JavaScript英雄:函数 8
1.2.2?JavaScript函数对象 9
1.2.3?揭开 JavaScript 的神秘面纱 10
1.2.4?对JavaScript函数对象的引用 17
1.2.5?函数表达式 18
1.2.6?被用作函数参数的函数引用 18
1.2.7?从函数调用返回值 22
1.2.8?从函数调用返回多个值 24
1.3?制作一个控制台时钟 27
1.4?箭头函数 30
要点回顾与思考练习 32
第2章 进入云端 36
2.1?在云端 38
2.1.1?Git 38
2.1.2?存储Git存储库 40
2.1.3?GitHub和开源软件 40
2.1.4?获取 Visual Studio Code 44
2.2?网页是如何工作的 48
2.2.1?加载并显示网页 49
2.2.2?超文本标记语言(HTML) 50
2.3?创建动态网页 55
2.3.1?与文档对象交互 55
2.3.2?网页和事件 60
2.4?制作时间旅行时钟 62
2.4.1?向页面添加按钮 64
2.4.2?通过全局变量共享值 64
2.5?在GitHub上托管网站 70
要点回顾与思考练习 72
第3章 创建交互式网站 76
3.1?从用户处获取输入 78
3.1.1?HTML输入元素 78
3.1.2?输入类型 82
3.2?在本地机器上存储数据 84
3.3?JavaScript英雄:let、var和const 87
3.4?使用JavaScript创建网页元素 94
3.4.1?小游戏《找奶酪》 95
3.4.2?放置奶酪 99
3.4.3?响应按钮按压 100
3.4.4?玩游戏 101
3.4.5?使用事件 103
3.4.6?改进小游戏《找奶酪》 104
要点回顾与思考练习 105
第4章 托管网站 108
4.1?Node.js框架 110
4.1.1?JavaScript英雄:模块 116
4.1.2?创建并引用模块 116
4.1.3?require与import 121
4.1.4?在浏览器中使用import 122
4.1.5?导入代码注意事项 126
4.2?创建网页服务器 127
4.2.1?软件即服务(SaaS) 128
4.2.2?文件传输 134
4.2.3?活跃站点 140
要点回顾与思考练习 140
第Ⅱ部分 云端应用开发
第5章 构建共享应用 146
5.1?改进小游戏《找奶酪》 148
5.1.1?添加一些颜色 148
5.1.2?为游戏添加结尾 156
5.1.3?增加随机性 158
5.1.4?增加更多奶酪 160
5.2?创建共享游戏 168
5.2.1?设计对话协议 169
5.2.2?创建端点 170
5.2.3?开始游戏 170
5.2.4?游戏服务器 176
5.2.5?玩游戏 180
要点回顾与思考练习 185
第6章 创建共享体验 188
6.1?共享游戏 190
6.2?创建共享游戏 191
6.2.1?调试共享游戏 193
6.2.2?创建伪随机值 201
6.2.3?创建伪随机库 208
6.2.4?生成定时随机性 209
6.2.5?使用全球时间 212
6.3?准备部署到云端 212
6.3.1?优化性能 212
6.3.2?避免重复计算 216
6.3.3?改进结构 217
6.3.4?购买域名 218
6.4?部署应用程序 219
6.4.1?package.json 219
6.4.2?设置服务器端口 220
6.4.3?设置服务器路径 221
6.4.4?设置本地文件路径 222
要点回顾与思考练习 225
第7章 设计应用 230
7.1?TinySurvey应用程序 232
7.2?应用程序的工作流 234
7.2.1?索引页面 235
7.2.2?输入选项 236
7.2.3?选择选项 238
7.2.4?显示结果 240
7.2.5?额外工作流 241
7.3?应用程序数据存储 243
7.3.1?JavaScript英雄:类 243
7.3.2?为TinySurvey创建类 253
7.3.3?Option类 253
7.3.4?Survey类 255
7.3.5?Surveys类 261
要点回顾与思考练习 264
第8章 构建应用 268
8.1?使用Bootstrap增加样式 270
8.2?开始使用Express 273
8.2.1?Express和Node包管理器 273
8.2.2?Express路由 280
8.3?使用Git管理版本 280
8.4?使用EJS制作页面模板 285
8.5?获取示例应用程序 288
8.6?主页 289
8.6.1?从表单发布数据 291
8.6.2?从post中接收输入 291
8.7?输入调查问卷的选项 296
8.7.1?enteroptions页面 296
8.7.2?使用EJS模板生成页面 298
8.7.3?使用命名路由参数 303
8.7.4?构建一个调查问卷数据对象 304
8.8?构建选项选择页面 307
8.9?记录调查问卷的反馈 311
8.10?渲染问卷结果 313
要点回顾与思考练习 315
第9章 走向专业化 318
9.1?模块化代码 320
9.1.1?注释/文档 323
9.1.2?错误检查 326
9.1.3?测试 332
9.1.4?日志记录 338
9.2?专业编程 338
9.3?使用cookies存储应用状态 338
9.3.1?TinySurvey中的cookie 339
9.3.2?cookie中间件 340
9.3.3?在TinySurvey中使用cookie 340
要点回顾与思考练习 349
第Ⅲ部分 巧用云服务
第10章 存储数据 354
10.1?文件数据存储 356
10.1.1?同步文件写入 356
10.1.2?异步文件写入 356
10.1.3?JavaScript英雄:Promise对象 357
10.1.4?JavaScript英雄:await和async 362
10.1.5?在TinySurvey中使用async 363
10.2?处理文件错误 365
10.3?数据库存储 370
10.3.1?开始使用MongoDB 370
10.3.2?Mongoose和模式 373
10.3.3?SurveyManagerDB 类 374
10.3.4?异步测试代码 377
10.4?重构TinySurvey 379
10.5?部署TinySurvey 381
10.5.1?管理环境变量 381
10.5.2?使用nodemon包进行编码和部署 383
10.5.3?创建README.md文件 386
要点回顾与思考练习 390
第11章 活动追踪与会话 394
11.1?用户跟踪 396
11.1.1?创建全局唯一标识符(GUID) 396
11.1.2?用户跟踪的伦理问题 397
11.1.3?使用活动图来展现工作流 397
11.1.4?cookie使用许可条款的工作流 398
11.1.5?创建追踪中间件 400
11.1.6?存储调查问卷创建者 407
11.1.7?识别调查问卷创建者 408
11.2?改进TinySurvey 417
11.3?用户会话 418
11.4?注册和登录工作流 419
11.5?用户注册 420
11.5.1?对密码进行哈希处理 421
11.5.2?register路由 422
11.6?用户登录 425
11.7?访问token 427
11.8?验证token 433
11.9?会话延长 434
11.10?基于角色的安全机制 435
要点回顾与思考练习 439
第12章 JavaScript进阶 444
12.1?创建自己的云 446
12.1.1?安装node 449
12.1.2?托管应用程序 450
12.1.3?在服务器上使用MongoDB 452
12.1.4?关闭服务器 452
12.1.5?运行服务器 453
12.2?从服务器控制硬件 453
12.2.1?通过浏览器控制的灯 453
12.2.2?远程控制按钮 457
12.2.3?使用WebSockets从服务器发送值 461
12.2.4?创建WebSocket 461
12.3?使用MQTT 464
12.4?物联网设备 466
12.4.1?创建自己的物联网设备 467
12.4.2?管理使用Connected Little Boxes服务器的设备 468
12.5?使用Phazer创建游戏 469
12.6?进阶,成为高手 471
12.6.1?Typescript语言 471
12.6.2?React框架 471
12.6.3?Electron框架 471
12.6.4?Graphql框架 471
12.6.5?Socket.io框架 472
12.6.6?ml5.js库 472
12.6.7?Espruino 472
要点回顾与思考练习 472
术语详解 475
第3章 创建交互式网站
第4章 托管网站
第II部分 云端应用开发
第5章 构建共享应用
第6章 创建共享体验
第7章 设计应用
第8章 构建应用
第9章 走向专业化
第III部分 巧用云服务
第10章 存储数据
第11章 活动追踪与会话
第12章 JavaScript进阶
术语详解
|
內容試閱:
|
虽然第一台计算机问世已超过七十年,然而程序的基本功能却始终保持不变,仍然像以前那样接收数据、处理数据和输出数据。但是,随着技术的进步,从中央主机到个人电脑,再到云,程序的创建、部署和使用方式却发生了显著的变化。
有了云计算,开发人员如虎添翼,可以借助于云计算服务进一步发挥程序的潜力。通过云计算服务,个人的创意可以快速转化为供全球用户访问的解决方案。本书的目的是讲述云计算的发展历程,识别眼前面临的挑战,帮助你掌握云端应用或服务的开发,最终帮助你成为优秀的云端开发人员。通过本书,可以学习云计算环境下的编码技巧、在本地机器上应用云计算、代码与数据的托管策略,以及如何使用协作软件组件构建应用或服务。
云端开发并不容易。然而,有价值的事情,往往不都需要投入足够的努力和时间吗?刚开始的时候,你可能无法理解云解决方案的多个组件及其协同工作的方式。同时,还必须准备好应对潜在的干扰,包括破解甚至工作成果被窃取。此外,了解云计算的正面影响和负面影响也至关重要。只要坚持不懈,就能够掌握云端应用开发的刚需技能,向全世界展示自己的创造力。
本书的结构
本书分为三部分,各部分基于前一部分的知识,并且始终锁定一个目标:让读者成为一名优秀的云端开发人员。
第Ⅰ部分“云计算”
首先探讨云的起源及其发展的驱动因素。接下来,使用 JavaScript构建应用程序,学习语言特性和应用库。最后,构建在浏览器中运行的应用,编写可在云端执行的服务器代码。
第Ⅱ部分“云端应用开发”
首先学习HTML文档对象模型,并用它创建一个互动游戏。然后讨论如何把游戏部署到云端,开放给全球有兴趣的用户访问。最后,设计和构建一个云端应用。这部分内容展示了一个云端应用如何从最初的想法到最后准备就绪以部署到云端。
第Ⅲ部分“巧用云服务”
首先介绍提升应用程序质量的技术和工具。然后探讨如何在文件和数据库中存储应用程序的数据。接下来,创建登录系统,并实现基于角色的安全机制。最后,探索一系列由JavaScript驱动的新技术,包括构建个人云、连接硬件设备到服务器、将应用程序与物联网设备相连,以及开发基于精灵的游戏。
专业术语详解
为了帮助你掌握云端编程的基本术语,本书提供了一份详尽的专业术语详解,包括你可能未曾见过或在之前其他背景下见过的相关定义。这份术语详解可在 https://begintocodecloud.com/glossary.html 查看英文版,也可以扫码访问中文版。
如何使用这本书
使用本书的最佳方法是在没有电脑的环境下先行阅读每一章节,例如在通勤路上(除非你得自个儿开车上下班)。之后,在电脑前实践书中的示例和练习,以便在无压力的情况下先尝试理解理论和背景知识,然后通过实践来加深理解。每1章开篇是概述,描述计划要学习的内容,最后以提问的方式结束,旨在帮助你检验理解并激发思考。
动手实践
本书特别强调动手实践,因而提供了很多编程练习。每个实践都从示例讲解开始,然后提供详细的步骤供大家自行尝试。完成的程序可在Windows、macOS或Linux 上运行。每个动手实践还附带二维码,扫描后可直接观看指导视频,也可以访问 https://www.youtube.com/watch?v=LQJOm9zFfNk在线观看。
代码分析
学习编程的另一个妙招是研究别人写的代码,并找出代码的作用(有时研究的是代码为什么不起作用)。在本书中,你将看到“代码分析”这样的特色段落。此外,还有一些调试练习,教你如何在代码运行时对它们进行观察。
程序员观点
本书将分享作者多年来对编程教学和软件开发的洞见,旨在帮助你从专业视角看待软件开发。这些观点覆盖编程、人文和哲学等领域,强烈建议仔细阅读。
彩色代码
本书采用明亮的配色和插图,代码示例使用颜色突出显示,以助于理解。在JavaScript示例中,关键字为蓝色,字符串为红色,数字和注释为绿色。在HTML示例
中,元素和定界符为棕色,属性名为红色,属性值为蓝色。
需要准备的设备
若要运行书中的程序,需要准备一台电脑和一些软件。虽然书中示例用的是Edge浏览器,但也可以选择 Chrome、Firefox 或 Safari。本书还要介绍如何使用Visual Studio Code开发环境。所有示例应用都是采用个人免费版技术创建的,尽管某些服务需要先注册账号,但并不会产生费用。
电脑或笔记本电脑
Windows、macOS或Linux操作系统都可以用来创建和运行本书提供的程序。虽然不要求电脑配置特别高,但至少要具备以下最低要求:
1 GHz或更快的处理器,推荐英特尔i5或更高;
至少4 GB内存(RAM),推荐8 GB以上;
256 GB硬盘空间,安装JavaScript 框架和Visual Studio Code的话,需要约1 GB空间。
对图形显示无特殊的要求,但高分辨率的屏幕有助于我们在编程时查看更多内容。
编程经验
请注意,本书不会专门讲解程序的功能以及编程基础知识,而是假定读者有一定的编程基础,尤其是JavaScript。本书要在云计算的应用场景中介绍大量编程技术。书中提供丰富的实例,旨在为大家提供灵感,自由驰骋于云端应用开发的世界。云计算已在多样化的应用场景中得到广泛运用,涵盖了从实用的应用程序开发到通过物联网设备控制室内照明,再到打造引人入胜的互动体验等诸多方面。
可以选择自己熟悉的编程语言来开发云应用。具体到JavaScript,自从它成为网页浏览器的内置语言以来,就与云计算的发展紧密相连。JavaScript尤其适合用来进行云端开发,因为它拥有大量的支持库,这些库为解决方案的开发提供了便利。
拥有JavaScript经验的读者更容易快速掌握本书介绍的概念和技巧。即使只是熟悉其他编程语言,如C、C 、Java或Python,也能够理解本书提供的示例代码。编程是一种普遍适用的技能,不同的编程语言只是将程序指令表达给计算机的不同工具而已。再次重申,为了帮助你更好地理解,我编纂了一份术语详解,列出了你可能不太熟悉或在不同背景下见过的专业术语。英文版术语详解可通过以下网址查阅:https://begintocodecloud.com/glossary.html。
书籍配套资源
本书包含52个代码示例、35个代码分析和67个动手实践视频。在本书的前几章中,读者可以使用托管在本书官方网站https://begintocodecloud.com/的代码进行学习。之后,可以在GitHub上复制并使用本书提供的资源,网址是https://github.com/Building-Apps-and-Games-in-the-Cloud。详细的操作说明在后文中给出。
勘误、更新和图书支持
我们始终倾尽全力保证本书及其配套资源准确无误,勘误信息在以下页面发布:
MicrosoftPressStore.com/BeginCodeJavaScript/errata
如果发现尚未在此列出的错误,请在同一个页面提交给我们。
至于其他书籍的支持和信息,请访问以下页面:
http://www.MicrosoftPressStore.com/Support
请注意,这里不提供对微软软件和硬件产品的支持。若想获取有关微软软件或硬件的帮助,请访问以下页面:
http://support.microsoft.com
保持联系
保持联系!请关注我们的推特账号:
http://twitter.com/MicrosoftPress
|
|