1. 程式人生 > >第三次作業——Wordcount結對編程

第三次作業——Wordcount結對編程

閱讀 buffered utf 技術分享 ace 代碼規範 巴巴 src write

結對編程作業

合作者:201631083106,201631063412

作業鏈接:https://gitee.com/monkeyjb/WordCount/blob/master/src/WordCount.java

代碼規範

本次代碼使用Java編寫,經過網上查閱各個公司代碼規範後決定規範參考阿裏巴巴公司 java 規範,通過對其規範的閱讀後,認為該規範比較合適,故拿來使用。

阿裏巴巴Java代碼規範官方網站:https://github.com/alibaba/p3c

作業內容

本次作業的主要目的是對上次Wordcount作業的功能進行拓展,並對各項功能實行測試,運用課上學習的單元測試,代碼互審,靜態代碼審查等技術,對代碼進行較全面的測試。


1.代碼互審

通過對彼此代碼的檢查後發現其中有部分代碼規範不同,並對代碼做了縮進等修改,並制定了相對屬於兩個人的代碼規範。

經過修改後的代碼如下:

public static void main(String[] args) {
        String fileName;
        String outFile=null;
        for(int i=0;i<args.length;i++){    
        switch (args[i]) {
        case "-c":
            fileName=args[i+1];
            getCharCount(fileName);
            System.out.println(fileName
+",字符數:"+getCharCount(fileName)); break; case "-w": fileName=args[i+1]; getWordCount(fileName); System.out.println(fileName+",單詞數:"+getWordCount(fileName)); break; case "-l": fileName=args[i+1]; getLineCount(fileName); System.out.println(fileName
+",行數:"+getLineCount(fileName)); break; case "-o": outFile=args[i+1]; writeToFile("test.txt", outFile); System.out.println("寫入成功!"); break; } } } //獲取字符數量的方法 public static int getCharCount(String fileName){ int count=0; String line; try{ BufferedReader bf=new BufferedReader(new FileReader(fileName)); while((line=bf.readLine())!=null){ count+=line.length(); } bf.close(); }catch (Exception e) { e.printStackTrace(); } return count; } //獲取單詞數量的方法、 public static int getWordCount(String fileName){ int count=0; String line; try{ BufferedReader bf=new BufferedReader(new FileReader(fileName)); while((line=bf.readLine())!=null){ String[] strings=line.trim().split(" |,"); count+=strings.length; } bf.close(); }catch (Exception e) { e.printStackTrace(); } return count; } //獲取總行數的方法 public static int getLineCount(String fileName){ int count=0; String line; try{ BufferedReader bf=new BufferedReader(new FileReader(fileName)); while((line=bf.readLine())!=null){ count++; } bf.close(); }catch (Exception e) { e.printStackTrace(); } return count; } //將結果寫入文件的方法 public static void writeToFile(String fileName,String outFile){ try{ BufferedWriter bw=new BufferedWriter(new FileWriter(outFile)); bw.write(fileName+",字符數:"+getCharCount(fileName)); bw.write("\r\n"); bw.write(fileName+",單詞數:"+getWordCount(fileName)); bw.write("\r\n"); bw.write(fileName+",行數:"+getLineCount(fileName)); bw.close(); }catch (Exception e) { e.printStackTrace(); } }

2.系統測試

輸入

技術分享圖片

技術分享圖片

輸出

技術分享圖片

總結:通過這次結對編程讓我們知道了,兩個人敲代碼的好處多多,開始可能不夠默契,漏洞百出,但隨著兩人合作的時間變久,代碼的質量有著顯著的提高,一個人發現不了的問題,另一個人不一定發現不了,一個人解決不了的問題另一個人可能一眼便知,在結對編程過程中,重要的是兩人需要有一份自己的規約,並且在編程時一同去遵守,這樣才能做出高質量的軟件。

第三次作業——Wordcount結對編程