北大最受学生欢迎之一的的校内APP是如何诞生的

您所在的位置:网站首页 专门查大学的app 北大最受学生欢迎之一的的校内APP是如何诞生的

北大最受学生欢迎之一的的校内APP是如何诞生的

2024-07-16 12:27| 来源: 网络整理| 查看: 265

全文共4311字,阅读大约需要7分钟。

本报记者

姜贤昱 社会学系2018级本科生

钟兴鸿 化学与分子工程学院2017级本科生

“完蛋了!”肖元安心里一紧,这下子事情弄大了。

2019年10月17日下午6点,当PKU Helper(下文简称Helper)的开发团队在进行服务器漏洞扫描时,不小心“踩到”初代开发者在代码中遗留下来的“雷区”,将多年以前的团队招新公告给所有Helper用户反复发送了二十多次。肖元安发现问题的严重性之后,立刻打开树洞,打上“Helper官方”的蓝色高亮头衔,发送了一条致歉,以尽可能减少突如其来的招新公告给同学们带来的混乱。

△肖元安发布的致歉信息

诞生

时间退回到2014年,当时学校的各网站还没有完全适配移动设备,当师生们在手机上使用这些网站时,需要在密密麻麻的文字中寻找自己需要的信息。法学院2012级本科生熊典从中获得启发——如果能有一款面向校内师生,集合信息查询、生活服务等功能的应用软件就好了。于是,他动手编写了一款可以在手机上实现网关连接、课表查询等常用功能的手机应用——PKU Helper。

最初的Helper只有iOS版,且其前端、后端、美工全部由熊典一个人负责。“一个软件或网页需要前端和后端两者协同完成任务。通俗地讲,前端就是用户们‘看得见’的部分,如客户端、网页界面等;后端则是用户们看不到的,统一管理数据并给前端提供服务的地方。”信息科学技术学院2016级本科生,现Helper开发团队成员鲁云龙解释道。

iOS版Helper问世一年后,信息科学技术学院2012级本科生陈章参与到Android版Helper的开发中,Helper的开发模式也开始从“一人独揽”逐渐转向团队合作。2016年,校方将原本是非官方应用的Helper收编,并将Helper的数据迁入计算中心的服务器上。自此,Helper的开发团队终于从“地下组织”转变为“正式团队”。

尽管熊典已从北大毕业,在开发团队成员的更替与传承下,Helper一直得以延续。目前,手机端Helper的日均活跃用户保持在5000至6000人次左右。

树洞

“我每天睡觉前都会习惯性地刷一下树洞,看看今天有没有什么新的热点,或者是一些有趣的故事。”今年大二的王潇弘是“P大树洞”(下文简称“树洞”)的重度用户。或许熊典自己也没有想到,树洞——这个内置在Helper中、功能还有些简陋的匿名社交平台,竟然会发展成为Helper的核心功能之一,影响力不亚于未名BBS的校内网络社区。“树洞里有情感咨询、学术交流,也有日常吐槽、二手交易、实用信息汇总……总之,你无法用一句话概括树洞的形态。”王潇弘说。

△一条汇总了校内外美食的树洞(注:“洞主”指某条树洞的发布者)

自从Helper被纳入官方系统后,北京大学青年研究中心(下文简称“青研”)开始与Helper开发团队共同负责树洞的监管工作。

由于Helper具有官方属性,“树洞是否真正匿名”一直是学生之间热议的话题。不少“洞友”认为树洞只是名义上匿名,甚至还有这么一则校园传说——树洞的后台存在一个专门用来查询发帖人学号和姓名的界面,供核心开发人员和青研老师使用。

“青研的老师的确有直接删帖的权限;但是,无论是谁都无法直接查询到发帖人的真实身份,最核心的开发者也做不到在一个‘特殊窗口’上看到每个发帖人的学号。”物理学院2015级本科生林海芃说。作为第二代Helper开发成员,他曾负责树洞密钥的保管。

树洞的信息由两个部分组成:已加密的数据库,以及用于解密的密钥。树洞的编号和内容可以从数据库中读取,但发贴人的学号经过加密处理,破解难度很高。出于保护学生安全和隐私的考量,数据库和密钥严格分开保管,即使是开发者,在进入Helper团队时也只能选择拥有其中一个。也就是说,解密的过程需要多方协作,任何一个人都不可能擅自获得发帖人的实名信息。

只有在少数极端情况下,开发者才会将实名信息提供给校方。当心理中心负责实时监督树洞的管理员发现有存在严重问题的帖子时,会在第一时间联系青研,请求获得发帖人的实名信息,再由青研紧急联系核心开发者发出正式请求。因此,每位核心开发者都需要保证手机24小时开机并随时准备应对突发状况,即便是凌晨两三点也不例外。

作为核心开发者之一,林海芃清楚地记得,有一次他在纽约的一家咖啡厅喝下午茶时(北京时间凌晨两点),突然接到青研的紧急电话——心理中心的监管员发现疑似有学生要自杀,请求获得发帖人的真实身份信息:“那个时候我正在享受一块布朗尼蛋糕,听到这个消息,我完全没了食欲。当时我没带电脑出门,确认事态严重后,我赶紧跑回住所打开电脑,联系上其他开发成员一起开始工作。”

传承

高考后的暑假,已被信息科学技术学院录取的2018级本科生肖元安得知了树洞的存在,还发现其中大量珍贵的课程测评资料。无奈当时的树洞只能在手机上使用,这不仅不符合他平时“能用电脑就不用手机”的上网习惯,也不方便一边选课一边查找课程测评。为了满足自己的使用需求,他动手编写了浏览器上也可以使用的“非官方网页版树洞”,并将其链接公开在树洞上。

入学后,肖元安在百团大战中进入了Helper团队,广受好评的网页版树洞也随之在2019年3月被冠以学校官方域名,一同纳进正式的Helper体系中。

△肖元安在树洞宣布网页版树洞官方化的消息

2019年初春,化学与分子工程学院2017级本科生钟兴鸿,正为自己的大学生活感到迷茫:他发现自己真正热爱的不是化学,而是编程,但由于种种原因他未能转入信科。一次偶然的机会,钟兴鸿结识了鲁云龙,并通过他的介绍成为了Helper开发团队的一员。“我加入Helper就是为了尽早踏入计算机领域,编程已经成为我生活的一部分。”

肖元安、钟兴鸿,再加上从PKU Runner团队调过来的鲁云龙,构成了第三代Helper开发团队的核心部分,他们分别负责网页版的前端、后端和iOS版的前端、Android版的前端。

和其他社团不同,定期大规模招新并不是软件开发团队扩充队伍的最佳手段。鲁云龙解释了原因:每个人写代码都有自己的风格,编程水平也参差不齐。多个人一起写同一个代码,或是频繁更替开发成员,反而会降低开发效率。“后端、Android版前端、iOS版前端,再加上网页版前端,每个部分各有一个人就刚刚好。”而Helper团队目前面临的困难之一,就在于招不到专门的iOS前端开发人员。

因此,原本负责后端的钟兴鸿决定兼职iOS前端开发。2019年暑假,他自费购买了一台二手MacBook,并开始自学Swift语言(注:用于Apple应用程序开发的编程语言)。“这是一个慢慢摸索的过程,”钟兴鸿回忆,“趁暑假时间充裕,我每天早上8点起床写代码,经常写到凌晨1点才睡觉。”大三开学后,钟兴鸿开始选修双学位,在一学期28学分的课程压力之下,他每周只能抽出不到半天的时间用于Helper的相关工作。

Helper的开发和运营不仅需要投入很长时间,还需要不少的资金成本。钟兴鸿自费购买的MacBook是八年前的款式,其性能只能勉强满足编程的基本要求。“最新款的MacBook需要一万多人民币。这笔资金很难从校方申请到,而我自己也负担不起。”

△钟兴鸿平时的编程环境

前进

“不少人反映与iOS端相比,Android端的Helper做得简陋,网页版比手机端好用得多等等,其实我们也早就意识到了。”Helper目前面临着的困难和用户们对Helper的反馈,开发者们知道得最清楚,但这些问题也各有原因。

早期,用户使用Helper时,需要提供自己的学号和密码,Helper的服务器就会使用帐号密码登录到学校的各个网站中,将获取到的信息转发到用户的手机客户端上。而这种方式存在着用户帐号泄漏的风险。因此,在Helper纳入官方体系后,计算中心要求团队改用短信验证的登录方式,并让Helper服务器接入学校的官方API(注:全称“应用程序接口”,是数据平台向应用程序提供数据的渠道),由统一可靠的数据接口来保证用户信息的安全。

这一举措确实给Helper带来了更高的安全性,但开发者们为此付出了巨大的时间成本。他们对早期的代码进行了大规模的重写,使得Helper能够适配学校的官方API。不仅如此,校方提供的API还存在着大量不完善的地方,这直接导致了近几年Helper的部分功能变得不稳定,甚至失效。“曾经有很多同学向我们反映,现在的Helper无法自动导入双学位课表,”钟兴鸿说,“但是我们也很无奈,因为当时校方的API并未提供相应的课表数据。”

△北京大学数据共享开放服务平台(isop.pku.edu.cn)

另一方面,Helper设计于五年之前。这几年来,学校的网站环境有了很大的变化:新的网页设计对移动设备更加友好,百讲购票、体测结果查询等相继移入微信公众平台……这一系列“替代品”的出现,使得手机端Helper不再是唯一的选择。加上网关等诸多功能在Helper接入学校的官方API后相继失效,Helper从最初功能齐全的北大学生必备App,逐渐“沦落”为手机中的“不常用软件”。

但开发团队仍然在坚持Helper的开发与维护。2018年底,他们开始着手推翻所有的旧代码,用更加现代的编程语言重写Helper的前后端。“现在的Helper一直在沿用第一代成员遗留下来的‘远古代码’,这些代码所用的编程语言已经过时,我们很难再找到熟悉这些语言的同学。”鲁云龙说,“而且旧代码缺乏严谨的架构,不容易理解。在已有的代码上缝缝补补,还不如推翻重写来得有效率。”

钟兴鸿还透露了新版Helper将会带来的一些变化:除了致力于恢复网关等失效已久的各功能之外,他们还会根据学生们的反馈,完善树洞、课表等功能,让Helper成为更加具有实用性和创新性的App。些许遗憾的是,由于百讲购票功能涉及金钱交易,且和微信公众号“北大讲堂票务”功能重复,通过Helper购买百讲的演出票将永远成为历史。

“单纯地开发和完善功能、提升应用的稳定性显然是不够的,不然新版Helper就和校内信息门户没有差异了。”钟兴鸿发现,虽然现在的信息门户也可以很方便地查询成绩,不过不少同学们喜欢Helper中表示各科分数高低的‘颜色球’功能,仍然习惯通过Helper查成绩。他希望,新版Helper中类似“颜色球”这样新颖的细节可以呈现在更多的功能中,通过功能的差异化吸引更多的用户。

△钟兴鸿在测试新版iOS客户端中的课表功能;成绩查询中的“颜色球”功能

“我们对新版Helper的定位,就是这种不仅在功能上具有多样性,还在设计上具有独特性、不可替代性的在校生活工具。希望新版Helper上线之后,能够让Helper再次回到‘燕园生活必备App’的那个时代吧!”钟兴鸿说。

文中王潇弘为化名

阅读原文


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3