合作者学号:201631062205 201631062213
gitee网址:https://gitee.com/xiecangxing/wc/tree/ce1fe8f0c99de1957472a75a7d129123592d1f15
1.代码互审情况:在代码互审的过程中我发现我的小伙伴没有做命令符的保护,运行的时候有报错。还有就是因为题目中的需求写的很概括,我们俩实现的功能就有所不同。然后我们整合了两个人的代码,基本实现了多批量处理目录以及子目录下所有的符合条件的文件,输出他们的代码行/空行/注释行信息,以及单词的剔除。
2.模块分工:在这次编程过程中,我负责了遍历所有的符合条件的文件功能,还有剔除单词提取功能,小伙伴负责的是代码主要功能的实现,即,代码行,注释行,空行的功能实现,以及单元测试。
3.在上次作业的基础上,我们增加了以下几个方法:
FindAllFiles(string path,string searchstr) //遍历目录和子目录下所有符合条件的待处理文件
public void EmptyLine(string filePath) //文件中的空行数
public void CodeLine(string filePath) //文件中的代码行数
public void NoteLine(string filePath) //文件中的注释行数
public void ExceptWords(string filepath) //提取禁止搜索的单词
在整合代码后,我的搭档先进行了单元测试,截图如下:
然后由我进行遍历所有的符合条件的文件功能:
输入以下命令行wc.exe -s -a -w -c -l *.cs -o output.txt -e stopList.txt
遍历同目录以及子目录下所有的.cs文件,统计代码行/空行/注释行,单词数,字符数,总行数,并且剔除stoplist。txt中的单词stopList.txt中提出单词为:
最后输出结果:
我的总结:在这次的结对编程中,我的搭档帮助了我很多。在代码互审阶段,我发现我实现的功能并没有达到老师的要求,看了搭档的代码发现了自己思维的局限,在搭档的帮助下我基本实现了作业的要求功能。还有就是结对编程中命名规范很重要,规范的命名可以帮助我们在互审和整合代码阶段节省很多时间和避免一些bug。这样编程的效率就会大大提高。我觉得结对编程是一个非常好的互相学习的机会,可以学习搭档编程中的优点,发现并改正自己的缺点,两个人可以互帮互助,共同进步。