两道随堂讨论题(陆遥)

由于工作原因,研讨时段请假,现补交作业。

 

讨论题一:阅读慕课中关于“生命游戏”的程序代码,尽可能完整清晰的描述代码的结构,评价一下代码的质量(从那几个角度?有哪些可以借鉴的优点?有哪些还可以改进的缺点?)

答:

一、代码结构描述

1.代码主要由mian.py、game_map.py、game_timer.py、llife_game.py四个Python文件构成。其中mian.py是主执行文件,通过调用其他三个文件中GameMap、GameTimer、LifeGame类下的函数来实现生命游戏的功能。

2.GameMap类下的函数:

(1)__init__(self, rows, cols):对地图进行初始化(行数和列数);

(2)rows(self)和cols(self):获取地图的行数和列数;

(3)reset(self, possibility=0.5): 重置地图并按possibility随机地填充一些活细胞;

(4)get(self, row, col)和set(self, row, col, val):获取细胞在地图上的具体方格,将细胞设定到地图的具体方格上;

(5)get_neighbor_count(self, row, col)和get_neighbor_count_map(self):获取一个方格周围和整个地图的活细胞数;

(6)set_map(self, new_map)和print_map(self, cell_maps=None, sep=' '):设置地图和打印地图。

3.GameTimer类下的函数:

(1)__init__(self, trigger, interval=1.0):对程序进行初始化,计时器以interval秒的频率触发trigger;

(2)start(self):启动计时器,之后将以 interval 秒的间隔持续触发;

(3)stop(self):停止计时器。

4.LifeGame类下的函数:

(1)__init__(self, map_rows=10, map_cols=10, life_init_possibility=0.5):对程序进行初始化;

(2)print_map(self):打印地图;

(3)game_cycle(self):进行一次游戏循环,并完成地图的更新。

 二、代码质量评价

1.角度

(1)代码的可维护性;

(2)代码的可读性;

(3)代码的规范性;

(4)代码的运行性能;

(5)代码的单元测试;

2.优点

(1)整个程序采用模块化设计,每个类分工明确,可维护性强;

(2)代码规范性好,层次分明;

3.缺点

(1)代码的注释较少,尤其是一些函数和关键语句,降低可读性;

(2)代码缺少必要的说明文档,降低可读性;

(3)以课程为例的单元测试还不够全面,代码覆盖率不够;

(4)程序缺少UI模块,无法呈现运行过程。

 

 

讨论题二:按照分组的配对关系,两人互相通过对方的代码仓库,对对方前面两周所提交的代码进行阅读和评审,从代码质量、完成情况、代码仓库的使用三个方面提出自己的看法。

答:

本人搭档为李肖华同学,他的代码仓库地址为:https://github.com/NemoNemo03/N-Stock

1.代码质量

代码质量总体较好,主要表现在以下几个方面:

(1)代码的规范性较好,层次清晰;

(2)代码注释规范,精炼,可读性强。

需要改进的方面:可以用更高级的字符串匹配算法来提升性能,也可以考虑加入三方库的使用。

2.完成情况

李肖华同学完成了单词检索程代码编写,生命游戏单元测试,单词检索单元测试,但是遗漏了计算器的代码。在LIFE_GAME文件夹下只有单元测试程序,今后类似情况,应该也将被测试的源程序也添加到文件夹里,以方便搭档查看。

3.代码仓库的使用

很好的发挥了代码仓库的优势,有上传记录,也有具体的commit,方便了搭档对编程进度和代码改动的了解。

 

posted @ 2020-03-13 19:17  Jarhead666  阅读(133)  评论(0)    收藏  举报