第二次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zjlg/rjjc |
这个作业的目标 | 实现一个命令行文本计数统计程序,能正确统计导入的txt文本中的字符数、单词数、句子数和导入的程序文件中的代码行、空行、注释行等 |
姓名-学号 | 程显凯-2022329301141 |
码云地址 | https://gitee.com/Cxk-123456/my-code-repository |
项目新的体会
需求分析与功能设计
在明确需求的基础上,我首先设计了程序的核心功能:统计字符数、单词数和句子数。通过分析常见的文本结构,我确定了字符、单词和句子的识别规则。例如,字符统计相对简单,但单词统计需要处理标点符号和换行符,句子统计则要判断句末标点符号。之后,通过扩展功能需求的分析,决定进一步统计代码行、空行和注释行等,为代码开发的实用性做了更好的优化。
命令行参数解析
为了确保用户能够方便地使用程序的不同功能,我采用Python的argparse库来解析命令行参数,并为每个功能模块设置了独立的参数标识符(如-c表示字符数统计,-w表示单词数统计)。这种设计思路让程序的使用体验更加直观且符合命令行操作习惯,也为后续扩展新功能提供了较好的扩展性。
代码管理与版本控制
按照作业要求,我在项目开发的每一个重要节点上都进行了代码的提交和版本更新,分别标记为v0.1(空项目)、v0.2(基础功能)和v0.3(扩展功能)。通过多次提交的方式,我在码云平台上记录了开发过程的各个阶段和功能迭代。这样不仅清晰地展示了项目的开发历程,还为未来的维护提供了历史记录。同时,在提交代码时,我也逐步规范了提交信息的书写,以便能够更直观地看到每次更新的内容。
代码测试与单元测试
针对每个主要功能模块,我编写了对应的单元测试,以验证统计结果的准确性。这一步骤让我更加熟悉了Python的unittest框架,同时也认识到测试在确保代码稳定性和可靠性方面的重要性。通过添加更多的测试用例(如特殊符号、空行、注释符号等),我在开发过程中能够及时发现潜在问题并加以修复。此外,单元测试的编写也让我学会了如何构建更模块化的代码,以便于测试和复用。
性能测试与优化
为了进一步提高程序的执行效率,我使用了IDE提供的性能测试工具,对不同功能模块的性能表现进行了分析。这一步骤让我意识到在大文本文件上执行统计操作时,处理方式的优劣对执行效率的影响。例如,通过优化正则表达式的使用和减少多余的文件读取次数,我成功降低了程序的运行时间。这让我理解到代码优化不仅仅是为了提高速度,还可以改善用户体验,特别是在大文件处理场景下。
文档编写与代码规范
在项目开发完成后,我编写了README.md文档,详细说明了项目简介、使用方法、文件说明、运行示例和测试结果。这让我认识到良好的文档不仅能帮助用户理解和使用程序,还能提高团队协作开发中的沟通效率。此外,通过对变量命名、注释编写等方面的规范化处理,我提高了代码的可读性和可维护性,也为后续的迭代和维护奠定了良好基础。
总结与反思
这次项目让我从项目构思、代码实现、单元测试到性能优化中逐步理解了开发流程的完整性和系统性。在实际编码的过程中,我也遇到了诸如正则表达式匹配复杂文本、多功能整合与代码模块化等问题,通过学习与探索,这些问题最终得以解决。这个项目不仅提升了我的编程能力,更让我认识到细节在软件开发中的重要性。通过这个实践经验,我相信未来在进行更复杂的项目时,我会更加从容并且富有创造性地解决各种问题。
总之,这次项目让我学到了很多,未来的开发中我也会更加注重代码的可读性、可维护性和用户体验的优化。