作业要求
| 这个作业属于哪个课程 | 软件工程 |
|---|---|
| 这个作业要求在哪里 | 个人项目-论文查重算法 |
| 这个作业的目标 | 1、完成PSP表格。2、完成“论文查重算法”的设计并进行测试。3、代码签入Github中。 4、编写博客记录。 |
PSP表格
| PSP2.1 | 预估耗时(分钟) | 实际耗时 |
|---|---|---|
| 计划 | ||
| 估计这个任务需要多少时间 | 850 | 实际 |
| 开发 | ||
| 需求分析(包括学习新技术) | 400 | 实际 |
| 生成设计文档 | 100 | 实际 |
| 设计复审 | 100 | 实际 |
| 代码规范(为目前的开发制定合适的规范) | 80 | 实际 |
| 具体设计 | 200 | 实际 |
| 具体编码 | 400 | 实际 |
| 代码复审 | 60 | 实际 |
| 测试(自我测试,修改代码,提交修改) | 180 | 实际 |
| 报告 | ||
| 测试报告 | 180 | 实际 |
| 计算工作量 | 30 | 实际 |
| 事后总结,并提出过程改进计划 | 30 | 实际 |
| 合计 | 3410 | 实际 |
设计报告
一、代码规范
命名规范:
使用有意义的变量名和函数名,避免使用单个字符或不清晰的缩写。
使用小写字母和下划线(snake_case)或驼峰命名法(camelCase)来命名变量和函数。
遵循语言特定的命名约定,如Java中的类名以大写字母开头。
缩进和格式化:
使用一致的缩进风格,通常是4个空格或一个制表符。
代码块应该按照一致的方式缩进,以提高可读性。
使用一致的空格、换行和大括号的排列方式来格式化代码块。
注释和文档:
在关键部分和复杂代码块添加注释,解释代码的目的和工作原理。
使用自动生成文档的工具(如Sphinx或Javadoc)来生成代码文档。
为函数和类提供文档字符串,描述其输入、输出和用途。
避免魔法数字和硬编码:
避免直接在代码中使用魔法数字,而应该将它们定义为常量或枚举值。
将重要的常量或配置值保存在配置文件或环境变量中,而不是硬编码在代码中。
异常处理:
在适当的情况下使用异常处理来处理错误和异常情况,而不是忽略它们。
避免捕获所有异常,应该只捕获你可以处理的异常。
模块和包:
将代码分为模块和包,以提高可维护性。
使用命名空间来组织代码,避免全局变量和函数的滥用。
版本控制:
使用版本控制系统(如Git)来管理代码的版本,确保代码历史可追踪。
遵循版本控制的最佳实践,如提交有意义的注释和分支管理。
单一职责原则:
每个函数、类或模块应该只负责一个具体的任务,遵循单一职责原则。
测试:
编写单元测试和集成测试,以确保代码的正确性。
使用自动化测试框架来运行测试套件,以及确保代码修改不会破坏现有功能。
代码审查:
进行代码审查,让其他团队成员检查你的代码,提供反馈和建议。
主动参与团队中的代码审查,以提高整体代码质量。