第四次部落格作業-結對專案
任務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