任务 1:(5 分)
在学习通上注明结对的成员对格式: 四班龚艳飞 ----- 四班罗双奇
任务 2:(95 分)
结对的成员共同完成本次作业, 撰写博客并将结对项目的程序发布到 GitHub 上
博客的内容安排如下:
(1)提供你的结对成员的博客链接地址(5 分)
龚艳飞的博客链接地址:https://www.cnblogs.com/gongyanfei/p/11723328.html
(2)结对成员对四则运算项目进行代码互审, 并给出代码审查结果表
龚艳飞的代码审查表(由罗双奇完成)(10 分)
罗双奇的代码审查表(由龚艳飞完成)(10 分)
(3)选取其中一个成员的项目为基础, 进行结对编程. 结对项目撰写的博客要求:(30 分)
选择为龚艳飞的项目为基础进行结对编程.
(a)结合课堂讲授内容, 制订一份 2 人共同遵守的代码编写基本规范(至少包括注释规范与变量命名规范).
1)变量命名规则
1, 尽量使用完整的英文描述符
2, 采用适用于相关领域的术语
3, 采用大小写混合使名字可读
4, 尽量少用缩写, 但如果用了, 必须符合整个工程中的统一定义
5, 避免使用长的名字(小于 15 个字母为正常选择)
6, 避免使用类似的名字, 或者仅仅是大小写不同的名字
7, 避免使用下划线(除静态常量等)
2)包 ( Package ) 的命名
Package 的名字应该采用完整的英文描述符, 都是由一个小写单词组成. 并且包名的前缀总是一个顶级域名, 通常是 com,edu,gov,mil.NET,org 等;
3)类 ( Class ) 的命名
类名应该是个一名词, 采用大小写混合的方式, 每个单词的首字母大写. 尽量保证类名简洁而富于描述. 使用完整单词, 避免缩写词.
4)接口 ( Interface ) 的命名
基本与 Class 的命名规范类似. 在满足 Classd 命名规则的基础之上, 保证开头第一个字母为 "I", 便于与普通的 Class 区别开. 其实现类名称取接口名的第二个字母到最后且满足类名的命名规范;
5)异常 ( Exception ) 的命名
异常( Exception ) 通常采用字母 e 表示异常, 对于自定义的异常类, 其后缀必须为 Exception
6)方法 ( Method ) 的命名
方法名是一个动词, 采用大小写混合的方式, 第一个单词的首字母小写, 其后单词的首字母大写. 方法名尽可能的描述出该方法的动作行为.
7)参数 ( Param ) 的命名
第一个单词的首字母小写, 其后单词的首字母大写. 参数量名不允许以下划线或美元符号开头, 虽然这在语法上是允许的.
一个很好的可遵循的有关注释的经验法则是:
1, 一般概念
注释应该增加代码的清晰度
保持注释的简洁
在写代码之前或同时写注释
注释出为什么做了一些事, 而不仅仅是做了什么
2, 注释哪些部分
类: 类的目的, 即类所完成的功能.
接口: 在满足类注释的基础之上, 接口注释应该包含设置接口的目的, 它应如何被使用以及如何不被使用. 在接口注释清楚的前提下对应的实现类可以不加注释;
方法注释: 对于设置与获取成员的方法, 在成员变量已有说明的情况下, 可以不加注释; 普通成员方法要求说明完成什么功能, 参数含义是什么且返回值什么; 另外方法的创建 时间必须注释清楚, 为将来的维护和阅读提供宝贵线索;
方法内部注释: 控制结构, 代码做了些什么以及为什么这样做, 处理顺序等, 特别是复杂的逻辑处理部分, 要尽可能的给出详细的注释;
参数: 参数含义, 及其它任何约束或前提条件;
(b)描述结对编程的感受.
俗话说 "三个臭皮匠, 胜过一个诸葛亮", 两人在做同一件事时, 集思广义发挥各自优点, 可以使我分析更能切中要害.
所谓条条大路通罗马, 但最捷径的路却只有那么几个. 在两人不断集思广益和努力下, 在错误中我们寻找到了正确的方向, 使用更加简洁更加高效的代码实现程序目的.
相互督促可以使我们都能集中精力, 更加认真的工作, 比传统的孤胆英雄式开发要高效不止一个台阶. 比如我们一个人, 按照共同完成的活动图去编程, 完成一小段逻辑后, 另外一个人会马上给出意见, 说出代码存在的潜在问题, 这个潜在的问题, 很可能是因为我们当时对项目理解存在偏差造成的. 很可能这个时候我们要对设计进行改动以适应项目.
任何一段代码都被两双眼睛看过, 两个脑袋思考过, 代码的质量会得到有效提高.
"三人行必有我师", 相互学习对方的技能, 可以提升自己水平.
(c)结对场景照片
(4)结对项目编程要求:(40 分)
对结对项目首先完成代码规范和设计规范的修改, 其次完成项目增加的需求, 最后将完成的项目提交到 GitHub 上, 给出 GitHub 的连接地址, 可以给出简单的设计说明.
地址链接: https://github.com/playeroflife/20194720/blob/master/demo
增加的需求:
(a)考虑数据异常处理问题, 如在输入题目生成范围的数据时, 输入了 "abc" 等字符数据, 程序如何处理.
- private static void writeExpressionsToFile(ArrayList<String> expressionList) {
- File file = new File(FILE_NAME);
- try (FileWriter fileWriter = new FileWriter(file)) {
- fileWriter.append(STUDENT_NO);
- for (String expression : expressionList) {
- fileWriter.append(NEW_LINE);
- fileWriter.append(expression);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
(b)增大算式生成数的范围(如整数存不下的数), 程序如何处理.
来源: https://www.cnblogs.com/playeroflife/p/11723137.html