一场在独墅湖边的技术聚会
7月20号下午,我们在苏州独墅湖科教创新区办了一场技术沙龙。场地是借的西交利物浦大学的创业孵化器会议室,来了40多号人,大部分是苏州本地开发者和创业团队。主题就一个——小程序性能优化实战。这个题目我们团队琢磨了很久,因为做了一年多苏州本地的小程序项目,踩过的坑不少,拿出来跟大家聊聊。
讲真,苏州的技术社区氛围比想象中好。活动发出去3天报名就满了,还有人从昆山坐地铁过来。独墅湖这片高校多,年轻的开发者也多,交流起来很畅快。
分享内容:从真实项目里总结的优化经验
主讲是我们前端组的老张,做了6年小程序开发。他没搞PPT轰炸,直接拿我们之前做的一个常熟服装批发小程序当案例。这个小程序商品SKU有3000多个,首屏加载要4.7秒,商家天天投诉。怎么解决的?老张拆了三步讲。
第一步,包体积优化。把整包从2.3MB砍到860KB。方法包括:图片全部走CDN且按需加载、去掉没用的第三方库、分包加载把非首屏页面拆出去。就这一步,加载时间从4.7秒降到2.1秒。第二步,渲染优化。长列表用虚拟滚动,setData频率从每次滚动触发降到节流300毫秒一次。商品列表滚动卡顿的问题直接消失。第三步,接口合并。原来进首页要请求7个接口,改成后端聚合成一个BFF接口,响应时间从1.8秒降到520毫秒。三步走完,首屏加载稳定在1.2秒以内。商家不投诉了,日活还涨了23%。
现场互动和讨论
分享完是自由讨论环节,气氛很活跃。有个来自工业园区SaaS公司的开发者问了个好问题:setData数据量大的场景怎么做增量更新?老张给的建议是用diff算法,只更新变化的字段,别整个对象往里塞。还现场演示了代码,大伙儿拿手机拍照记笔记。
另一个有意思的话题是分包预下载策略。有个做周庄民宿预订小程序的哥们儿说,他分包下载时机不好,用户点进去要等2秒白屏。大家七嘴八舌给方案,最后建议他在用户浏览首页时预下载预订页分包,命中率能到80%以上。这种面对面的技术交流,比看文档效率高多了。
后续计划
这次沙龙从下午2点聊到6点,原计划4点结束,硬是多聊了两小时。结束后大家在独墅湖边找了家馆子继续聊,苏帮菜配技术话题,苏州特色。我们计划把这个沙龙做成月度活动,下期主题暂定"微服务架构在中小企业项目中的落地实践",场地还在独墅湖这边。
苏州做技术的朋友如果感兴趣,可以关注我们后续的活动通知。说实话,这种线下技术交流在苏州不算多,我们愿意做这个事情,既能交朋友也能互相学习。做开发这行,闭门造车不如多出去聊聊,别人的踩坑经验可能就是你明天的捷径。