「掘金」小程序开发者大会
九月底参加了掘金主办的小程序开发者大会,近期开始填坑,总结下会议中的收获。
说个插曲,会议是周六,周五通宵在公司做 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 请求服务端,获取登录态。
关于框架
在会议之前就已经开始接触小程序开发框架,大家都想写一套代码,多端运行。这次就有 wepy
和 Taro
,wepy
语法类似 vue
,Taro
则是 React
。软件设计没有银弹,框架的出现是为了提高开发效率,而开发者选择框架或者技术栈时,应考虑远不止效率一个维度,宿主生态的变化、后期的维护成本都应该被考虑在内。
小程序本身就是一个封闭产品,违反 Web 开放的原则,对开发者而言完全黑盒,每个大厂都出了一套自家生态的小程序,最后深受其累的还是开发者自身,开倒车无疑。
人类联合起来兴建希望能通往天堂的巴别塔,为了阻止人类的计划,上帝让人类说不同的语言
每家一个黑盒标准,像极了当年的浏览器大战,开发者苦不堪言,却又不得不兼容。
项目构建
分享项目架构的是美团外卖的同学,主要介绍了美团外卖的架构方案,同时介绍了一些针对小程序 Storage
性能的测试。
构建方案美团外卖使用了 gulp
,支持的都是较为基础的功能,可参考性不是很高,基本都是我们已经支持的功能,我们的方案也是 gulp
,目前支持下面这些功能:
- Stylus 编译
- 文件重命名(js->wxs,Stylus->wxss …)
- ES6 转 ES5
- 开发 & 上线环境分离
- 开发 watch
开发之初,我们也寄希望于微信小程序的快速迭代,支持更多的开发功能,但事实证明,有些功能有了,对于开发者而言体验仍旧很差,我说的就是小程序 npm
支持。gulp 已经渐渐不能支撑我们的构建需求,组内正在搭建基于 webpack
的构建工具。
虽然开发工具支持 npm
、ES6
,但由于糟糕的使用体验或者项目的特殊需求,导致我们越来越多的把这些功能前置到本地构建时做,并不是推荐这种做法,项目开发过程中,没有最好的方案,只有目前最合适的方案。
最后
前段时间,阴明写了一篇不如我们从头来过 | 掘金,宣布掘金开始裁员过冬,掘金三年,做到国内质量最高的开发者社区,支持掘金,支持阴明。
注:
会议中所有的 PPT & 视频 都可以在掘金官网找到
作者: leeon
来源: https://leeon.im
链接: https://leeon.im/2018-miniprogram-developer-conference/
本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可