1. 程式人生 > >20165329 實驗三 敏捷開發與XP實踐

20165329 實驗三 敏捷開發與XP實踐

重構 學習 mach static pre ima peak nts 基礎上

20165329 實驗三 敏捷開發與XP實踐

一、敏捷開發與XP實踐-1

實驗要求:

  • 在IDEA中使用工具(Code->Reformate Code)把下面代碼重新格式化,再研究一下Code菜單,找出一項讓自己感覺最好用的功能。提交截圖,加上自己學號水印。

    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<buffer.length();i++)
    System.out.println(buffer.charAt(i));
    }
    }

技術分享圖片

Code菜單的功能學習

  • Implement Methods(Ctrl+I)完成當前類 implements 的(或者抽象基本類的)接口的方法;
  • Override Methods(Ctrl+O)重載基本類的方法;
  • Generate(Alt+Insert)創建類裏面任何字段的 getter 與 setter 方法;
  • Reformat Code(Ctrl+Alt+L)將代碼按標準格式縮進;

二、敏捷開發與XP實踐-2

實驗要求

  • 在碼雲上把自己的學習搭檔加入自己的項目中,確認搭檔的項目加入自己後,下載搭檔實驗二的Complex代碼,加入不少於三個JUnit單元測試用例,測試成功後git add .; git commit -m "自己學號 添加內容";git push;提交搭檔項目git log的截圖,包含上面git commit的信息,並加上自己的學號水印信息。

技術分享圖片

三、完成重構內容的練習,下載搭檔的代碼,至少進行三項重構,提交重構後代碼的截圖,加上自己的學號水印。提交搭檔的碼雲項目鏈接。

重構(Refactor),就是在不改變軟件外部行為的基礎上,改變軟件內部的結構,使其更加易於閱讀、易於維護和易於變更 。

搭檔代碼(https://gitee.com/BESTI-IS-JAVA-2018/5308/blob/master/src/question.java)

interface SpeakHello{
    void speak();
}

public class questio {
    public static void main(String[] args) {
        HelloMachine machine = new HelloMachine();
        machine.turnOn(new SpeakHello() {
            public void speak() {
                System.out.println("hello,you are welcome!");
            }
        });
        machine.turnOn(new SpeakHello() {
            public void speak() {
                System.out.printf("??");
            }
        });
    }
    class HelloMachine{
        protected void turnOn(SpeakHello hello){
            hello.speak();
        }
    }
}
  • 以上代碼結構存在以下問題

  • 類名不符合命名規則;
  • 語句結構不方便閱讀;
  • 不能從靜態上下文中引用非靜態;

技術分享圖片

四、以結對的方式完成Java密碼學相關內容的學習,結合重構、git、代碼標準等

簡單實現凱撒密碼

技術分享圖片

代碼鏈接(https://gitee.com/BESTI-IS-JAVA-2018/5329hjw/tree/master/)

20165329 實驗三 敏捷開發與XP實踐