一、编码标准
- 编程标准包含:具有说明性的名字、清晰的表达式、直截了当的控制流、可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性。
下面是没有最基本的缩进的一个程序:
public class CodeStandard {public static void main(String [] args){StringBuffer buffer = new StringBuffer();buffer.append('S');buffer.append("tringBuffer");System.out.println(buffer.charAt(1));System.out.println(buffer.capacity());System.out.println(buffer.indexOf("tring"));System.out.println("buffer = " + buffer.toString());if(buffer.capacity()<20)buffer.append("1234567");for(int i=0; i
在IDEA中选中Code→Reformate Code,将代码按IDEA的规范缩进,看起来就好了很多:
Code菜单中除了Reformate Code外,还有很多实用的功能。个人觉得比较好用方便的是Move Line Down(Alt+Shift+↓)和Move Line Up(Alt+Shift+↑),用快捷键更方便。
任务二:下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例
搭档编写的Complex类如下:
根据她的代码编写ComplexTest,加入不少于三个单元测试用例,代码如下:
package week9;import junit.framework.TestCase;import org.junit.Test;import static org.junit.Assert.*;/** * Created by lxkj on 2017/5/4. */public class ComplexTest28 extends TestCase { Complex c1 = new Complex(0.0, 3.0); Complex c2 = new Complex(-1.0, -1.0); Complex c3 = new Complex(-5.0, 2.0); @Test public void testAdd2(){ assertEquals(new Complex(-2.0,-2.0),c2.ComplexAdd(c2)); //自加 // assertEquals(new Complex(-1.0,2.0),c2.ComplexAdd(c1)); // assertEquals("-5.0+5.0i", c1.ComplexAdd(c3).toString()); assertEquals("-1.0+2.0i", c2.ComplexAdd(c1).toString()); // assertEquals("-1.0+2.0i", c1.ComplexAdd(c2).toString()); } @Test public void testSub2(){ assertEquals("7.3+0.3999999999999999i", new Complex(2.3,2.4).ComplexSub(c3).toString()); assertEquals("2.0 -1.0i", c2.ComplexSub(new Complex(-3.0,0.0)).toString()); } //普通减法 @Test public void testMulti2(){ assertEquals("-5.0+4.0i", c3.ComplexMulti(new Complex(1.0,2.0)).toString()); } //自乘 @Test public void testDiv2(){ assertEquals("1.5+4.0i", c3.ComplexDiv(c2).toString()); //自除 assertEquals("0.0", c1.ComplexDiv(new Complex(1.0,0.0)).toString()); assertEquals("0.0", c2.ComplexDiv(c1).toString()); //边缘测试 }}
任务三:下载搭档的代码,至少进行三项重构
重构,是让我们在不为系统带来新的bug的前提下,使其更加易于阅读、易于维护和易于变更。
选择了搭档简易计算器的代码,重构如下:
package week11;/** * Created by DELL on 2017/5/2. */ public class Calc2 { public static void main(String [] args) { int result = 0; boolean flag=false; double out = 0; double a = 0, b = 0; if (args.length != 3) { System.out.println("Usage: java Calc operato1 operand(+ - * / %) operator2"); } //+ - x / 和%运算 int x, y; x = Integer.parseInt(args[0]); y = Integer.parseInt(args[2]); a = Double.parseDouble(args[0]); b = Double.parseDouble(args[2]); switch (args[1]) { case "+": result = add(x, y); break; case "-": result = Sub(x, y); break; case "X": out = Multi(a, b); flag = true; break; case "/": result = chu(x, y); break; case "%": result = yu(x, y); break; default: System.out.println("输入错误!"); break; } if (flag) System.out.println(args[0] + " " + args[1] + " " + args[2] + " = " + out); else System.out.println(args[0] + " " + args[1] + " " + args[2] + " = " + result); } public static int add(int x,int y){ return x+y; } public static int Sub(int x,int y){ return x-y; }public static double Multi(double x,double y){ return x*y; }public static int chu(int x,int y){ return x/y; }public static int yu(int x,int y){ return x%y; } }
运行结果如下:
任务四:以结对的方式完成Java密码学相关内容的学习,结合重构、git、代码标准等
我和搭档在学习Java密码学相关内容之后,选择了RSA算法。
经过重构之后的截图如下:
实验遇到的问题及解决方案
问题1: 把搭档的项目git clone下来之后,发现用自己的账号push到她的项目上之后就无法再次push到自己的项目上。
解决方案: git现实的错误提示是远程仓库有的更新本地没有,需要进行git中的rebase。rebase之后再点击VCS→Update Project,之后再进行git add,commit,push,就可以推了。
实验体会与总结
本次实验算是第一次的结对编程实验,和搭档在结对编程的过程中Git出现了各种各样的错误,在网上查找了资料,也去问过了同学,总算是解决了,也算为以后的结对编程路打下了一点基石。希望以后能做的越来越好吧。
我的码云项目链接:
搭档的码云项目链接:步骤 | 耗时 |
---|---|
需求分析 | 30min |
设计 | 35min |
代码实现 | 40min |
测试 | 30min |
分析总结 | 35min |