第三次作業——Wordcount結對程式設計
阿新 • • 發佈:2018-11-08
結對程式設計作業
合作者: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.系統測試
輸入
輸出
總結:通過這次結對程式設計讓我們知道了,兩個人敲程式碼的好處多多,開始可能不夠默契,漏洞百出,但隨著兩人合作的時間變久,程式碼的質量有著顯著的提高,一個人發現不了的問題,另一個人不一定發現不了,一個人解決不了的問題另一個人可能一眼便知,在結對程式設計過程中,重要的是兩人需要有一份自己的規約,並且在程式設計時一同去遵守,這樣才能做出高質量的軟體。