前言

在过去两年多的时间里,小程序迅速覆盖了人们生活中出行、点餐、娱乐等各种生活场景,也由最初的微信小程序逐步发展为包括支付宝、百度、头条在内的各大厂商争相追逐的高地。

当微信中的 WebView 逐渐成为移动 Web 的一个重要入口时,微信就有相关的 JS API 了。随着公众号的出现和繁荣,WebView 的使用频率也越来越高,随之而来的糟糕体验、管控困难等问题便频频出现。为了从根源上解决这些问题,微信设计并推出了小程序,这是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,具有出色的使用体验。

小程序正式发布后的三年里,应用数量超过 230 万,日活超 3 亿,逐渐延伸至电商、餐饮、教育、文旅、政务等多个领域。微信小程序累积用户量已达 8.4 亿,月活用户量更是突破 6.8 亿,占微信平台月活用户的 62%,次日留存用户过半。如今小程序用户使用习惯基本形成,微信给小程序的入口流量不断增加,小程序开发的队伍也在不断壮大,越来越多的产品选择使用小程序作为轻应用开发。

虽然官方提供了配套工具和开发文档,但对于一个不熟悉小程序的开发者来说,由于背景知识的缺乏,很多时候甚至不知道应该如何搜索某个问题或者某个功能。本书引导开发者进行快速入门和实战,对小程序的原理和机制进行详细的说明,并提供丰富的避坑指引和使用指南。

2019 年,小程序推出了云开发的能力,提供了小程序开发的闭环能力。有了小程序·云开发,开发者可使用平台提供的 SDK 来开发完成后端服务,无须搭建服务器,弱化了运维的概念。本书使用简单易懂的案例说明了小程序·云开发功能,结合完整的项目实战来引导开发者实现小程序 Serverless。

结构和内容

本书共分为三部分。第一部分从开发入门小程序开始,辅以项目实战教会读者如何快速编写小程序应用。第二部分结合小程序底层框架设计和运行机制,提供了全方位的避坑指南以及工具和管理后台的实用指南。第三部分全面介绍了小程序提供的云端能力,结合云开发可轻松实现 Serverless 架构。

第一部分小程序快速入门与实战

该部分包括 6 章内容。

  • 第 1 章介绍了小程序的前世今生,包括其诞生背景和应用场景,帮助读者了解什么是小程序,为什么使用小程序以及何时应用小程序,使读者对小程序形成初步的认识。
  • 第 2 章提供了一份小程序快速入门文档,构建了一个基础的小程序开发环境,使读者可以快速开启小程序开发之旅。
  • 第 3 章讲解了小程序的开发基础,包括小程序的生命周期、架构和开发框架,以及小程序的逻辑层和视图层开发方法。
  • 第 4 章与第 5 章介绍了两个不同类型的实战项目。第 4 章以一个电商小程序为例,还原了开发者开发小程序的完整流程,带领读者开发了一个完整的小程序项目。第 5 章以一个通用分享插件为例,介绍了如何将代码中可以重用的部分提取出来,实现一个可以复用的插件,避免重复造轮子,提高开发效率。
  • 第 6 章介绍了小程序生态中其他小程序(例如 QQ 小程序、百度小程序等)的开发,展示了如何实现从微信小程序到其他小程序的转换,从而在小程序的生态之争中立于不败之地。

第二部分小程序原理分析与避坑指南

该部分包括 4 章内容。

  • 第 7 章介绍了小程序的设计原理,包括小程序的双线程设计、线程通信、自定义组件、原生组件,以及基础库的组成、代码包下载和启动等机制。
  • 第 8 章结合上述原理和分析,提供了详细的避坑指南,介绍了性能问题、API 兼容、小程序跳转、kbone 多端构建等,还提供了登录态管理、小程序跳转和高性能 WXS 等开发指南。
  • 第 9 章介绍了开发者工具的基本使用配置和技巧,分析了开发者工具的底层设计和实用功能,包括真机调试、体验评分、性能面板和 vConsole 等,另外还介绍了自动化测试的能力。
  • 第 10 章介绍了小程序管理后台的配置和使用,讲解了大量实用的功能,包括日志能力、监控告警、数据上报、加速审核等,并介绍了如何进行小程序的技术管理。

第三部分小程序·云开发

该部分包括 4 章内容。

  • 第 11 章结合日常开发详细地介绍了小程序·云开发的基础能力,包括数据库、文件存储和云函数。
  • 第 12 章讲解了云开发的增值能力、架构、原理、推荐的开发模式等,帮助读者进一步提升云开发实战能力。
  • 第 13 章通过 3 个极具代表性的实战案例,解构了云开发在不同场景下的使用。
  • 第 14 章使用云开发完成了电商小程序的项目实战,增加了数据拉取、下单、支付、通知等能力,使之成为一个前后台能力完整的小程序项目。通过实战讲解,开发者能更好地掌握和理解小程序的前后台能力。

内容参考

本书对微信小程序进行了基础介绍、快速入门、原理分析、工具和功能使用指导、云开发能力介绍与实战,在讲解过程中,部分内容参考了官方网站的资料,如小程序开发文档和小程序开发指南。

示例代码与勘误

本书所有的实战项目案例代码都可以到 GitHub 下载,地址:https://github.com/miniprogram-bestpractise。后续若增加新的项目案例,也会同步更新到该仓库中。

开发者可以使用 Git 版本控制克隆项目到本地或直接下载代码,目前默认的检出分支为 master 分支。如果对某项目有疑问或意见,可以在该项目中提交 Issue。如果想要接收某项目的更新邮件提醒,请点击 Watch;如果要持续关注某项目,请点击 Star;如果要复制代码到自己的账户,请点击 Fork。

由于作者时间和水平有限,本书难免会存在一些纰漏和错误,欢迎广大读者批评指正。勘误请提交至图灵社区本书主页。对于读者发现的问题,我们将在本书后续印次和版本中加以改正。

致谢

作为开发人员,能够编写一本技术性和实践性非常强的小程序图书,我们感到非常荣幸。在此向所有给我们提供指导、支持和鼓励的朋友表示衷心的感谢。

感谢腾讯 AlloyTeam 架构师、前端技术专家曾探帮我们三位作者组队,在整个编写、审校和合作过程提供了不少的帮助。

感谢帮忙进行技术审校的三位业界大神,他们分别是云开发团队布道师白宦成,腾讯 OMI 框架作者张磊(当耐特),还有摩拜小程序负责人张世兵,他们为本书内容提供了严谨和详尽的反馈。

感谢云开发的三位客户的开发代表,他们分别是腾讯相册的高级工程师张石新、享物说的前端架构师代长新,还有猫眼娱乐的高级工程师高英健,感谢他们协助采访并提供内容。

感谢人民邮电出版社图灵公司的张霞编辑,为我们三个第一次写书的作者提供了不少的指导和建议,耐心地帮助协调我们的工作。

感谢图灵公司的其他编辑们,是他们不辞辛苦、仔细严谨的审阅和校对工作为本书的顺利出版提供了有力保障。