日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

20155225 实验三《敏捷开发与XP实践》实验报告

發(fā)布時(shí)間:2025/3/21 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20155225 实验三《敏捷开发与XP实践》实验报告 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

20155225 實(shí)驗(yàn)三《敏捷開發(fā)與XP實(shí)踐》實(shí)驗(yàn)報(bào)告

一、使用工具(Code->Reformate Code)把代碼重新格式化

IDEA里的Code菜單有很多實(shí)用的功能可以幫助我們讓代碼更簡潔可觀。我還學(xué)習(xí)了Code菜單里的其它功能,比如整行移動(dòng)代碼,優(yōu)化imports

二、克隆搭檔代碼

首先在碼云上加入搭檔到自己的項(xiàng)目,然后復(fù)制搭檔項(xiàng)目代碼,在IDEA里VOC->git,即可將搭檔代碼克隆下來。

三、代碼重構(gòu)

重構(gòu)(Refactor),就是在不改變軟件外部行為的基礎(chǔ)上,改變軟件內(nèi)部的結(jié)構(gòu),使其更加易于閱讀、易于維護(hù)和易于變更 。

重構(gòu)中一個(gè)非常關(guān)鍵的前提就是“不改變軟件外部行為”,它保證了我們?cè)谥貥?gòu)原有系統(tǒng)的同時(shí),不會(huì)為原系統(tǒng)帶來新的BUG,以確保重構(gòu)的安全。

  • 如何保證不改變軟件外部行為:重構(gòu)后的代碼要能通過單元測試。
  • 如何使其更加易于閱讀、易于維護(hù)和易于變更:設(shè)計(jì)模式給出了重構(gòu)的目標(biāo)。

修改軟件的四種動(dòng)機(jī):

  • 增加新功能
  • 原有功能有BUG
  • 改善原有程序的結(jié)構(gòu)
  • 優(yōu)化原有系統(tǒng)的性能

需要重構(gòu)的地方:有臭味道(Bad Smell)的代碼——Duplicated Code(重復(fù)的代碼)

  • 最單純的Duplicated Code就是[同一個(gè)class內(nèi)的兩個(gè)方法含有相同表達(dá)式(expression)]。這時(shí)候你需要做的就是采用Extract Method提煉出重復(fù)的代碼,然后讓這兩個(gè)地點(diǎn)都調(diào)用被提煉出來的那一段代碼。

  • 另一種常見情況就是[兩個(gè)互為兄弟(sibling)的subclasses內(nèi)含有相同表達(dá)式]。要避免這種情況,只需要對(duì)兩個(gè)classes都使用Extract Method,然后再對(duì)被提煉出的代碼使用Pull Up Method,將它推入superclass內(nèi)。

  • 如果代碼之間只是類似,并非完全相同,那么就得運(yùn)用Extract Method將相似部分和差異部分割開,構(gòu)成單獨(dú)一個(gè)方法。然后你可能發(fā)現(xiàn)或許可以運(yùn)用Form Template Method獲得一個(gè)Template Method設(shè)計(jì)模式。

  • 如果有些方法以不同的算法做相同的事,你可以擇定其中較清晰的一個(gè),并使用Substitute Algorithm將其它方法的算法替換掉。

  • 如果兩個(gè)毫不相關(guān)的classes內(nèi)出現(xiàn)Duplicaded Code,你應(yīng)該考慮對(duì)其中一個(gè)使用Extract Class,將重復(fù)代碼提煉到一個(gè)獨(dú)立class中,然后在另一個(gè)class內(nèi)使用這個(gè)新class。但是,重復(fù)代碼所在的方法也可能的確只應(yīng)該屬于某個(gè)class,另一個(gè)class只能調(diào)用它,抑或這個(gè)方法可能屬于第三個(gè)class,而另兩個(gè)classes應(yīng)該引用這第三個(gè)class。你必須決定這個(gè)方法放在哪兒最合適,并確保它被安置后就不會(huì)再在其它任何地方出現(xiàn)。

一個(gè)完整的重構(gòu)流程:

  • 從版本控制系統(tǒng)代碼庫中Check out code
  • 讀懂代碼(包括測試代碼)
  • 發(fā)現(xiàn)bad smell
  • Refactoring
  • 運(yùn)行所有的Unit Tests
  • 往代碼庫中Check in code

四、結(jié)對(duì)學(xué)習(xí)密碼學(xué)

我們實(shí)現(xiàn)了凱撒密碼,代碼如下:

import java.util.Scanner; import java.lang.Integer;public class TestCaesar {public static void main(String[] args) {System.out.println("請(qǐng)輸入明文:");Scanner sc=new Scanner(System.in);String s=sc.nextLine();System.out.println("請(qǐng)輸入密鑰:");Scanner sc1=new Scanner(System.in);int key=sc1.nextInt();//將下一個(gè)輸入項(xiàng)轉(zhuǎn)換成int類型Encryption(s, key);}public static void Encryption(String str,int k){//加密String string="";for (int i = 0; i < str.length(); i++) {char c=str.charAt(i);if(c>='a'&&c<='z'){//如果字符串中的某個(gè)字符是小寫字母c+=k%26;//移動(dòng)key%26;if(c<'a')c+=26;if(c>'z')c-=26;}else if(c>='A'&&c<='Z'){//如果字符串中的某個(gè)字符是大寫字母c+=k%26;//移動(dòng)key%26;if(c<'A')c+=26;if(c>'Z')c-=26;}string+=c;//將加密后的字符串連成字符串}System.out.println(str+" 加密后為: "+string);}}

PSP時(shí)間

步驟耗時(shí)百分比
需求分析510%
設(shè)計(jì)510%
代碼實(shí)現(xiàn)3060%
測試510%
分析總結(jié)510%

轉(zhuǎn)載于:https://www.cnblogs.com/clever-universe/p/6822631.html

總結(jié)

以上是生活随笔為你收集整理的20155225 实验三《敏捷开发与XP实践》实验报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。