20172314 2017-2018-2 《程序設計與數據結構》實驗報告三
阿新 • • 發佈:2018-05-30
XP ref 摘要 改善 解決 下載安裝 字母表 需要 img
(2)協同測試
在碼雲上把自己的學習搭檔加入自己的項目中,確認搭檔的項目加入自己後,下載搭檔實驗二的Complex代碼,加入不少於三個JUnit單元測試用例。
(3)重構
http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的內容替換成IDEA。
3、完成重構內容的練習,下載搭檔的代碼,至少進行三項重構,提交重構後代碼的截圖,加上自己的學號水印。提交搭檔的碼雲項目鏈接。
4、提交學習成果碼雲鏈接和代表性成果截圖,要有學號水印。
課程:《程序設計與數據結構》
班級: 1723
姓名: 方藝雯
學號:20172314
實驗教師:王誌強
實驗日期:2018年5月16日
必修/選修: 必修
1、實驗內容
(1)代碼規範
http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的內容替換成IDEA。
參考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安裝alibaba 插件,解決代碼中的規範問題。
在IDEA中使用工具(Code->Reformate Code)把指定代碼重新格式化,再研究一下Code菜單,找出一項讓自己感覺最好用的功能。
在碼雲上把自己的學習搭檔加入自己的項目中,確認搭檔的項目加入自己後,下載搭檔實驗二的Complex代碼,加入不少於三個JUnit單元測試用例。
(3)重構
http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的內容替換成IDEA。
(4)密碼學應用
參考 http://www.cnblogs.com/rocedu/p/6683948.html,以結對的方式完成Java密碼學相關內容的學習,結合重構,git,代碼標準。
2、實驗要求
1、提交截圖,加上自己學號水印。
2、測試成功後git add .; git commit -m "自己學號 添加內容";git push;提交搭檔項目git log的截圖,包含上面git commit的信息,並加上自己的學號水印信息。
4、提交學習成果碼雲鏈接和代表性成果截圖,要有學號水印。
3、實驗過程及結果
準備:下載安裝alibaba 插件。
實驗一
- 過程:
1、打開Settings
->Plugins
->Browse repositories...
2、在搜索框輸入alibaba
即可看到Alibaba Java Code Guidelines
插件,點擊Install
進行安裝
3、輸入原始代碼
4、右鍵點擊類名,再點擊編碼規約掃描
5、發現問題
6、點擊Code
下的Reformate Code
- 一般命名規則
- 要體現各自的含義
- 包、類、變量用名詞
- 方法名用動賓
- 包名全部小寫,如:io,awt
- 類名第一個字母要大寫,如:HelloWorldApp
- 變量名第一個字母要小寫,如:userName
- 方法名第一個字母要小寫:setName
- 結果截圖:
實驗二
- 過程:夥伴的代碼是直接復制粘貼的,沒有使用克隆,編寫Junit單元測試,幾個測試用例是類似的,git log是第一次使用。
- 需要測試的方法 有:
ComplexAdd()
,ComplexSub()
,ComplexMulti()
,ComplexDiv()
- 結果截圖:
實驗三
- 過程:我使用了 toString、 Rename、Generate getter,由於沒有找到組員的有問題的代碼,所以沒有什麽錯誤改正。
- 重構的目的:
- 增加新功能;
- 原有功能有BUG;
- 改善原有程序的結構;
- 優化原有系統的性能 。
需要重構的地方:代碼重復、方法過長、參數列過長、條件邏輯過度復雜、分支語句
結果截圖:
實驗四
- 過程:學習密碼算法,參考博客
- Java安全體系結構總共分為4個部分:
- JCA( Java Cryptography Architecture, Java加密體系結構):JCA提供基本的加密框架, 如證書、 數字簽名、消息摘要和密鑰對產生器。
- JCE( Java Cryptography Extension, Java加密擴展包):JCE在JCA的基礎上作了擴展, 提供了各種加密算法、 消息摘要算法和密鑰管理等功能。JCE的實現主要在javax.crypto包( 及其子包) 中
- JSSE( Java Secure Sockets Extension, Java安全套接字擴展包):JSSE提供了基於SSL( Secure Sockets Layer,安全套接字層) 的加密功能。 在網絡的傳輸過程中, 信息會經過多個主機(很有可能其中一臺就被竊聽) , 最終傳送給接收者, 這是不安全的。這種確保網絡通信安全的服務就是由JSSE來提供的。
- JAAS( Java Authentication and Authentication Service, Java鑒別與安全服務):JAAS提供了在Java平臺上進行用戶身份鑒別的功能。
- JCA( Java Cryptography Architecture, Java加密體系結構):JCA提供基本的加密框架, 如證書、 數字簽名、消息摘要和密鑰對產生器。
- 凱撒密碼算法:將字母表中的字母移動一定位置而實現加密。
- 具體步驟:
(1)根據凱撒密碼特性設計算法
(2)傳入需要計算的字符串
(3)處理計算結果
- 具體步驟:
- 結果截圖:
4、實驗中遇到的問題和解決過程
- 問題一:在做實驗二的時候,測試類總是出錯。
問題一解決:原因是在比較的時候沒有加toString,必須是兩個字符串型的才可以比較,改為如下就正確了。
assertEquals(new Complex(0,4).toString(),num1.ComplexAdd(num2).toString()
5、其他
這次的實驗學到了很多關於代碼的規範,一些方便的用法,感覺還是很實用的。
6、參考資料
- 實驗三 敏捷開發與XP實踐
20172314 2017-2018-2 《程序設計與數據結構》實驗報告三