下一章 上一章 目录 设置
7、第七章 2018年大三上学期 放手 同组做项目 ...
-
大三上学期开学。
老师上课的时候说,这节课的最终考核是以小组为单位做出一个项目。
然后老师发了小组组队名单。
周叙白和林晚,被分到了一组,另外两个是陆沉和唐亦舟。
四个人约在食堂碰面。陆沉先开口:“我考研,没时间搞这个,你们看着办吧。”他说得挺坦然,筷子夹了块红烧肉放进嘴里,嚼完了才补了一句:“名字挂我就行。”
唐亦舟也说自己听课都听不懂,要给他分可以,但只能是小的,还要他们俩给辅导,要不然他做不了。
他说“辅导”的时候,语气特别自然,好像这本来就是他该做的事一样。
林晚低头喝了口汤,没说话。
周叙白“嗯”了一声,说“行”。
那顿饭就这么散了。
后半段课正式做项目。陆沉照例说“我考研”,唐亦舟照例说“我不会”。周叙白没说什么,约了时间地点——图书馆三楼,靠窗的位置。
林晚到的时候,其他几个人都已经在了。周叙白面前摊着一台笔记本电脑。
她走过去,在他对面坐下。
“你想做什么方向?”他问。
“排课系统。”她说,“用遗传算法。”
“可以。”
林晚从包里拿出一本A4大小的本子翻开,推过去。
“界面我想做这种风格。简洁,留白多,不要用太花的颜色。”
周叙白看了一眼。
里面好几页都画满了线框草图——每页上排着几个页面的骨架,黑白的,方框代表模块,几道灰线代表文字,按钮的圆角、图标的轮廓也都用铅笔轻轻勾了出来。旁边写了不少手写备注,留了几处橡皮擦过的痕迹,有的地方铅笔线叠了两层,像是改过又补了一笔;间距、字体大小也都标了注释。虽然是草图,但模块排得齐,留白也稳,看得出她提前把整个系统的骨架都过了一遍。
“审美不错。”
林晚嘴角动了一下,不知道算不算笑。“先一起把功能和页面定下来,哪里不合适我再改。”
周叙白点点头,“行,先过功能。”
他指着第一页的方框,“这个登录页放最前面没问题,但课程浏览是不是应该紧跟着?用户进来第一件事就是看课。”
林晚想了想,把那一页往后翻了一格,“有道理,调过来。”
他又翻到排课结果那页,“导出功能放这里会不会太靠后?排完课用户可能想直接导出。”
她拿过铅笔,在旁边补了一个小箭头,“那我加个快捷入口,排完直接弹导出按钮。”
对面陆沉和唐亦舟凑在一块儿,屏幕上开着游戏界面,时不时爆出一声“卧槽这都能输”。
周叙白抬眼扫了一下,对陆沉说,“换一下。”
陆沉愣了愣,起身让开。周叙白坐过去,椅子往林晚这边靠了靠。
林晚余光扫了他一眼,没挪开。
铅笔在纸上沙沙地走,橡皮擦了又画,画了又擦。
两个人头不知道什么时候越挨越近。
林晚忽然意识到,肩膀几乎碰到他的,笔尖顿了一下。她没抬头,不动声色地往另一边挪了半寸,笔尖落回纸上,把刚才画歪的那个箭头重新描了一遍。
周叙白像没察觉,只把本子翻回登录页那页,指尖点在那个登录框上。
“登录放第一页没问题,”他说,“接下来是课程浏览,再到排课结果,最后导出。”
林晚“嗯”了一声,拿过铅笔在他点过的地方旁边补了两笔,把登录页和排课结果页的箭头重新理顺。
周叙白顺着她画的箭头又翻了一遍,从登录到课程浏览,再到排课结果和导出,几页纸的顺序都顺了。
“功能也基本齐了。”他说,“页面就这样。”
林晚点点头。
周叙白打开自己的笔记本,新建了一个空白文档。
他在文档里敲了几行字,推到她面前:“我负责登录、权限、排课引擎,你那边的基础信息、课表展示、导出,你看看行不行。”
林晚扫了一眼,点点头:“行。”
分工定完,他把项目文件夹搭了起来,顺手建了个接口文档。林晚凑过去看,俩人对着屏幕商量着填——路径怎么命名、参数放哪、返回什么格式,先定个规矩。
数据库是全局的,没法分。两人头挨着头,周叙白新建了个Excel,先把要用的表名一个个敲进去——用户表、课程表、教师表、教室表、排课结果表。
敲完,周叙白问:“先理哪个?”
“用户表吧。”林晚说。
两个人对着那一行行讨论:学号、姓名、角色、密码……周叙白敲,林晚在旁边看,觉得少了就补一个,觉得不对就让他删掉。
理完一张,就切到下一个sheet,继续下一张。
键盘声很轻,噼里啪啦的,像雨点打在窗台上。
公共表理完,他开始梳理排课引擎的流程。过了一会儿,把屏幕转过来一点:“排课引擎我找了个GitHub上的开源项目,文档是英文的,你先看看。”
林晚扫了一眼,满屏英文。她看得不算快,有些术语要停下来猜,但大致意思能捋出来。她没说什么,点点头。
周叙白把屏幕转回去,继续敲。
她低头翻自己的本子,把刚才讨论过的页面顺序又过了一遍,铅笔在旁边补了几笔。
窗外的光线慢慢暗下来,图书馆的灯一盏盏亮了。
周叙白合上电脑,“今天就到这儿吧,剩下的明天继续。”
林晚收拾好本子,四个人一起往外走。到门口的时候,他说“走了”,往另一个方向拐了。
回到宿舍,洗漱完躺下,摸过手机看了一眼。
群里多了几条消息。
周叙白发了一份排课引擎说明(中文),附了一句:白天那份英文的,我顺手翻了个简版,先看看,明天好对。
陆沉:“收到。”
唐亦舟:“收到+1。”
林晚盯着那句“明天好对”看了几秒,把文档存进了收藏夹。
窗外有人路过,走廊灯的光从门缝底下漏进来一条。她放下手机,闭上了眼。
这天下午,林晚在写课表展示的页面。
另外两人没有来。
周叙白坐在对面,敲排课引擎的逻辑。
阳光从窗户斜进来,落在桌角。
前几天她先画了登录和基础信息两页的效果图——都是那天一起定好的线框稿。画完导出psd,发给周叙白一份。各写各的模块,前端后台都自己搞定。这两页写得差不多了,她又接着画了课表展示和排课结果,画完接着写。就这样一轮一轮地来,图出一批,代码跟一批。
快五点的时候,脚步声停在她桌边。
不是周叙白。
“林晚?”
她抬头。许意站在桌边,手里拎着一个纸袋。
“许意。”林晚放下鼠标。
许意笑了笑,目光扫了一眼对面的空座位:“周叙白呢?”
“他去洗手间了。”
“哦。”许意点点头,把纸袋放在桌上,“给他带的饭。他晚上还有课,来不及吃。”
“好。”林晚说。
许意没走。她拉开旁边的椅子,坐下来,翻开一本书。
林晚继续画图。
但注意力散了。
她能感觉到许意坐在旁边——翻书的声音、偶尔的呼吸,还有纸袋里透出的饭菜香,都若有若无地飘过来。
十分钟后,周叙白回来了。
他看见许意,脚步顿了一下,然后走过去。
“你怎么来了?”
“给你送饭。”许意抬头看他,语气很自然,“你晚上还有课,怕你饿。”
“……谢谢。”
“快吃吧,凉了。”
周叙白拿起纸袋,看了林晚一眼,“我先回去了。”
“嗯。”
他走后,许意也跟着站起来,朝林晚笑了笑:“那我先走啦。”
“好。”
门关上了。
图书馆安静下来。
林晚盯着屏幕,光标还在闪。她没动。过了很久,她才继续敲键盘。可那一页代码,她写了三遍。
又过了几天。
林晚在宿舍刷朋友圈。
许意发了一条朋友圈:“和某人一起上晚自习。”
配图是教室窗外的夜景,窗玻璃上倒映着两个人的影子,靠得很近。林晚看了三秒,然后划走。她把手机放在枕边,关了灯。
项目还在继续,他们也还常在图书馆碰面,但林晚开始换座位。她不再坐他对面,而是选了斜后方、隔了两排书架的位置。
周叙白没问,只是每次把接口文档发给她时,附一句:“这里改了,你看一下。”
她回:“好。”没有多余的字。
许意还是来,有时候送饭,有时候叫他回去吃饭。每次她来,林晚就低头写代码,不抬头,也不搭话。许意也不找她。
但有一次,许意走之前,在林晚桌边停了一下。
“林晚,”她语气很随意,“叙白最近老不按时吃饭,你跟他一起做项目,看到的话帮我提醒他一下啊。”
林晚的手指在键盘上停了一秒。
“嗯。”
“谢啦。”许意笑了笑,转身走了。
她走的时候带了一下门,图书馆重新安静下来。
项目结束那天是周五。
他们约在图书馆做最后检查。林晚到得早,选了靠窗的老位置。周叙白来了,坐在她对面,只说了一句:“最后一遍了。”
“嗯。”
之后他们没再说话,只有很轻的键盘声。阳光从窗户斜进来,落在桌面上。
林晚盯着屏幕,忽然开口:“项目交了吧。”
“嗯。”
“以后不用这样了。”
周叙白敲键盘的手停了一下:“什么?”
“不用每天来图书馆,不用写文档,也不用……”她顿了顿,“不用这样。”
他没说话。过了几秒,只回了一个字:“好。”
“我先走了。”
“嗯。”
她站起来往外走,走到门口时停了一下,却没有回头,推开门走了出去。外面是秋天,风很凉。
她站在图书馆门口深吸了一口气。秋风吹过来,凉意从领口钻进去,她却没有缩脖子。
那些藏在代码、文档和图书馆座位里的心事,终于可以在这里轻轻放下了。
她以为事情会这样冷下去。
那之后他果然没再找她。
那年的除夕夜,没有新年快乐。
过完年,林晚去了成都。在宽窄巷子附近一家老茶馆做短工,帮忙摆碗、添水、收拾竹椅。某个下午,她在茶馆里拍了一张照片——一碗担担面,红油浮在面上,花生碎和肉臊堆在中间,旁边一杯盖碗茶,背景是模糊的竹椅和掏耳朵的人。没有配文字。
周叙白在卧室刷到,点了一个赞。
林晚没看到那个赞。她也没再点开朋友圈。