ASE个人项目的总结 by Yupeng Gu
ASE的个人项目刚刚结束。布置作业的时候交了一个预报告,大概估计了一下所需时间和代码数量等情况。现在做完之后翻出来那时做的计划,发现与实际相差甚远:
原以为是一个比较简单的题目,布置下来之后没花多长时间就把算法想好了,我也仿佛看到了那一行行写完的代码。而且在第二天就能够实现单个文件的统计了,期望小改动一下就可以完成任务,结果……
几个问题吧:
1、 时间问题:最初想的数据结构是最简单的线性链表,当时的想法是“先把简单的实现出来,有一个结果之后再往下做”,这样的后果就是——慢!一个小文件根本体现不出运行时间,到最后不得不改进数据结构。本想自己实现一个Hash函数,结果花了一天时间,程序还是有错,就放弃了改用STL里面的map,当然实际时间只能差强人意。可见实际产品中一定要考虑时间因素,不能仅仅因为理论上行得通就把它当作核心算法。
2、 代码健壮性:多个文件的统计会带来更复杂的数组、指针等,随着”new”, ”delete”等的不断增多,出错的情况也多了起来。很多错误根本不知道为什么会发生,由于文件量大、代码循环多等原因,总需要很多时间来调试,而且有些经过调试还是不能有效的解决。这个主要是因为编程能力不够,以后还要多动手写代码,多多积累经验。
3、 通配符问题:因为接收的第二个参数可以有子目录和通配符,这个以前没有做过,所以去网上查的资料。可是大多数都不work……少数work的还不满足所有要求。只能自己分析再改进。这个是原来预算没做到的,原以为这些只需要很短的时间就能搞定,结果子目录与通配符问题占了很长时间。
代码规范方面自认为做的还不错,可能error handling方面还需要改进,因为实际中遇到的错误肯定比预想的要更多更复杂,不能因为一个没想到会发生的错误导致整个程序崩溃。
——Yupeng Gu