这次课程设计从确定选题到初步实现功能,历时数周,现在回头看看,确实有不少东西值得记下来。刚开始拿到题目那会儿,心里挺没底的,感觉理论知识是一回事,真要把它们捏合成一个能运行的东西是另一回事。我和同组的同学商量了半天,最终定下了一个基于Web的简易信息管理系统,方向是明确了,但具体怎么下手,先做哪块后做哪块,还是一团乱麻。
动手之后才发现,计划赶不上变化。最开始我们想着把数据库设计得完美一些,表结构反复推敲,结果花了好多时间。等真正开始写后端接口的时候,又发现之前有些字段考虑不周,还得返工修改。前端页面也是,看着设计图挺简单,自己用代码实现起来,光是调整布局和样式就让进度慢了不少。中间有段时间特别焦虑,感觉每天都很忙,但回头一看好像没推进多少,小组开会的时候气氛都有点沉闷。
不过磕磕绊绊中,我们也摸索出一些门道。比如,不能再像以前写作业那样,一个人闷头干到底了。我们分了前端、后端和测试几个大致方向,每天下班前快速同步一下进度和遇到的问题,谁卡住了就一起商量。这样效率确实提高了,也不会有人掉队太远。还有一个深刻的体会就是,文档和注释太重要了。一开始为了赶进度,代码写得比较随意,过几天自己都看不懂了。后来我们强制要求关键步骤写注释,接口更新了马上更新共享文档,后期联调和修改的时候省了太多力气。
现在,系统的基本框架已经搭起来了,实现了用户登录、信息增删改查这些核心功能,页面也能正常跳转。虽然界面谈不上多精美,一些边缘情况下的错误处理也还不够完善,但看到自己从零开始搭建的东西能在浏览器里跑起来,心里还是很有成就感的。这不仅仅是一个作业,更像是一个从无到有的创造过程,把书本上的Servlet、JDBC、HTML、CSS这些名词,变成了一个真正可以互动的东西。
问题也暴露得很明显。最大的短板就是前期需求分析做得不够细,导致开发中途几次改动方案,浪费了时间。还有就是我们的代码结构比较臃肿,所有业务逻辑几乎都堆在Servlet里,后期维护肯定会很麻烦。老师提到的设计模式、分层架构这些概念,我们当时理解不深,没能很好地运用进去。测试环节我们做得也比较粗糙,主要是自己点点看功能是否正常,没有写系统的测试用例。
这次课程设计像是一次小型的项目预演,让我真切感受到了软件开发的流程和其中会遇到的典型问题。它逼着我把分散的知识点串联起来去解决实际问题,这个过程里学到的、反思的,比单纯听讲和看书要扎实得多。接下来如果还有时间,我想重点优化一下代码结构,把业务逻辑分离出来,再把一些计划中但因为时间关系没做的功能,比如简单的数据统计图表,尝试实现一下。这个阶段算是踉踉跄跄地走过来了,有收获,有教训,对“开发”这件事,总算有了点实实在在的体感。