软工第四次作业

             软件工程第四次作业

Part1.Fork仓库地址

GiT地址 克隆地址
结对伙伴 陈攀文
学号 201831061111
博客链接 地址

Part2.PSP表格

软工第四次作业_第1张图片

Part3.计算接口与的设计与实现

在程序实现功能上,我主要完成 统计最多的十个单词及词频这个功能。

  • 功能分析:
    由于我是用 java 实现的,于是一拿到这个需求时,我就想到了可以使用 java 中 map 这种数据结构,来实现对单词和词频的存储,因为 map 这种数据结构是 键—值 形式,可以用键来存储单词,用值来存储单词出现的次数,这样就完美达到要求了。

  • 遇到的问题:
  1. 想用 map 这种数据结构存储数据,首先我需要拿到一个单词的集合,
  2. map 存储数据的顺序是按照先遇到那个单词就先存储那个数据,要是两个单词的次序相同,无法满足按照字典顺序来依次存储
  • 解决办法:
    1.和结对队友商量,在他获取完单词数后,返回一个 List 集合给我处理
    2.使用 collections 这个类的 sort 方法,自定义比较顺序,第一次先通过值比较顺序,第二次通过键来比较顺序

  • 最终结果:
    解决了问题,并且还熟悉了 collections 类的 api 使用方法。

Part4.代码复审

使用的文档规范参考的这篇博客:https://blog.csdn.net/qq_33764491/article/details/79129014
主要使用的是前面几个常用的规范

通符审阅队友代码不符合规范的地方:

  • 通常接口部分不添加权限修饰,但是队友的代码接口上加了 public 修饰
  • 有小部分代码过于臃肿,挤在一起,不好阅读,没有明显的空行
  • 在 try catch代码中的 finally 一般不使用 return 语句

值得学习的地方:

  • 每个结接口都有对应使用用途说明
  • 每个可能出现异常的地方都使用了 try catch,而不是直接 throw
  • 对于代码较长的地方都标注了注释

Part5~.6性能改进和单元测试以及异常处理说明

  • 其他部分

此次代码编写我主要做审计和部分功能实现,所以其中一些部分我是辅助结对队友完成,在这里就引用队友博客数据 https://www.cnblogs.com/nyima/p/11644814.html#4384272

Part7.结对过程

描述:

结对编程确实可以学习到很多东西,相比于一个人,对于功能代码,我可以想怎么修改就怎么修改,但是有队友后我需要想的更全面一些,因为队友会使用我提供的接口来完成相应的工作,同时在遇到问题时,可以互相讨论,互相借鉴思路,已到达更好的完成程序设计,让我切实感觉到了1+1>2.
软工第四次作业_第2张图片

你可能感兴趣的:(软工第四次作业)