軟件=程序+軟件工程
軟件企業=軟件+商業模式html
XP是一種輕量(敏捷)、高效、低風險、柔性、可預測、科學並且充滿樂趣的軟件開發方式。java
XP軟件開發是什麼樣的經過 XP準則來表達:git
XP的法則:程序員
XP的活動:
編碼、測試、傾聽、設計。編程
根據實驗三 敏捷開發與XP實踐
在IDEA中使用工具(Code->Reformate Code)把下面代碼從新格式化,再研究一下菜單,找出一項讓本身感受好用的功能。提交截圖,加上本身學號水印。安全
public class CodeStandard { public static void main(String [] args){ StringBuffer buffer = new StringBuffer(); buffer.append('S'); buffer.append("tringBuffer"); System.out.println(buffer.charAt(1)); System.out.println(buffer.capacity()); System.out.println(buffer.indexOf("tring")); System.out.println("buffer = " + buffer.toString()); if(buffer.capacity()<20) buffer.append("1234567"); for(int i=0; i<buffer.length();i++) System.out.println(buffer.charAt(i)); } }``` ![](http://images2015.cnblogs.com/blog/1115797/201704/1115797-20170430005120053-1469429373.png) 按照教程中利用快捷鍵crtl+alt+I能夠將IDEA中代碼女自動縮進,按照命名格式命名代碼,是代碼格式規範方便閱讀。 ## 實驗二 在碼雲上把本身的學習搭檔加入本身的項目中,下載搭檔的Complex代碼,加入很多於三個JUnit單元測試用例,測試成功後git add .; git commit -m "本身學號 添加內容";git push; 提交搭檔項目中git log的截圖,並加上學號水印信息。 搭檔碼雲:[mao20169219](https://git.oschina.net/md2017/mao20169219/tree/master/exp/exp2/Tdd/test?dir=1&filepath=exp%2Fexp2%2FTdd%2Ftest&oid=47c4f414d82426dd3d8bb89cea748da4043d6554&sha=afebb3a9f4bc35a5ab12f00ddc073b9ddacd0146) ![](http://images2015.cnblogs.com/blog/1115797/201704/1115797-20170430010130037-1671425835.png) ![](http://images2015.cnblogs.com/blog/1115797/201704/1115797-20170430010142381-1016981052.png) TDD並非什麼高深的理論,其涉及的方法和技巧其實很簡單,你們都耳有所聞:面向對象設計、單元測試、重構。 TDD有三個核心原則: 1)沒有測試以前不要寫任何功能代碼 2)只編寫剛好可以體現一個失敗狀況的測試代碼 3)只編寫剛好能經過測試的功能代碼 結對編程:結對編程是XP中的重要實踐。在結對編程模式下,一對程序員肩並肩、平等地、互補地進行開發工做。他們並排坐在一臺電腦前,面對同一個顯示器,使用同一個鍵盤、同一個鼠標一塊兒工做。他們一塊兒分析,一塊兒設計,一塊兒寫測試用例,一塊兒編碼,一塊兒作單元測試,一塊兒作集成測試,一塊兒寫文檔等。 #實驗三 結合[實驗三 敏捷開發與XP實踐](http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的內容替換成IDEA) 完成重構內容的練習,下載搭檔的代碼,至少進行一項重構,提交重構後代碼的截圖,加上學號水印。 重構(Refactor),就是在不改變軟件外部行爲的基礎上,改變軟件內部的結構,使其更加易於閱讀、易於維護和易於變動 。 ![](http://images2015.cnblogs.com/blog/1115797/201704/1115797-20170430010906569-473813899.png) Java代碼的重構模式主要有三種:重命名方法重構模式、引入解釋性變量重構模式、以查詢取代臨時變量重構模式 重命名方法重構模式建議執行以下的步驟來完成: 1.創建一個具備新名稱的方法 2.將舊方法的方法體複製進新方法 3.講舊方法的方法體修改成調用新方法 4.將全部引用舊方法的地方修改成引用新方法 5.刪除舊方法 #補充課堂測試 1.命令行參數
for(int i=0;i<args.length;i++){
sum=sum+Integer.parseInt(args[i]);
}app
2.遞歸
public class TestArgs {
public static int sum(int i, int[] arr) {
if (i < arr.length - 1)
return arr[i] + sum(i + 1, arr);
else return arr[i];
}
public static void main(String[] args) {
int[] arr = new int [20];
for(int i=0; i<args.length;i++)
{
arr[i]=Integer.parseInt(args[i], 10);
}
System.out.println(sum(0, arr));
}
}
```
總結:遞歸方法通俗的將就是自身調用自身。Integer 類在對象中包裝了一個基本類型 int 的值。Integer 類型的對象包含一個 int 類型的字段。該類提供了多個方法,能在 int 類型和 String 類型之間互相轉換,還提供了處理 int 類型時很是有用的其餘一些常量和方法。函數
常見的代碼覆蓋率有下面幾種:
語句覆蓋(Statement Coverage):這是最經常使用也是最多見的一種覆蓋方式,就是度量被測代碼中每一個可執行語句是否被執行到了。
斷定覆蓋(Desicion Coverage):它度量程序中每個斷定的分支是否都被測試到了。
條件覆蓋(Condition Coverage):它度量斷定中的每一個子表達式結果true和false是否被測試到了。
路徑覆蓋(Path Coverage):它度量了是否函數的每個分支都被執行了。
前三種覆蓋率你們能夠查看下面的引用的第3篇 文章 ,這裏就再也不多說。咱們經過一個例子,來看看路徑覆蓋。好比下面的測試代碼中有兩個斷定分支
代碼覆蓋率高不能保證安全,真正的安全須要用測試用例覆蓋邏輯工具