九月底参加了掘金主办的小程序开发者大会,近期开始填坑,总结下会议中的收获。

说个插曲,会议是周六,周五通宵在公司做 Hackathon,周六一早打车去会场,睡眼迷离听了一天。不过掘金主办的这次会议质量很高,解决方案专场也给我很多启发。全程干货,涉及到用户体验、H5 交互、项目工程化、小程序框架,下文我也会从这几个方面说下我的收获。

用户体验

轻芒这个公司给我的印象总是很酷,每次使用他们的产品,我都会惊叹,交互还能做成这样 ?小程序生成平台「轻芒小程序+」也走了一条很独特的商业路线。

轻芒的分享过程中,我认为全局组件和马克功能值得借鉴,轻芒将所有全局组件、弹窗、UI 状态统一存放,每个 Page 都进行引用,可以保证每个页面的体验高度一致。虽然方案还可以优化,但是代码的逻辑清晰,扩展性和维护性都非常高。

轻芒杂志有一个被称为马克的交互(用户选中一段文字),APP 比较容易实现,小程序因为没有 dom 操作,导致无法实现很好的效果,于是轻芒的工程师机(sang)智(xin)过(bing)人(kuang)地将每段文字分块,每一块对应一个 view 标签。通过这种方式实现了长按马克的功能。类似这样的操作还有列表中 hack 播放弹层。

>交互的实现是一个团队工作,是平台能力和产品涉及的相互融合

在这场演讲之前,如果遇到这样的需求,我很可能会回复产品或者设计说做不了,原因是小程序不支持,但现在,我会多思考一步,是不是可以有更 geek 的方式。在保证项目进度的同时,作为开发者,应该更多去考虑功能的易用性,我们做的是产品,不是真的码农

与 H5 交互

分享 H5 交互的是转转小程序的负责人,之前在做贝壳租房小程序跟 H5 登录打通时,研究过转转的逻辑,内嵌的 H5 数量非常多,但是体验没有下降很多,这次的很多内容也验证了之前的猜想。

内容中觉得比较有借鉴价值的应属,转装针对 H5 的多端环境做了一个 adapter,H5 根据当前环境加载不同的 SDK,H5 只用关心封装后的 API,其余的逻辑 adapter 帮你管理,大家日常开发中可能用过 H5 与原生 APP 交互的 Bridge,adapter 属于 bridge 的升级版本,需要适配更多的端,同时带来效率的翻倍提高。随着百度、头条、蚂蚁金服在小程序上的跟进,未来的端不仅是 APP、浏览器、微信小程序,还会有更多端的小程序出现,这时候一个完整功能的 adapter 的作用会至关重要。

接着便是小程序和 H5 登录打通的方案了,在跳转 webview 页面前将 cookie 拼在 URL 中,H5 注入 cookie 后刷新页面,登录态就顺利同步了,但是这种明文传 cookie 的方案会有安全隐患,提一个优化方案,URL 中拼接临时获取的一次性 token H5 获取后,拿 token 请求服务端,获取登录态。

关于框架

在会议之前就已经开始接触小程序开发框架,大家都想写一套代码,多端运行。这次就有 wepyTarowepy 语法类似 vueTaro 则是 React。软件设计没有银弹,框架的出现是为了提高开发效率,而开发者选择框架或者技术栈时,应考虑远不止效率一个维度,宿主生态的变化、后期的维护成本都应该被考虑在内。

小程序本身就是一个封闭产品,违反 Web 开放的原则,对开发者而言完全黑盒,每个大厂都出了一套自家生态的小程序,最后深受其累的还是开发者自身,开倒车无疑。

人类联合起来兴建希望能通往天堂的巴别塔,为了阻止人类的计划,上帝让人类说不同的语言

每家一个黑盒标准,像极了当年的浏览器大战,开发者苦不堪言,却又不得不兼容。

项目构建

分享项目架构的是美团外卖的同学,主要介绍了美团外卖的架构方案,同时介绍了一些针对小程序 Storage 性能的测试。

构建方案美团外卖使用了 gulp,支持的都是较为基础的功能,可参考性不是很高,基本都是我们已经支持的功能,我们的方案也是 gulp,目前支持下面这些功能:


  • Stylus 编译
  • 文件重命名(js->wxs,Stylus->wxss …)
  • ES6 转 ES5
  • 开发 & 上线环境分离
  • 开发 watch

开发之初,我们也寄希望于微信小程序的快速迭代,支持更多的开发功能,但事实证明,有些功能有了,对于开发者而言体验仍旧很差,我说的就是小程序 npm 支持。gulp 已经渐渐不能支撑我们的构建需求,组内正在搭建基于 webpack 的构建工具。

虽然开发工具支持 npmES6,但由于糟糕的使用体验或者项目的特殊需求,导致我们越来越多的把这些功能前置到本地构建时做,并不是推荐这种做法,项目开发过程中,没有最好的方案,只有目前最合适的方案

最后

前段时间,阴明写了一篇不如我们从头来过 | 掘金,宣布掘金开始裁员过冬,掘金三年,做到国内质量最高的开发者社区,支持掘金,支持阴明。

注:
会议中所有的 PPT & 视频 都可以在掘金官网找到