第一个个人项目——论文查重
作业属于的课程 | https://edu.cnblogs.com/campus/gdgy/cse2021
---|:--😐---:
作业要求 | https://edu.cnblogs.com/campus/gdgy/cse2021/homework/12254
作业的目标 | https://edu.cnblogs.com/campus/gdgy/cse2021/homework/12254
GitHub代码 | https://github.com/666-3334/3120004743
一、PSP
| Personal Software | Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | ||
| · Estimate | · 估计这个任务需要多少时间 | 360 | 660 |
| Development | 开发 | ||
| · Analysis | · 需求分析 (包括学习新技术) | 20 | 30 |
| · Design Spec | · 生成设计文档 | 20 | 20 |
| · Design Review | · 设计复审 | 15 | 15 |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 20 | 10 |
| · Design | · 具体设计 | 20 | 40 |
| · Coding | · 具体编码 | 360 | 660 |
| · Code Review | · 代码复审 | 100 | 20 |
| · Test | · 测试(自我测试,修改代码,提交修改) | 100 | 197 |
| Reporting | 报告 | ||
| · Test Repor | · 测试报告 | 100 | 30 |
| · Size Measurement | · 计算工作量 | 20 | 20 |
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 | 20 |
| · 合计 |
二、设计与分析
我是提前在网上搜一些关于论文查重的实现,但搜出来的大多数的Java实现,还有就是python,但考虑到我学的方向是前端,就想用前端的语言来写,但看了好久还是没看到JavaScript实现的文章,后面才想到,Node.js就是类似后台的Java,所以开始用node.js搜索,但也寥寥无几,只能自己去看算法实现的过程,所以就花费的挺多时间。
1、引用的node.js包

参考的算法:SimHash算法及海明距离
2、定义的方法

3、单元测试
应该是我代码逻辑的问题,单元测试暂时还无法完成,只能自己人工测试了~


遇到的问题:执行异步任务时,数据无法像同步函数那样直接获取,但网上的办法还没找到合适的可以改过来的,导致mocha测试至今还没搞定
解决思路:把读取文件的异步操作改为同步api,调用的其他函数不变,就勉强可以了

三、总结反思
这个项目最终实现起来代码数量不多,但涉及到的知识点很多都是之前没遇到过的,主要是算法及其实现,在这个用node.js实现上面我花费了很多时间,其中还安装一个工具包我花了差不多一天,要学会更准确地搜索,还要再系统学习一下。
收获:
- 英语很重要,有时候运行出错先看提示会比直接复制搜更快,搜索引擎难搜出和你一样的问题,但看懂问题你可能更懂怎么去改
- 学习了一点GitHub的操作
不足: - 时间碎片化,任务实际时间算不出来,只是一个大概的估计,要加强时间管理

浙公网安备 33010602011771号