美团点评点餐团队:小程序点餐的引领者,4 年 Web 前端开发经验工程师打造

2024-07-11
来源:网络整理

美团点评工程师,4年Web前端开发经验,主要负责会员卡、外卖、预​​订、商户平台等业务的前端开发。现为美团点评订餐团队成员。

如果你看过《张小龙首次全面讲解小程序》这篇文章,你一定会对这句话印象深刻:

比如我们去餐厅吃饭,可能要排队或者点菜,我们不需要下载餐厅的APP,只需要扫描餐厅里的二维码,餐厅的小程序就会弹出来,我们就可以马上在小程序里排队或者点菜。

没错,我们就是张小龙演讲中提到的大众点评订餐团队。

我们团队从去年年底就开始考虑微信小程序平台,经过快速细致的调研、讨论、开发、测试,以及微信同事的帮助,“大众点评订单”小程序终于在2017年1月上线。

我们计划在两个月内推出7个关于小程序的专栏,这个系列文章是我们前端团队在开发小程序时积累的经验,里面不仅有小程序的原理,还有我们在开发过程中遇到的问题和解决办法。

功能介绍

大众点评点餐APP是一个工具,秉承着便捷、易用的初衷,我们设计的第一版“大众点评点餐”APP交互流程非常简单,用户可以在APP内完成选择菜品、确认订单、追踪订单状态的整个点餐流程。

小程序设计

相信这篇文章的很多读者都有过移动开发经验,微信小程序也属于移动应用,应该符合大部分移动端设计规范。

那么从设计上来说,微信小程序、APP、到底有什么区别呢?

首先小程序是一个平台,平台上的开发者必须遵守规范,建议大家参考官方的设计文档。

此外,请注意:

用户首次使用APP时,需要下载离线包,首页需要有加载效果,减少用户感知的等待时间。

小程序会记录用户的状态,当用户再次扫码时,就会打开上一个页面。

小程序最多可以开启5级页面,如果页面层级过深,可能会破坏旧页面。

小程序在渲染长列表的时候可能会出现性能问题,所以最好使用分页。

小程序不支持应用与之间的重定向。

小程序架构

微信小程序的框架由两部分组成:View层和App逻辑层。

View层用于页面结构以及使用渲染。

App层用于逻辑处理、数据请求、接口调用。

在iOS上,执行应用程序解析和处理的解析器是。

上图中这个任务是由X5JS解析器完成的。

我们使用的开发工具是NW.js+内核。

视图层与逻辑层通过系统层进行通信,逻辑层将数据变化通知视图层,触发视图层页面更新;视图层将触发的事件通知给逻辑层进行业务处理。

小程序开发文档离线_离线编辑文档_离线文档编辑器

视图层使用WXML和WXSS编写,通过组件的方式展示。

当小程序启动时,会从CDN下载小程序完整包,编译后的小程序包大小被微信限制在1MB以内。

开发与选择

小程序开发和传统HT​​ML5开发有很多区别。例如:

小程序开发目前不支持npm包管理,官方建议将依赖复制到项目中。

小程序视图层的WXML和WXSS文件仍会用于渲染,开发者需要关注不同平台的兼容性。

小程序逻辑层运行环境并未完整支持ES6,开发者需要关注不同平台的兼容性。

小程序的开发者工具在补全、语法检查等方面还不如我们熟悉的IDE(但相信微信团队会做得越来越好)。

可以看到,小程序和我们现在熟悉的前端开发模式有很大的不同,这会在一定程度上影响我们的开发效率。因此:

我们将项目分为开发目录和构建目录,构建目录下有两部分,一部分是需要上传到 CDN 的图片,一部分是小程序的运行代码。

在开发目录中,使用.html 和.css 后缀(以便您可以将项目导入 IDE)。

然后通过 Gulp 处理开发代码并将其写入构建目录。

使用ES6语法,配合,快速检查语法错误。

所有异步请求都被封装起来,以增加代码的可读性并方便错误捕获。

小程序和 PWA

PWA的全称是Web Apps,是2015年提出的概念,是渐进增强理念的典型实践。

PWA 并不是一套全新的标准,而是现有 Web 技术的超集。而微信小程序则可以看作是现有 Web 技术的子集。

为什么这里要提到 PWA?因为 PWA 和微信小程序用不同的思路解决了很多常见的问题。

当然,微信小程序与PWA在实现思路上的差异是如此之大,甚至其本质都有很大区别。

PWA是开放的,可共享,可搜索;微信小程序是封闭的,只能在微信内部共享,只能在微信内部进行非常有限的搜索,不能跳转到其他网页或应用。

本文经智效计划授权转载,关注微信公众号可获得以下内容和服务:

微信后台回复“0109”,一张图片教你如何使用微信小程序。

在微信后台回复任意关键词,即可获得相关小程序推荐,快来试试吧!

分享