结对编程代码分析
作者:互联网
代码分析:
队友的代码主要是将几个老师新创了一个类,并用一个grade来判别年级类型。然后在主程序new新建9个老师,并用有参构造方法,然后添加到一个LIST容器里面。然后根据输入的值进行出题,如果输入了一个张三1,123,那么会用容器进行判断相等,并得到该名字,这个名字同时也是后面出题的依据,因为张三1这个会作为出题的文件夹,该作者也是用了这一点。在出题的方法里面,队友他用了很好的随机数SecureRandom和Date。他对操作符,操作数都用了随机数,至于转换为txt文档,就用的输出流。同时,对于是不是产生括号也是用随机数进行判断,这是很好的一点,但是队友的代码里面最多产生一对括号,或者不产生。
代码点评:
①优点:
- 队友用了接口和多个不同的类,代码可迭代性高,新增功能容易,需要改动的地方少,充分解耦。同时也实现了基本功能,生成的题目符合基本要求。(如上图)
2.队友在对括号的算法上有点巧妙,他在一个地方生成一个左括号之后,有个brackets数字进行加1,如果为1,为了防止冲突的情况发生,他把右括号打在了最后一个位置,否则就不打括号。这样就实现了括号的写法的情况。(如上图)
3.主程序非常简洁,把尽量多的方法写到了其他类里面,这一写法让代码整体看起来简洁,易懂。(如上图)
②缺点:
1.有些地方缺少关键性注释,基础不好的人不一定能看懂。还有就是没有严格按照驼峰命名法的要求命名,但还是合理使用了英文意思,可圈可点。
2.缺少了一些功能,例如:切换的功能,按照题意的说法是可以一个老师切换为其他年级的老师进行出题的,但是队友代码没有展示这个功能。(如上图)
3.队友缺少了最后判断某个老师有没有重复题目的情况,虽然按照队友的写法,各个情况都是随机的,出现这种情况的可能性虽然较小,但是还是有可能出现,这个算是一个非常微不足道的漏洞。
总结:
队友的代码总体上来说非常不错,很简洁(相比我而言),可读性较高,算法设计较为巧妙,但是某些功能不够完善。通过阅读他人的代码,对我自己也有很大的启发,增强了自己对于java基本语法的属性程度,同时也看到了和同班同学之间的优缺点,取长补短,互相进步。
标签:结对,老师,代码,编程,括号,队友,如上图,出题 来源: https://www.cnblogs.com/sanmuya/p/16689792.html