實驗三 敏捷開發與XP實踐

實驗三 敏捷開發與XP實踐

課程:JAVA程序設計

班級:1652班

姓名:丁奕

學號:20165211

指導教師:婁嘉鵬

實驗日期:2018.4.28

實驗名稱:敏捷開發與XP實踐

實驗內容及要求:1.安裝alibaba 插件,解決代碼中的規範問題。

2. 在碼雲上把本身的學習搭檔加入本身的項目中,確認搭檔的項目加入本身後,下載搭檔實驗二的Complex代碼,加入很多於三個JUnit單元測試用例

3. 完成重構內容的練習

具體實驗步驟及問題

(一)安裝alibaba 插件,解決代碼中的規範問題。

alibaba插件安裝:Setting->Plugins->Brows repositories...->搜索alibaba->Install安裝java

完成後效果:安全

代碼規範:app

Code--->Reformat Code將代碼格式標準化,代碼效果以下:單元測試

以爲最方便的功能:Code->Generate,能夠直接新建文件(以下圖),也能夠在文件中新建代碼學習

(二) 在碼雲上把本身的學習搭檔加入本身的項目中,確認搭檔的項目加入本身後,下載搭檔實驗二的Complex代碼,加入很多於三個JUnit單元測試用例

同伴代碼
測試

已添加的測試用例
加密

提交過程:插件

Git--->Commit File
設計

(三)完成重構內容的練習

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

那哪些地方須要重構呢?就是有臭味道(Bad Smell)的代碼。

在IDEA中也有一個refactor菜單

較爲典型的就是重複的代碼Duplicated Code,下圖是我摘錄的圖片

图片描述信息

對同伴的代碼進行代碼重構:

重構前代碼展現:

發現的代碼問題有:

  1. 代碼格式不規範
  2. 命名不符合規定
  3. if-else討論中,順序不符合思考邏輯

重構後代碼效果

(四)密碼學題目練習

我和同伴參考了老師的博客後,決定選擇MD5做爲嘗試的代碼進行加密。Md5加密是一種極爲安全的加密方法,原本覺得會有很大的難度。但在老師的博客中已經給出了詳細的過程

java.security包中的MessageDigest類提供了計算消息摘要的方法,

首先生成對象,生成MessageDigest對象MessageDigest m=MessageDigest.getInstance("MD5");

執行其update()方法能夠將原始數據傳遞給該對象傳入須要計算的字符串
m.update(x.getBytes("UTF8" ));

而後執行其digest( )方法便可獲得消息摘要, 計算消息摘要
byte s[ ]=m.digest( );

處理計算結果

string result=""; String result=""; for (int i=0; i<s.length; i++){ result+=Integer.toHexString((0x000000ff & s[i]) | 0xffffff00).substring(6); }

如下是咱們編寫的代碼:

import java.security.MessageDigest;

public class MD5 {
    public static String MD5(String key) throws Exception {
        byte[] cipher = key.getBytes();
        MessageDigest clear = MessageDigest.getInstance("MD5");
        clear.update(cipher);
        byte s[] = clear.digest();
        StringBuffer str = new StringBuffer();
        for (int i = 0; i < s.length; i++) {
            int a = ((int) s[i]) & 0xff;
            if (a < 16) {
                str.append("0");
            }
            str.append(Integer.toHexString(a));
        }
        return str.toString();
    }

    public static void main(String args[]) throws Exception {
        String str1 = new String("dingyi");
        System.out.println("原始:" + str1);
        System.out.println("MD5後:" + MD5(str1));
        String str2 = new String("kongyue");
        System.out.println("原始:" + str2);
        System.out.println("MD5後:" + MD5(str2));
        String str3 = new String("abc");
        System.out.println("原始:" + str3);
        System.out.println("MD5後:" + MD5(str3));
    }
}

實驗心得及體會

在本次實驗中,我認識到了代碼的規範性的重要。在現實中,好的代碼的功能效率都會大大增長,在代碼規範性的實驗中,我也認識到了,本身將以前寫C的代碼時習慣帶進了Java的編寫中,不少時候,代碼格式就不規範了,在以後要積極矯正。

在本次實驗中,我還認識到了,在Java的學習中,團隊協做是有很大做用的。在跟隊友一塊兒編寫代碼時,個人隊友會提出一些我沒有想到過的問題,打開咱們的知識盲點,一步一步的探索,也是頗有意義的。

步驟 耗時 百分比
需求分析 15min 11.1%
設計 30min 22.2%
代碼實現 45min 33.3%
測試 20min 14.8%
分析總結 25min 18.5%
相關文章
相關標籤/搜索