关于写文章的软件 第十三届软件杯A6金蝶赛道(国一)参赛总结与经验分享
一、前言1.自我介绍
我是来自某中流985的一名准大四学生,面临着保研的问题。出于打比赛加综测分的目的,报名了第十三届中国软件杯,在三个多月的不懈努力下,终于斩获了国家级一等奖。从保研边缘人(就算能保研,也大概率是校企联培)逆袭,成功跻身稳保学硕的行列。这一切都要感谢中国软件杯这个平台为我提供的宝贵机会。
2.为什么要写这篇文章?
在比赛的初期,我花了大量时间搜集信息,但无奈网上对于软件杯的参赛经验实在少之又少,在此感谢这篇文章的up主,为我提供了关于比赛情况的宝贵信息和一些很有用技巧。也感谢这篇文章: 的博主,为我提供了一些关于金蝶赛道的很宝贵的经验。他们都有着优良的开源精神。为此我也决定效仿他们,分享一下我们队伍备赛的整个过程,以及我个人对于软件杯以及金蝶赛道的经验与理解,同时也是对我这几个月的软件杯征程的一个记录,即时你不打算报名金蝶赛道,也不妨参考一下。
另外,由于这是本人第一次写这种文章,而且文字功底有限,如果有某些表达不清,词不达意的地方,还请各位多多谅解。
二、关于软件杯以及金蝶赛道1.关于软件杯:
“中国软件杯”大学生软件设计大赛(简称“大赛”)是由工业和信息化部、教育部: 教育部/?=和江苏省人民政府: 江苏省人民政府/?=共同创办的面向中国高校在校学生(含高职)的纯公益性软件设计大赛。这里是软件杯的官网链接:
由于比赛规模大、周期长,且含金量较高,软件杯受到了许多高校的认可,并被纳入综测加分和学分认证的范围。如果你先在正为综测分而苦恼,并且这个比赛恰好就在你们学校的加分认定列表之中,不妨了解一下软件杯这个比赛,它可能就是你保研之路的最后一块拼图。而且这个比赛不仅没有报名费,还有奖金,国一一个队伍税后是8000块,加分之余还可以赚一些零花钱,性价比很高。
2.关于金蝶赛道
本届软件杯金蝶赛道本科组的赛题为:A6-智慧校园-基于金蝶云苍穹GPT的AI原生应用: , 高职组的赛题为:B4-基于信创环境的一站式校友服务管理平台: ,都是基于金蝶云苍穹低代码开发平台,利用金蝶提供的苍穹gpt,通过gpt任务流来将一个任务分解成若干个步骤,实现将gpt功能嵌入各种业务场景,以我们的作品——智能图书馆为例,可以通过一句话,生成一个借书的单据,或者通过gpt来进行书籍的模糊搜索等等。第十二届与第十一届软件杯金蝶赛道的优秀作品视频,可以在下面这个链接中观看: , 第十三届的作品视频后续应该也会发布。另外,我们有幸受到金蝶的邀请,正在制作基于我们团队参赛作品的智慧图书馆实战训练营课程,大家也可以多多关注。
3.金蝶赛道的特点与优势
首先,金蝶赛道的特点就是它完全基于金蝶低代码开发平台,前端基本通过拖拉拽实现。后端也不需要进行数据库的设计,只需要通过java语言编写各种插件。开发非常方便,平台的学习成本也很低。哪怕像我这种没学过java(完全通过c++的代码思路,再加上的辅助来编写java插件),前端也只看了一个三个小时的html入门视频 (就是这个视频),也能胜任各种功能的开发。所以如果你们队伍是软件开发的新手,想要感受一下一个项目开发的流程;亦或是你没有任何软件开发的经验,只想打个比赛卷一下综测;或者你们团队缺少前端选手,金蝶赛道都是你们的不二选择。
其次,金蝶赛道的参加人数相对比较多,这个比赛并不是人越多越卷,报名的人数越多,最后一二三等奖的数量也越多。可以看下上边发的链接里面,比较靠后边的国二的视频,你会发现他们做的也就是普普通通(不要被视频里面的工作量吓到,很多功能都是金蝶已经内置的),只要肯肝,是完全可以达到那个水平的,这个比赛的特点就是肝就有,不像那些算法比赛,有的题目不会就是不会。如果你有冲击国一的志向,今年和去年金蝶赛道都出了两个国一,比起那些人数较少,只能出一个国一的赛道,不确定性也会更小。比如今年的A3赛道,有我们学校的研究生大佬带着好几篇顶会来打,撞上了基本就无了。还有一些模型调优的赛道,每个队伍都有他们的思路,答辩的时候都说的天花乱坠,最后基本就是比答辩的效果和模型的性能。所以如果你平时更喜欢做各种项目,点子比较多,擅长创新,就很适合金蝶赛道这种偏传统开发的赛题。
还有就是金蝶赛道的人文关怀很好,很重视参赛选手的体验。在初赛过程中,会有赋能老师,布道师全程指导,回答参赛选手的各种问题,经常指导到深夜。在线下赛过程中,也会派专门的摄影师,小助手为参赛者拍照,采访,并进行照片直播。我们在等候答辩的时候,就有人问我照片是在哪里看的,我们说这是我们赛题特有的,他们感到非常羡慕。总之,参加金蝶赛道的体验还是非常好的。
三、参赛历程1.初赛
在四月份左右,我们决定在软件赛道试水,打算报名计算机设计大赛和软件杯两个比赛。但是我们一直以为设计大赛的截止时间是五月份,谁知校赛在几个月前就已经截止了,于是,软件杯成了我们的唯一选择和最后一搏。然后五一放假期间回家摆烂什么都没管,我们队长特别有干劲,结果我稀里糊涂地就一块报了金蝶的赛道,现在看来确实是最好的选择。
我们大概从5月10号左右开始初步的学习,中间经历了一些考试和比赛,5月26号左右才开始比较投入,每天大概的日程安排是10点半左右吃完早饭开始做,中午,晚上休息一下,做到晚上十点,十点之后打游戏放松一下。一开始,我们对金蝶的低代码开发模式不是很理解,遇到了一些困难,比如:不知道系统的界面应该在哪里做,单据是干嘛的,插件又是干嘛的。后来上手之后发现很简单:单据就相当于是对数据库的可视化操作,插件就是用来进行一些比如字段操作,前端控件控制的操作,前端的界面就通过动态表单,基于金蝶提供的各种控件,通过拖拉拽实现。各种控件的用法,金蝶都提供了详细的文档,非常方便。上手了之后,制作的效率就非常高,基本一两天就能实现一个比较完善的功能。大约6月10号左右的时候,我突然觉得这样下去不行,系统没有突出的亮点,很多业务流程也存在漏洞。于是我梳理了软件已经实现了的功能的情况,并写了一个项目中期的复盘总结,决定要做一些比较有特色的亮点功能。
我们做的第一个比较有特色的功能是思维导图生成,这个灵感是来源于我之前浏览过的一些gpt功能整合的网站,我先花了一番功夫,找到了生成思维导图的开源项目,可以通过格式的内容渲染出思维导图。然后我监督根据这个组件,创建了一个简单的界面,通过把他接入了苍穹。为了让效果更加炫酷,我还特意把gpt生成结果切分,分批次输入到组件里面,最后的效果确实还可以。最终我们根据我们项目的主题,把他做成了一个根据图书内容生成思维导图框架的功能,比较有特色。我们系统很多个亮点功能都是这样来的,先在已有的项目,作品里面看到一个不错的点子,然后根据我们的主题进行复刻与拓展。就这样,我们又陆陆续续实现了知识图谱,知识问答,日历渲染等等比较有特点功能。
我们制作的另一个思路就是——要做六边形战士,就是一个方面的功能,可以做的不深入,但是一定要有。比如通过参考去年的作品视频与答辩视频,我发现有的队伍考虑到了高性能的问题,有的队伍在某些地方有一些复杂的算法,有的队伍有很亮眼的硬件,然后评委在提问的时候还很重视安全性的问题。对此,我们的决定是:我全都要!每个地方我们都做了或多或少的内容,硬件这方面因为我们确实没人会,只实现了一个简单的摄像头,但是效果还可以,比较实用。这一策略在最终答辩的时候效果很好,向评委表达出了“我们什么都考虑到了”的感觉,这个给评委的感觉很重要。但是其实每个地方也没有很大的工作量,这个我在后面答辩策略的时候会详细讲一下。
到了大概七月份,我们的作品基本实现了完整的流程,有知识图谱,思维导图,渲染,人脸识别,扫码还书等比较有特点的功能,我们把demo视频发送给了几个金蝶的赋能导师,获得了一些正面的反馈,也收到了一些改进意见,让我们很有干劲。大概10号左右我们开始了初赛视频以及ppt的制作,视频我们下了很大的功夫,拍了好几天,力求一个比较好的展示效果。视频拍好之后,我们发给了大赛小助手钟哥,钟哥给出了很高的评价,于是我们信息十足。视频拍完后,还有几天时间,我们又做了一个在线阅读的功能,让整个演示的效果更好。拍完了视频,我们才发现,原来我们的作品已经完成度这么高了,有这么多特色功能。所以你看那些往届的优秀作品视频的时候,不要被他们的工作量所吓倒,只要投入地做上一个月,肯定会有所收获。
2.提交作品后~线下赛前
7月19号上交作品后,我们先休息了几天,然后因为对于我们作品的质量比较自信,大概25号左右又开始继续优化。因为我一直看我们的主页UI不顺眼,正好还没劲做新的功能,就花了几天优化主页的界面。我先在几个设计资源网站上面找到了一个不错的样例,就是下面这个:
然后参考这个做出了我们新的主界面,我认为一个好的前端是相对比较重要的,至少在评委看到你们的视频或者参赛作品的时候,第一眼就觉得跟别人很不一样,比较美观,能提升评委的第一印象。而金蝶的低代码开发方式也不必写一些html代码,只需要偶尔用生成一些css样式就可以了。
优化完UI之后,我觉得我们做的知识图谱比较单薄,因为它实际上的数据来源是一个开源中文知识图谱,和本次大赛的赛题不是很契合,只能起到一个亮眼的效果。于是我结合我在读冰与火之歌的时候记不住人物名字,结果中途放弃了的经历,做了一个根据书籍内容生成人物关系图谱的功能。同时我的队友也实现了一个书籍推荐的算法,并对扫码还书的功能进行了优化,可以实现批量新增图书。8月7号我们把优化后的作品又拍了一个视频发给了钟哥,最终这个视频在金蝶总部展出了。同时展出的视频一共有三个,我们也得以看到了其他两个队伍的优秀作品,感觉竞争非常激烈,有实力的对手非常多。同时我们发现很多队伍都做了知识图谱,所以我们决定再增加一个应用场景,就是利用gpt解析图书之间的关联,然后渲染一个书籍关系的知识图谱,把图谱的节点替换成书籍封面,然后利用传参交互实现点击封面跳到这本书的单据页面,最后的效果也非常好。同时队长又把苍穹内置的实现了,这两个功能成为了我们最后夺得国一的关键。这期间我们还实现了智能搜索,语音意图识别等功能。
在12号之后,我们决定停止作品的制作,开始准备答辩,具体包括宣传单,流程演示ppt,总答辩ppt,亮点视频,作品介绍,演示流程的排练。就这样,一直到20号,我们出发前往南京,开启我们的线下赛之旅。
3.一轮评审
决赛总共分为四天,20号是报道+调试环境,21号一轮评审,22号总决赛答辩,23号颁奖典礼。
20号因为我们没有什么可调试的,所以我们报完道,去评审现场熟悉一下环境,就回酒店继续排练了。晚上排练的时侯运气很好,修好了一个bug,因为这个bug,有一个功能在之前排练的时候总是时不时会坏掉,搞得我们提心吊胆。结果在评审前一天的晚上终于修好了,我们之后又试了几遍,都很完美,让我们信息大增。
21号是一轮评审,这一轮评比的形式是这样:首先所有队伍会坐在一个教室里边,然后评委会一个队伍一个队伍地去看,你要在评委面前演示你的作品,注意这里一定是实机演示,不可以纯讲ppt。然后在讲的过程中评委会问你问题,可能是问你们作品的某个功能是怎么实现的,数据从哪里来,也有可能会觉得你作品的某些方面存在问题,比如你这个数据是不是死的啊,你这个功能在现实使用中可能存在什么问题之类的。你要对这些问题进行回答(狡辩)。需要注意的一点是,每个队伍的时间只有15分钟,而且评委全程非常急,如果你演示的功能非常普通,评委会非常急躁并让你赶快跳过。所以你在这个阶段一定要把亮点功能放在前面,抓住评委的眼球。
我们为这一轮评审做的准备有:首先我们做了一个宣传册,里边放了一些我们作品的亮点功能,但是感觉评委不是非常感兴趣,这样做的也不止我们一支队伍。但是如果有两个作品质量非常接近,可能这个就是加分项。然后我们的演示方法就是两台电脑,一台放ppt,一台展示作品,这样的做法主要是考虑到,因为我们的作品主题是苍穹gpt在校园图书馆中的运用,一些涉及到gpt的功能肯定是需要时间去生成的,这样评委在等待的时候可以先让他们看ppt。其次就是如果有些地方生成失败了,也可以让评委看视频来补救一下。
我们被安排在了最后一个检查,在检查第一个队伍的时候,我和队友都去后面旁观了了,我们首先就是发现了这个队伍的一个策略:他们所有的gpt功能都是把结果存起来,然后调用的时候直接使用已经生成好的结果。这就导致他们所有的功能都不需要时间来生成,演示消耗的时间很短。第二个收获就是评委只想看你的亮点功能,普通的功能都是让你赶快跳过,而且如果你的队伍在比较后面进行评审,那可能有些功能做的队伍太多了,评委也不想看了。知道了两个信息之后,我们决定,将所有很费时间的功能提前弄出来,评委来了直接让他们看结果。
等到下午3点左右,终于轮到我们队伍了,我们开始了排练好的演示流程。我负责系统的操作,队长负责讲解,另一个队友负责放ppt。在演示第一个gpt功能的时候,弹了一个kimi模型链接失败的错误,从来没见过,我一下就汗流浃背了。但是我当时觉得应该是kimi自身的问题,又重新调用了这个功能,第二次调用就正常运行了。在演示到分析单本图书,生成一些图表和图书关系的知识图谱这么一个功能的时候,我给评委直接看我们生成好的结果,这里我怕评委觉得我们的功能是假的,特意跟他们说,如果你想看的话,我们可以现场生成一个,随便哪本书都行。评委真的随机挑了一本书,我们也当场给他们演示了这个功能。我觉得这下应该让评委对我们作品的印象很好。之后我们也顺利完成了作品的演示。这个过程中评委也是肉眼可见的急,他问了我们有关于图书数据量的问题,我给评委解释,刚说两句话他就打断我,说:“你不用解释原理,你就说有没有就完了。“ 然后有些比较普通的功能,评委也是很烦躁地让我们跳过。演示完成之后,我们觉得进总决赛应该没什么问题,演示的过程中也没出bug。
晚上回到酒店之后,我们开始写总决赛答辩演讲稿。这里我觉得如果对自己作品的质量比较有自信的话,还是提前准备比较好。因为ppt提交在这一天的晚上6点钟就截止了,你在写稿子的时候如果觉得ppt需要调整,也没机会改了,组委会不允许后续修改ppt。晚上11点多,我们如愿收到了晋级总答辩的通知,接下来就是最后一关了。
4.总决赛答辩
22号就是最终答辩了,这一轮我们还是最后一个出场。比起一轮评审,这个就比较有优势了,因为你可以提前看一下评委会问什么问题,但是感觉评委会尽量避免问一样的问题。上午看了一下别的赛道的答辩,发现看不太懂,因为太紧张了,也没拍视频。下午第一个答辩的就轮到了我们赛道。轮到我们的时候,评委一共问了我们5个问题:
我们的图书知识图谱在图书数量很大的时候是怎么处理的?
通过提升高并发情况下的性能,效果怎样?
为什么要弄图书知识图谱,和图书分类有什么区别?
通过提升高并发情况下的性能,是怎么进行测试的?
你们系统所谓的极简业务流程,有多极简。
全在我们的意料之中,而且评委在问我们第三个问题的时候,还跟我们说,有时候没必要用最先进的技术,比如人脸数据的加密,不要用AES这种特别复杂的加密方式,简单的加密方式就足够。氛围非常轻松,感觉评委对我们的答辩非常满意。结束的时候因为评委问得太多,已经超时了。下台的时候我们就几乎要开香槟了,因为其他队伍的表现都不是很完美。晚上果然接到电话,叫我们出人参加国一颁奖的彩排。就此,我们的软件杯之旅就画上了圆满的句号。
23号颁奖典礼,24号在南京转了一下就回学校了,这两天没什么说的,就是爽。