心得体会
  我做每一件事都尽量做到最好,但是国创这各项目上真的力不从心,从一开始的成员变动,到后来每个队员都有更重要的事情去做,包括我自己也一样(因为数模比赛和出国的准备耽搁了好多),以至于到中期答辩我们还几乎没有进度。国创一年的时间很快就过去了,虽然断断续续地去完成国创项目,但是我最终还是学到了一些新的知识。
  首先要说的就是我在后台开发中使用的工具:python。很早就想学python了,一直没有机会。借国创的机会开始学习这门语言。接触之后很喜欢python的风格,包括语法还有各种容器非常方便的处理。尤其字符串的处理,比起以前做数模时用Matlab要方便太多。这次的后台用Flask框架去实现。Flask是一个使用Python编写的轻量级的Web应用框架。它使用简单的核心,用 extension 增加其他功能,文档丰富,用起来非常上手。Flask使用的数据库也是一个轻量级SQLite数据库,不需要在电脑上配置,数据仓库是一个.db的文件,可以方便转移。Flask框架中直接包含了服务器模块,只要app.run()就可以开启服务器,然后可以在终端查看运行情况。用Flask做后台比以前用的LAMP(Linux+Apache+MySQL+PHP)要简单很多(记得以前搭环境就用了一整天)。现在这样就可以专注于业务逻辑的实现,而不是环境的搭建。
  另外一件值得一提的事就是团队开发的一些经验:规范接口,设计文档真的很重要,这些事要在开发的初期就确定下来。按照软件体系结构的话来说,这些都是可修改性、可测试性的前提。因为往后所有的代码都是按照设计文档去实现的,如果没有设计文档想到什么写什么就会导致之后的代码混乱,不利于修改。这次开发,队友做安卓客户端,我负责服务器端,前后端使用HTTP协议通信。事先确定好了通信接口,然后各自实现各自的部分,最后在测试通信模块的时候没有什么问题。而且这对任务的分工也有很大的帮助,我们都尽力完成各自模块,不用去管对方的。然而我在写客户端的时候,没有详细的模块划分,没有画类图,完全凭脑子里的概念去实现,结果到测试时发现XML生成不对,于是费了好大功夫才改好,而且使得代码更加混乱了。所以我感觉项目不只有代码,就像《人月神话》中说的编程系统产品成本是程序的9倍,设计、约束文档还有后期的维护这些非代码的部分往往在整个开发过程中占到更大的比重。
  国创落幕,接下来还有好多考试、大作业,无休无止的生活啊。