项目 | 内容 |
---|---|
课程班级博客连接 | 2019级卓越工程师班班级博客 |
作业要求链接 | 软件工程结对项目 |
我的课程学习目标 | 1:体验软件项目开发中的两人合作,练习结对编程(Pair programming)。2:掌握Github协作开发软件的操作方法。 |
这个作业在哪些方面帮助我实现学习目标 | |
结对方学号-姓名 | |
结对方本次博客作业链接 | |
本项目Github的仓库链接地址 |
1:缩进:可以使用Tab键以及2、4、8等空格。依据不同是编程语言,使用不同的缩进方式。
2:行宽:对行宽进行同一设置。
3:括号:用括号清楚的表明逻辑优先级。
4:断行与空白的{}行:主要是在多层循环中规范使用。
5:分行:不要把多条语句放在一行上,更不要把多条变量语句放在一行上。
6:命名:命名能够表明变量的类型及相应的语义,简洁易懂。
7:下换线:合理使用来分隔变量名字中的作用域标注和变量的语义。
8:大小写:多个单次组成的变量名,用大小写区分,例如著名的驼峰式命名法。
9:注释:能够很好的解释程序是做什么的(what),以及为什么这样做(why)。
1:函数:能够很好的完成一件事。
2:goto:函数最好有单一的出口,可以使用goto。
3:错误处理:预留足够的时间,使用的方法包括参数处理和断言。
4:c++类的处理:类、classvc.struct、公共/保护/私有成员、数据成员、虚函数、构造函数、析构函数、new和delete、运算符、异常处理、类型继承。
1:自我复审:用同伴复审的标准来要求自己。不一定最有效, 因为开发者对自己总是过于自信。如果能持之以恒,则对个人有很大好处。
2:同伴复审(最基本):简单易行。
3:团队复审:有比较严格的规定和流程,适用于关键的代码,以及复审后不再更新的代码。覆盖率高——有很多双眼睛盯着程序,但效率可能不高。
结编同伴 | 201971010222-刘转弟 |
---|---|
评论链接 | 刘转弟软件个人项目 |
评论内容 |
对方GitHub仓库地址链接 | liuzhuandi-刘转弟 |
---|
项目 | 说明 |
---|---|
概要部分 | |
代码符合需求和规格说明么? | 基本符合,功能大致完成 |
代码设计是否考虑周全? | 考虑比较周全,还可以 |
代码可读性如何? | 尚可 |
代码容易维护么? | 不易维护 |
代码的每一行都执行并检查过了吗? | 是 |
设计规范部分 | |
设计是否遵从已知的设计模式或项目中常用的模式? | 没有 |
有没有硬编码或字符串/数字等存在? | 没有,采用的变量名符合代码规范 |
代码有没有依赖于某一平台,是否会影响将来的移植? | 没有,对移植影响较小 |
开发者新写的代码是否用已有的Library/SDK/Framework中的功能实现? | 是 |
在本项目中是否存在类似的功能可以通过调用而不用全部重新实现? | 不确定 |
有没有无用的代码可以清除? | 有 |
代码规范部分 | |
修改的部分符合代码标准和风格么? | 大致符合 |
具体代码部分 | |
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? | 已处理 |
参数传递有无错误,字符串的长度是字节的长度还是字符的长度,是从0开始计数还是从1开始计数 | 无错误;字符的长度;从0开始 |
循环有没有可能出现死循环? | 没有 |
有没有使用断言来保证我们认为不变的条件真的得到满足? | 没有 |
有没有优化的空间? | 有 |
数据结构中有没有用不到的元素? | 有 |
效能 | |
代码的效能如何?最坏的情况是怎么样的? | 效能可以 |
代码中,特别是循环中是否有明显可优化的部分? | 有 |
对于系统和网络的调用是否会超时?如何处理? | 无超时 |
可读性 | |
代码可读性如何?有没有足够的注释? | 关键地方注释少,阅读困难 |
可测试性 | |
代码是否需要更新或创建新的单元测试? | 是 |
在本次结对项目编程中,体会到了1+1>2的效果。在项目编程中发挥了各自的优点,同时也通过开发了解到了各自的不足,深深感受到了合作编程的好处!