• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

2021.12.16 小程序记

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

这两天院庆20周年,“地小空知识竞赛”微信小程序重磅推出,几百个同学踊跃地报名进行答题,排行榜上瞬间被卷怪占领。于此同时,开发组收到来自不同同学们的反映,他们总是能奇妙地触发各种bug,这在我们测试阶段是无法预料的。在运营小程序的第一天,我们的服务器甚至被人黑了用来挖矿,直到多个同学反映小程序卡顿之后我们才及时发现…… 在这界面充满童趣的小程序背后,又有着怎样的故事呢?这背后的辛酸也许只有我和jjq还有那几位最早开发它的学长们才能领悟了。

为了留作纪念,我怀着对python的无奈,对前端的愤恨,对mysql的怒火,对服务器的恐惧,以及那短暂的丰收的喜悦,写下这篇日记,来纪念自己这一段劳模般的经历。
最初了解小程序是在去年10月份,当时听学长提到学院在19年曾有一个地学知识竞赛小程序,还举办过几次答题活动,可惜后来停办了。在他的怂恿下,我满怀希望的下载了它的老代码,并向当时开发它的几个学长请教问题。在与学长们的简单交流后,我了解到开发小程序需要兼具“前端,后端,服务器”等知识,要会用python 语言 flask 框架写后端,要用 js 以及微信开发者工具自带的wxml语言写前端,要会用mysql管理数据库…… 当时我折腾了两天就放弃了。
时间流转到今年10月份。没错,这次我下决心了:身为学术实践部负责人之一,我要重振地空荣光,复活小程序!整个国庆期间,我翻看着 flask 后端的教程pdf,并尽可能尝试读懂那800行的后端代码。终于我了解了小程序的后端运作模式,然后还不够,需要了解前端是如何工作的,我又花了几天来读前端的代码——这一块设计用户的操作界面,代码更加复杂离谱…… 在大致读懂以后还不够,我们是要开发小程序,必须得让他运行起来啊!我又花费了一整天时间,搭建本地mysql数据库。由于不想占用学长的时间,在这一块我可以说是走了不少弯路。

小程序终于能够本地运行了,这时十一假期已经结束了。又过了十几天,我和几个学长商量以后决定办一个地小空知识竞赛答题活动,在那之前我得把服务器搭建好。然而我对服务器一无所知,我又费了一个周末时间来查询各种博客,甚至翻了b站的视频…… 那天晚上,我在腾讯云上购买了一个学生服务器套餐,并在服务器上安装mysql,uwsgi,nginx…… 令人恼火的是,我翻了那么多博客,也照着他们的步骤去做了,但就是无法成功。问题的关键点在于,我对uwsgi,nginx的工作原理一知半解,一直处于瞎蒙的状态。再后来,我去找“燕园大侠”帮忙了。燕园大侠现在是地物方向的博士,曾经是小程序开发者之一;这次他耐心地在我的电脑上操作起来,经过一个晚上,小程序终于能够访问服务器了!

你以为这就完了?还早得很!微信小程序访问的url必须要有ssl证书,要申请域名,并进行备案。我花了大量时间来摸索如何申请ssl证书,如何在uwsgi里进行相应的配置,又在腾讯云上购买了域名,为备案进行了许多繁杂的工作。终于,在11月份初,小程序1.0.1正式发布,手机端终于能访问了!怀着激动的心情,我又熬夜地添加了出题功能和学术tips(显示latex文件)功能,算是给老版本的小程序锦上添花。

你以为这就完了?地空院庆文化节因为疫情被取消,到头来只剩下了小程序作为线上唯一的文化节活动。这下怎能不严肃对待呢?团委与 ** 开始提各种要求——活动期间排名的规则更新,每天有次数限制,排行榜显示前15名;封面、标题、按钮不美观,要我们重新设计…… 我和jjq两人商量了以后,在12月10日当天聚在泊星池咖啡厅修改前端与后端。(不得不佩服jjq的敬业,他竟然在没吃早饭和午饭的情况下一直坐着码了一整天。)首先是耗费了几个小时,让jjq理解后端与mysql、前端的联系与运作方式。jjq对python十分熟悉,自然由他来修改后端代码。然而jjq同学根本没有debug意识(忍不住吐槽一句),一口气改完了全部内容,结果bug频出,无从调试;我们又花了一个小时,把环境复原成原始的版本,然后计划着一点一点改代码,一点一点修复bug…… 到了20:00,后端的全部逻辑语句修改完毕。我们前往家园吃晚饭,然后与 ** 团的chl会面。chl又提出了新的要求,包括并不限于修改按钮、背景格式、修改答题界面的配色、按钮形状…… 三个人一起在地物图书馆,一直干到了凌晨3:00。上一次这么熬夜已经是10月1日了。

小程序的功能已经大功告成了,然而,你以为这就完了?小程序运营第一天,传来了小程序卡顿的消息。我打开服务器一看,映入眼帘的是一个cpu占用率98%的进程xri。把xri进程kill掉以后,小程序突然又不卡顿了,然而几秒钟之后xri进程又复活了!那天我刚写完电动作业,还有数理作业和热统作业要赶,却不得不在0:00的时间去对抗这个不速之客!事后我们备份了xri的文件夹中看到一个json文件,里面有一段“挖矿”代码……

你以为这就完了?12月16日,也就是小程序运营第二天,一位同学发来邮件,谈到他出的题系统给出了错误的选项。我又耗费了中午吃饭的时间去修改后端代码。

你以为这就完了?12月17日,也就是小程序运营第三天,chl学长要求我们稍改排行依据,将答题时间作为第二关键词。这次由jjq同学来修改后端。我以为我无事一身轻了,没想到,又出bug了!在jjq还在写代码的时候,一位同学反映他的分数突然清零了!打开数据库一看,糟糕!该同学的数据丢失!而之前我备份的时候,设置了单元格列数上限10000,根本没考虑到history数据早已超过10000行…… 真正严重的问题在于数据为什么丢失。当天我们还从数据库中排查出两个同学的数据丢失。小程序又陷入了新一轮的危机……

12月18日下午,由于之前为了备份数据写了补丁,我们在用户丢失数据那一栏惊讶的发现数据大小为65535B…… 于是,一切真相大白。原来mysql的text数据类型只能存储65536B的长度……

地小空知识竞赛小程序,活动时间15到19号,只剩2天了!在这2天将发生什么事,我无法预知,我也不想预知了……
这是一次独特的令人有苦有乐的经历。同时我也很高兴把jjq也拉到了这个坑,让他也能感受到debug的痛苦(滑稽)。不知道多年以后的自己回过头来看这段经历,会有怎样的想法。也许伴随着那些debug时痛苦回忆的,还有几处发光的回忆吧。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
初体验微信小程序记事本发布时间:2022-07-18
下一篇:
小程序UI设计(3)-符合视觉规范-列表视觉规范发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap