极限编程(Extreme Programming,XP)是一种全新而快捷的软件开发方法。XP团队使用现场客户、特殊计划方法和持续测试来提供快速的反馈和全面的交流:html
XP特别适合于小型的有责任心的、自觉自励的团队开发需求不肯定或者迅速变化的软件
XP软件开发的基石是XP的活动,包括:编码、测试、倾听、设计。java
public class CodeStandard { public static void main(String [] args){ StringBuffer buffer = new StringBuffer(); buffer.append('S'); buf fer.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<buffer.length();i++) System.out.println(buffer.charAt(i)); } }
编程标准使代码更容易阅读和理解。编程标准包含:具备说明性的名字、清晰的表达式、直截了当的控制流、可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性。git
Settings ->Plugins -> Browse repositories...
——安装alibaba编码规约扫描
不规范的地方,有中文提示而且定位到了行,alibaba把问题分为block/critical/major三个等级。根据报错提示,进行了修改。算法
Code->Reformate Code
从新格式化以后
编程
Code->Surround with...
功能很好用,例如咱们想改变本身代码的部分逻辑结构,加个if语句,直接用这个功能就行了,先选择范围Surround后
app
提交搭档项目git log的截图,包含上面git commit的信息,并加上本身的学号水印信息。ide
public class Complex { double RealPart; double ImagePart; public Complex(){} public Complex(double R,double I){ RealPart=R; ImagePart=I; } public boolean equals(Complex a){ if(a.RealPart==this.RealPart&&a.ImagePart==this.ImagePart){ return true; } else { return false; } } public String toString(){ return "Complex{"+RealPart+","+ImagePart+"}"; } }
Complex: public class Complex { double RealPart; double ImagePart; public Complex(){} public Complex(double R,double I){ RealPart=R; ImagePart=I; } public boolean equals(Complex a){ if(a.RealPart==this.RealPart&&a.ImagePart==this.ImagePart){ return true; } else { return false; } } public String toString(){ return "Complex{"+RealPart+","+ImagePart+"}"; } Complex ComplexAdd(Complex a) { return new Complex(this.RealPart + a.RealPart,this.ImagePart + a.ImagePart); } Complex ComplexSub(Complex a){ return new Complex(this.RealPart - a.RealPart,this.ImagePart - a.ImagePart); } Complex ComplexMulti(Complex a){ return new Complex(this.RealPart*a.RealPart-this.ImagePart*a.ImagePart, this.ImagePart*a.RealPart+this.RealPart*a.ImagePart); } Complex ComplexDiv(Complex a){ double change = a.RealPart*a.RealPart + a.ImagePart*a.ImagePart; Complex b = new Complex(a.RealPart / change, - a.ImagePart / change); return this.ComplexMulti(b); } } ComplexTest: public class Complex { double RealPart; double ImagePart; public Complex(){} public Complex(double R,double I){ RealPart=R; ImagePart=I; } public boolean equals(Complex a){ if(a.RealPart==this.RealPart&&a.ImagePart==this.ImagePart){ return true; } else { return false; } } public String toString(){ return "Complex{"+RealPart+","+ImagePart+"}"; } Complex ComplexAdd(Complex a) { return new Complex(this.RealPart + a.RealPart,this.ImagePart + a.ImagePart); } Complex ComplexSub(Complex a){ return new Complex(this.RealPart - a.RealPart,this.ImagePart - a.ImagePart); } Complex ComplexMulti(Complex a){ return new Complex(this.RealPart*a.RealPart-this.ImagePart*a.ImagePart, this.ImagePart*a.RealPart+this.RealPart*a.ImagePart); } Complex ComplexDiv(Complex a){ double change = a.RealPart*a.RealPart + a.ImagePart*a.ImagePart; Complex b = new Complex(a.RealPart / change, - a.ImagePart / change); return this.ComplexMulti(b); } }
git push
git log
完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上本身的学号水印。提交搭档的码云项目连接。工具
refactor->Rename
给类、包、方法、变量更名字refactor->Encapsulate Field
封装Source->Generate toString()toString()
方法refactor->Extract Method
提炼出重复的代码单元测试
class xmnew { private int num; private String name; private int java; public int getNum() { return num; } @Override public String toString() { return "xmnew{" + "num=" + num + ", name='" + name + '\'' + ", java=" + java + '}'; } public void setNum(int num) { this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getJava() { return java; } public void setJava(int java) { this.java = java; } } public class xmnewTest { public static void main(String[] args) { studentdark student = new studentdark(); student.setName("caoge"); student.setNum(5312); student.setJava(94); System.out.println("学号为"+ student.getNum() +",姓名为"+ student.getName() +"java成绩为"+ student.getJava()); } }
提交学习成果码云连接和表明性成果截图,要有学号水印。学习
KeyGenerator kg=KeyGenerator.getInstance("DESede");
FileOutputStream f=new FileOutputStream("key1.dat"); ObjectOutputStream b=new ObjectOutputStream(f); b.writeObject(k);
FileInputStream f=new FileInputStream("key1.dat"); ObjectInputStream b=new ObjectInputStream(f); Key k=(Key)b.readObject( );
Cipher cp=Cipher.getInstance("DESede");
cp.init(Cipher.ENCRYPT_MODE, k);
该方法包括两个参数,第一个参数指定密码器准备进行加密仍是解密,若传入Cipher.ENCRYPT_MODE则进入加密模式。第二个参数则传入加密或解密所使用的密钥,即第1步从文件中读取的密钥对象k。String s="Hello World!"; byte ptext[]=s.getBytes("UTF8");
byte ctext[]=cp.doFinal(ptext);
FileOutputStream f2=new FileOutputStream("SEnc.dat"); f2.write(ctext);
https://gitee.com/SANFENs/Teamwork