標籤:
一、實驗內容
1. XP基礎
2. XP核心實踐
3. 相關工具
二、實驗過程(本次實驗是在自己電腦上完成,沒有使用實驗樓)
(一)敏捷開發與XP
1.XP是以開發符合客戶需要的軟體為目標而產生的一種方法論
2.XP是一種以實踐為基礎的軟體工程過程和思想
3.XP認為代碼品質的重要程度超出人們一般所認為的程度
4.XP特別適合於小型的有責任心的、自覺自勵的團隊開發需求不確定或者迅速變化的軟體
一項實踐在XP環境中成功使用的依據通過XP的法則呈現,包括:快速反饋、假設簡單性、遞增更改、提倡更改、優質工作。
XP軟體開發的基石是XP的活動,包括:編碼、測試、傾聽、設計。
項目成員使用者成功執行XP活動的技術通過XP實踐來呈現,包括編程、團隊、過程相關的12條實踐
(二)編碼通訊協定
編程標準包含:具有說明性的名字、清晰的運算式、直截了當的控制流程、可讀的代碼和注釋,以及在追求這些內容時一致地使用某些規則和慣用法的重要性。
在Eclipse中使用快速鍵Ctrl+Shift+F可以按Eclipse規定的規範縮排。
標準格式
Java中的一般的命名規則有:
1.要體現各自的含義
2.包、類、變數用名詞
3.方法名用動賓
4.包名全部小寫,如:io,awt
5.類名第一個字母要大寫,如:HelloWorldApp
6.變數名第一個字母要小寫,如:userName
7.方法名第一個字母要小寫:setName
……
(三)結對程式設計
結對程式設計是XP中的重要實踐。
結對程式設計中有兩個角色:
駕駛員:寫設計文檔,進行編碼和單元測試等XP開發流程。
領航員:審閱駕駛員的文檔、駕駛員對編碼等開發流程的執行;考慮單元測試的覆蓋率;思考是否需要和如何重構;協助駕駛員解決具體的技術問題。
重點注意:有效地合作要做到對事不對人。
(四)版本控制
可以先用git status查看代碼狀態,顯示有未跟蹤的代碼,用git add <file>...添加,我們使用git add HelloWorld.*把要提交的檔案的資訊添加到索引庫中。當我們使用git commit時,git將依據索引庫中的內容來進行檔案的提交。這隻是在本地操作,關閉實驗環境會刪除代碼,如果想把代碼儲存到遠程託管伺服器中,需要使用git push,實驗完成前使用git push相當於完成儲存操作。
(五)重構
重構(Refactor)就是在不改變軟體外部行為的基礎上,改變軟體內部的結構,使其更加易於閱讀、易於維護和易於變更 。
1.重構的第一項功能就是Rename,可以給類、包、方法、變數改名字。
修改方法:用按一下滑鼠要改的名字,選擇Eclipse中菜單中的Refactor->Rename...
2.封裝類
選中某個需要封裝的類,如name, age, id類,然後Eclipse中菜單中的Refactor->Encapsulate Field
每次列印學生資訊都這麼寫代碼違反了DRY原則,造成代碼重複,正常的重構可以使用Eclipse中的Extract Method
修改軟體的目的:
1.增加新功能;
2.原有功能有BUG;
3.改善原有程式的結構;
4.最佳化原有系統的效能 。
一個完整的重構流程包括:
1.從版本控制系統程式碼程式庫中Check out code
2.讀懂代碼(包括測試代碼)
3.發現bad smell
4.Refactoring
5.運行所有的Unit Tests
6.往程式碼程式庫中Check in code
(六)實踐項目1. 以結對程式設計的方式編寫一個軟體,Blog中要給出結對同學的Blog網址,可以拍照展現結對程式設計情況,可以參考一下其他學校的作業2.記錄TDD和重構的過程,測試代碼不要少於業務代碼,Eclipse中refactor菜單下的重構技能不要少於5個3.團隊代碼要使用git在實驗樓中託管,要使用結對同學中的一個同學的帳號託管。4. 程式要有GUI介面,參考使用者介面和使用者體驗5.程式功能從豌豆莢遊戲中選擇一款用Java實現,注意:團隊之間項目不能有重複,課代表協調一下。6.實驗報告中統計自己的PSP(Personal Software Process)時間
本次實驗我們小組做的題目是設計貪吃蛇遊戲。
產品代碼如下:
虛擬碼:
1.設計一個行為30,列為50,由格子構成的院子
2.定義一條蛇和一個蛋,蛇吃掉一個蛋後則在院內任意地方隨機產生一個蛋。
3.蛇吃掉一個蛋則加5分
4.若碰到蛋則蛇的身體變長一格,遊戲繼續,啟動遊戲後若蛇碰到邊界或是自己的身體則遊戲結束。
遊戲運行結果如:
PSP時間統計
步驟 |
耗時 |
百分比 |
需求分析 |
25min |
8.2% |
設計 |
80min |
26.2% |
代碼實現 |
120min |
39.3% |
測試 |
55min |
18% |
分析總結 |
25min |
8.2% |
三、實驗收穫和總結
本次實驗難度係數較大,根據實驗指導書,前面的幾項任務都不太複雜,根據指導可以很容易實現,並且讓我們瞭解了如何快速正常化代碼的格式和重構的應用方法。但是對於最後的遊戲設計這個環節而言,我和我的搭檔意識到平時所學的java知識不足以完美地完成本次實驗,因此我借鑒了網上與貪吃蛇遊戲相關的代碼,認真研讀、理解代碼內容,並細心調試代碼,最終完成了本次實驗中難度最大的部分。在研究代碼的過程中,我對git的應用理解加深,熟練掌握這個工具後,對我們日後的編程學習大有裨益。同時,我們需要繼續深入學習有關java開發的知識,不能僅僅滿足於書本,也不能僅僅滿足於看懂代碼,更重要的是親手編寫代碼,在親身實踐中收穫更多。
四、結對同學blog地址:http://www.cnblogs.com/disturbia/
java實驗三實驗報告