个人项目总结 By Xiao Li

个人项目总结

本次个人项目的内容是写一个统计英文词频的程序。这也是我第一次使用C#开发一个相对完整的程序,还是学到了不少东西,在这里总结一下吧。

首先给出我的项目预估时间和实际时间的对比:

Work Items

Time estimation

Time Actual

Size estimation

Size Actual

Due Date

Finish Date

Algorithm design

1 day

0.5 day

N/A

N/A

16-Aug

17-Aug

I/O Module

2 hours

1.5 hours

30 lines

15 lines

17-Aug

18-Aug

Kernel algorithm

0.5 day

3 day

50 lines

150 lines

21-Aug

23-Aug

Code Review

3 hours

3 hours

N/A

N/A

23-Aug

23-Aug

Testing and Debugging

0.5 day

1 day

N/A

N/A

24-Aug

24-Aug

 

可以看出,表面上虽然时间还是控制的比较好,但是对于核心算法的时间和代码量估计都远远不足;多出的时间实际是用加班来弥补的。因此我认为预估代码量以及时间的时候都不能过于乐观。

再说实现过程,虽然从最后结果来看,我的程序是所有C#实现的词频程序里最快的,但这中间也经历了几次大的改动。最开始我自己写了Trie树进行排序,但速度不能令人满意。与其他同学交流了一下以后,决定改用C#自带的Hashtable,速度得到了明显的改善。之后在检查代码的时候,意识到了自己之前写的Trie树不够完善,可以有很大的改善空间,于是就又将核心算法转回了Trie树,并取得了较好的效果。事实上,如果在动手写代码之前能够更好的规划自己的算法和数据结构,无疑会节省掉中间不停更改实现算法的时间,这也是我需要注意的问题。

总之,通过这一次个人项目的实践,我不仅练习了用C#开发项目的基本流程,并且对于如何设计和规划自己的项目有了更加深刻的认识。

posted @ 2012-09-07 20:02  smart-code  阅读(357)  评论(31编辑  收藏  举报