个人项目总结
这回的个人项目是要求写一个统计词频的程序,除了要实现基本的功能外,还要文件读入,实现接口,进行单元测试。可以说虽然是一个很小的项目,但是麻雀虽小,五脏俱全。
当初刚听到这个任务的时候立刻就想到了直接用C#里的dictionary就能实现这个功能,然后文件读入和接口什么的也好说,就是单元测试没做过,正好利用这次机会学习一下。
整个项目写下来比较顺利,遇到C#语法上的问题查一下就能解决,除去单元测试的部分,其他的代码完成的很快。写完了拿测试数据跑了一下,发现跟给的样例结果有1%左右的偏差,时间上慢了40s左右。问了其他几个同学也有一些人跟样例结果不太一样,我就没继续在正确性上下功夫,转而去解决时间上的问题。通过VS自带的Analyze功能,我发现大部分的时间都花在了字符串处理上,于是改写了一些花费时间的地方,手写了系统的ToLower函数,使得时间上有了大幅的提高,基本上达到了样例所用的时间。解决了时间的问题,再去看正确性的问题。读了几遍代码后发现了一个之前也经常犯的错误,就是在循环结束时在某些结束条件下需要进行特殊处理,改过来之后就完全正确了。整个调试的时间大约是完成时间的三倍。
之后学习了一下单元测试,对我的程序也写了了一些测试,结果当然是全部通过了。
最后说一下估计的时间和完成的时间的差距。完成花费的总时间和估计的差不多,但是各个阶段对时间的分配就不太一样了,调试和测试比预计的时间长了很多,这也是项目开始时对可能遇到的问题估计不足导致的,以后要多注意。
总的来说这个项目很简单,就当是为结对项目和团队项目热身吧。
Yue Hu