本周4人的项目确定了下来,为了实现四则运算小游戏,我们决定将严一格用js实现的程序重新用java实现一下,于是在昨天晚上我们进行了结对编程中,我有如下一些体会:
- 当一个人在编程实现时,另一个人应该思考自己的解决方案,除非确定编程者存在错误时才能打断他,不然容易造成编程者思维混乱。
- 编程的人应该明确的说明自己每一步要干什么,不能只是自己默默的实现而忽视了让合作者了解自己的意图。
- 结对编程之前,两个人应该先交流对即将实现的问题的看法,而不是上来就急于开始编码实现。
- 两人表达需要明确,不能模棱两可。
总体而言,本次结对编程的效果并不是很好。上面就是我两结对的时候存在的一些问题,但是,我也发现了结对编程的一些好处,在实现过程中,两个人往往可以讨论出更合适的实现方法,在我进行编码实现的时候,严一格有时可以快速的找到我实现的一些漏洞,他还指出了我一个严重的缺点,喜欢一次实现整个功能而忽视对每个部分的单元测试,这些都使我受益匪浅。
接下来讨论一下我的词频统计,这次我决定再添加一些功能,具体如下:
主要功能:
已完成的功能:词频统计,常用词表生成
正在开发的功能:文档分类功能
用户类型:
需要分类文档的用户:输入需要分类的文档路径,得到文档的分类。
需要词频统计的用户:输入需要统计词频的文档路径,得到文档的词频统计分布曲线和柱状图。
需要生成常用词表的用户:输入需要生成常用词表的文档路径与保持常用词表的文件路径,常用词表将会存储到文件中。
实现方法:
文档分类需要大量训练数据,这部分数据需要手动添加,分类方法暂定为我自己实现的KNN分类器。可以预见的是时间和空间代价都会很高,根据效果可能以后会改用scikit-learn开源包中提供的别的分类器,词频统计和生成常用词表已经实现。本周主要实现了一个knn分类器,具体参见这篇随笔,计划下周完成分类功能。
关于编码规范,我在网上找到了google编码规范的中文版,感兴趣的同学可以参考一下。
最后是时间表:
开始时间 | 结束时间 | 净时间 | 活动 | |
3-23 | 11:25 | 16:51 | 326 | knn与kd树学习与python实现 |
3-23 | 17:51 | 19:16 | 85 | 写博客 |