1. 程式人生 > >第四次部落格作業-結對專案

第四次部落格作業-結對專案

任務1:(5分)

在學習通上註明結對的成員對格式:四班龔豔飛-----四班羅雙奇

 

任務2:(95分)

結對的成員共同完成本次作業,撰寫部落格並將結對專案的程式釋出到github上

 

部落格的內容安排如下:

 

(1)提供你的結對成員的部落格連結地址(5分)

龔豔飛的部落格連結地址:https://www.cnblogs.com/gongyanfei/p/11723328.html

 

(2)結對成員對四則運算專案進行程式碼互審,並給出程式碼審查結果表

 龔豔飛的程式碼審查表(由羅雙奇完成)(10分)

 

 

 羅雙奇的程式碼審查表(由龔豔飛完成)(10分)

 

 

(3)選取其中一個成員的專案為基礎,進行結對程式設計。結對專案撰寫的部落格要求:(30分)

 

選擇為龔豔飛的專案為基礎進行結對程式設計。

 

(a)結合課堂講授內容,制訂一份2人共同遵守的程式碼編寫基本規範(至少包括註釋規範與變數命名規範)。

 

1)變數命名規則

1、儘量使用完整的英文描述符

2、採用適用於相關領域的術語

3、採用大小寫混合使名字可讀

4、儘量少用縮寫,但如果用了,必須符合整個工程中的統一定義

5、避免使用長的名字(小於 15 個字母為正常選擇)

6、避免使用類似的名字,或者僅僅是大小寫不同的名字

7、避免使用下劃線(除靜態常量等)

   

2)包( Package )的命名

Package 的名字應該採用完整的英文描述符,都是由一個小寫單片語成。並且包名的字首總是一個頂級域名,通常是 com、edu、gov、mil、net、org 等;

3)類( Class )的命名

類名應該是個一名詞,採用大小寫混合的方式,每個單詞的首字母大寫。儘量保證類名簡潔而富於描述。使用完整單詞,避免縮寫詞。

4)介面( Interface )的命名

基本與 Class 的命名規範類似。在滿足 Classd 命名規則的基礎之上,保證開頭第一個字母為 ”I”,便於與普通的 Class區別開。其實現類名稱取介面名的第二個字母到最後且滿足類名的命名規範;

5)異常( Exception )的命名

異常( Exception ) 通常採用字母 e 表示異常,對於自定義的異常類,其後綴必須為 Exception

6)方法( Method )的命名

方法名是一個動詞,採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。方法名儘可能的描述出該方法的動作行為。

7)引數( Param )的命名

第一個單詞的首字母小寫,其後單詞的首字母大寫。引數量名不允許以下劃線或美元符號開頭,雖然這在語法上是允許的。

 

一個很好的可遵循的有關注釋的經驗法則是:

1、一般概念

註釋應該增加程式碼的清晰度

保持註釋的簡潔

在寫程式碼之前或同時寫註釋

註釋出為什麼做了一些事,而不僅僅是做了什麼

 

2、註釋哪些部分

類:類的目的、即類所完成的功能。

介面:在滿足類註釋的基礎之上,介面註釋應該包含設定介面的目的、它應如何被使用以及如何不被使用。在介面註釋清楚的前提下對應的實現類可以不加註釋;

方法註釋:對於設定與獲取成員的方法,在成員變數已有說明的情況下,可以不加註釋;普通成員方法要求說明完成什麼功能,引數含義是什麼且返回值什麼;另外方法的建立            時間必須註釋清楚,為將來的維護和閱讀提供寶貴線索;

方法內部註釋:控制結構,程式碼做了些什麼以及為什麼這樣做,處理順序等,特別是複雜的邏輯處理部分,要儘可能的給出詳細的註釋;

引數: 引數含義、及其它任何約束或前提條件;

 

(b)描述結對程式設計的感受。

俗話說”三個臭皮匠,勝過一個諸葛亮”,兩人在做同一件事時,集思廣義發揮各自優點,可以使我分析更能切中要害。

所謂條條大路通羅馬,但最捷徑的路卻只有那麼幾個。在兩人不斷集思廣益和努力下,在錯誤中我們尋找到了正確的方向,使用更加簡潔更加高效的程式碼實現程式目的。

 

相互督促可以使我們都能集中精力,更加認真的工作,比傳統的孤膽英雄式開發要高效不止一個臺階。比如我們一個人,按照共同完成的活動圖去程式設計,完成一小段邏輯後,另外一個人會馬上給出意見,說出程式碼存在的潛在問題,這個潛在的問題,很可能是因為我們當時對專案理解存在偏差造成的。很可能這個時候我們要對設計進行改動以適應專案。

任何一段程式碼都被兩雙眼睛看過,兩個腦袋思考過,程式碼的質量會得到有效提高。

 

“三人行必有我師”,相互學習對方的技能,可以提升自己水平。

 

(c)結對場景照片

 

 

 

(4)結對專案程式設計要求:(40分)

對結對專案首先完成程式碼規範和設計規範的修改,其次完成專案增加的需求,最後將完成的專案提交到github上,給出github的連線地址,可以給出簡單的設計說明。

地址連結:https://github.com/playeroflife/20194720/blob/master/demo

 

增加的需求:

 

(a)考慮資料異常處理問題,如在輸入題目生成範圍的資料時,輸入了“abc“等字元資料,程式如何處理。

 private static void writeExpressionsToFile(ArrayList<String> expressionList) {
        File file = new File(FILE_NAME);
        try (FileWriter fileWriter = new FileWriter(file)) {
            fileWriter.append(STUDENT_NO);
            for (String expression : expressionList) {
                fileWriter.append(NEW_LINE);
                fileWriter.append(expression);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

 

 

(b)增大算式生成數的範圍(如整數存不下的數),程式如何處理。

&n