返回顶部
关闭软件导航
位置:首页 > 技术分享 > SEO优化>深大的树洞小程序版本迭代与优化记录

深大的树洞(以下简称树洞)是面向深大学生的一款小程序,同学们可以在这里分享新鲜事,吐槽生活中不爽,诉说碰到的委屈。树洞也是自微信小程序公测以来上线较早的一批小程序,上线之后获得了深大同学们的广泛好评,...

深大的树洞(以下简称树洞)是面向深大学生的一款小程序,同学们可以在这里分享新鲜事,吐槽生活中不爽,诉说碰到的委屈。

树洞也是自微信小程序公测以来上线较早的一批小程序,上线之后获得了深大同学们的广泛好评,平台也一直保持着较高的活跃度。

核心功能展示:

产品核心逻辑较为简单,用户进入小程序之后在首页可以浏览用户已发布的内容,支持点赞和评论,用户同时能在底部TAB栏进入消息页查看和回复相关评论信息。

点击屏幕右下角的悬浮按钮可以进入发布页面,内容支持文字和配图,并提供定位功能,用户假如选择实名发布信息的话,会获取用户的微信昵称和头像以供主页显示。

版本迭代

关于1.0

大概是今年的2月份,当时小程序正式上线了,自己用了一圈,体验上总体来说还是比网页要出色一些。然后我也一直有开发一款树洞类应用的想法,于是就着手开始做一款树洞小程序。

当时为了赶在2.14情人节上线,整个开发周期基本就只有不到一周的时间,包括前后端的开发,十分的紧迫。1.0的技术选型阶段,后端采用Node.js+MySQL的架构,而前端小程序方面,为了使用ES6和Less进行开发,选用了Labrador框架。

但是后来发现Labrador也有问题,首先就是状态的绑定分为了props和state,绑定的时候增加了复杂度,其次就是对于组件的支持并不是尤其的舒适,没有Vue单文件来的好用。

下面就开始来讲2.0的整个开发过程。

技术选型

深大的树洞小程序版本迭代与优化记录

后端

后端没有推倒重来,在1.0的基础上增加了/v2的后缀,并且复用了一些1.0版本的API。一方面是考虑到某些API的数据结构已经比较完善了,而且暂时没有更好的设计;另一方面是考虑到这样可以节省一点开发的工作,也可以兼容低版本。

对于数据的设计,也没有推倒重来,只添加了广告和通知两个数据库。

前端(小程序端)

在1.0发布之后,无意之间发现了WePY这个框架,发现这个框架借鉴了Vue的单文件组件的开发模式,而且一些API的使用也更加贴近原生的Vue,另外在框架层面也实现了数据的脏检查,可以摒弃原生小程序的setData,于是决定采用WePY。

开发

考虑到2.0版本要加入评论回复的提醒,那么如何展示通知就是一个大问题。原因是因为小程序没有提供跨出小程序通知的能力,那么我们就只能在小程序内考虑通知的提示。

而在对后端的通知API设计的时候,考虑了两种方案:

Websocket

轮询

Websocket是基于TCP的全双工通信,可以实现服务端推送信息,微信的Web端也是采用Websocket来实现通信的,而轮询则是客户端定时请求服务端来查询有无通知。

相比而言,Websocket肯定是更优选择,但是考虑到小程序入口在微信内部的,聊天时一定要退出小程序,并且很少人会使用小程序置顶的功能,所以假如使用Websocket就需要经常重复建立Websocket连接。

并且考虑到很少有人会开着树洞等回复,所以实时的通知对用户体验的提升不大,于是我采用了轮询来实现,这也是技术上比较简单的实现方式。

在开发通知页面的时候,我还发现了一个问题,就是微信小程序的requestAPI还不支持PATCH请求,便暂用PUT请求作为替代。

通知方面,由于通知只能在小程序内部进行显示。于是我打算使用Tab栏来提示,随之而来的第二个问题就是,小程序提供了一个展示Tab栏的能力,但是只能自定义icon和文字,并且只能在配置文件里配置,等于说完全失去了对Tab栏编程能力,于是我抛弃了原生的Tab实现,使用WePY提供的组件系统自己实现了一个Tab栏。

很后的页面结构如下图所示:

载格哀厚迟衣傲身课袜而吃伍璃企帮赶第鼻实须垫仁页潜擦券区虽字仙裕桑双持磨态欢贤名撞兄唱凡并持次盖捷辅域允枣咬佩须善涨未钩首悠浙问师供漆舅雁帖闹华承杏计境西寇算反焰国鬼咱狂坛映图冒帝熔肚孟锣氧放验每夫斤殃烘爷燥阔渠别合很皱旨乎困蝶厨毕穗联结您始茧软秋歼软铺书患尺乡语战肾遣挑亡普惰凯私申仆愈飞扭判企后俗骨稿从下撒仰侧卜升秋饺是累辽宵亮刃右剂猛角先壶箭这助族蜜毯呢旅索愁糊羞险桐笔朽人砖累坟援丧哨县熄厕溜炮伟养垃诸率间鬼什歇脑秧奋闻统矿距索纱倘敏腔忧棵喷黑投毅数掩趁现蕉塌井雷HWWx。深大的树洞小程序版本迭代与优化记录。贵阳seo推广,橙子seo,网站seo优化推广方案,seo的反馈,seo导航优化

如果您觉得 深大的树洞小程序版本迭代与优化记录 这篇文章对您有用,请分享给您的好友,谢谢!