999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

XP結對編程探究

2009-04-29 00:00:00李云超
電腦知識與技術 2009年24期

摘要:結對編程(Pair Programming)是極限編程(Extreme Programming,簡稱XP)的十二個實踐之一。它指的是兩個軟件開發人員共用一臺計算機,其中一個人負責具體細節工作,而另一個人關注整體,但這兩個人的角色可以隨時互換。這是一種輕量、高效、低風險、柔性、可預測、科學而充滿樂趣的軟件開發方式。結對編程可改進設計質量、減少程序缺陷、降低人員風險、提高技術技能和團隊合作精神。

關鍵詞:軟件工程;敏捷方法;極限編程;結對編程

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)24-7058-02

Research of Pair Programming Based on Extreme Programming

LI Yun-chao

(South-Central University For Nationalities, Wuhan 430074, China)

Abstract: Pair programming (Pair Programming) is the Extreme Programming (Extreme Programming, referred to as XP), one of the 12 practice. It means that two software developers share a computer, a person responsible for one of the specific details of the work, and the other concerned with the overall, they can swap roles any time. This is a lightweight, high efficiency, low-risk, flexible, predictable, scientific and fun way of software development. Pair Programming can bring economic profit, improve design quality, reduce defects, decrease staffing risk, enhance technical skills and improve team communications.

Key words: software engineering; agile methods; extreme programming; pair programming

目前,我國軟件行業還處在初級階段,傳統的軟件工程技術很難在中小軟件公司中發揮作用,然而極限編程(Extreme Programming,簡稱XP)技術的出現,使中小軟件公司的軟件開發有了新的突破。XP是一個輕量級的、靈巧的軟件開發方法,同時它也是一個非常嚴謹和周密的方法。

XP中非常重要的實踐之一是結對編程(Pair-Programming)。指的是兩位程序員并肩坐在同一臺電腦前,共同探討設計方案、共同設計算法、共同編寫程序代碼、共同完成各種測試。簡單地說就是兩個人坐在同一臺計算機前面,一個稱為駕駛者(Driver),負責代碼的鍵入;另外一個稱為領航員(Navigator),負責其他工作,包括隨時觀察駕駛員的工作情況,發現并糾正其操作性和策略性失誤等。

1 結對編程分析

1.1 結對編程優點分析

1.1.1 減少風險

風險會使大多數團隊停滯不前,減少風險的最佳方法是確保團隊中的每個人都完全熟悉系統的所有部件以及對系統的所有變更。因此,技術講解和設計文檔很有用,但對于大多數快節奏的項目,它們并不能很好且迅速地傳播知識。研究表明傳播知識最有效的方法是讓知道代碼的人與不知道代碼的人一起解決問題。

1.1.2 使團隊生產效率更高

1+1>2。首先,一個人的編程,平均很難實現1>80%×1的工作效力。但是在和同伴一起工作時,必須保持思維一直高度集中,所以平均都可以達到1>80%×1的個人效力,一個人有了想法,首先要表達出來,讓自己的同伴理解,經過深刻的討論,一致認可之后才開始編寫代碼。編寫代碼時至少有一個人一直在復查代碼,使得出錯幾率就降低,減少了bug的產生,對代碼的質量起關鍵作用。另外,由于兩個人的思想匯集,能創造了很多新編程算法或結構重用等。

1.1.3 Pair 可以打造出最佳的合作團隊

通過結對,團隊可以在最短的時間內完成磨合。Pair很好的促進了團隊的溝通交流,經常一起合作Pair的員工,彼此了解、熟悉,很多都是工作和生活上的好友。在這樣的團隊里,大家很樂意互相協助,一起分享知識、分享快樂,打造出最佳的合作團隊。

1.2 結對編程遇到的問題分析

1.2.1 由于人員的變動,來了新成員

在這種情況下,前期確實會對其搭檔產生一定的影響,但是磨刀不誤砍柴工,通過結隊編程,可以最快的使新成員進入狀態,通過后期的高效工作完全可以彌補前期的消極影響。

1.2.2 后面坐著的人跟不上寫代碼的人的思路,或不習慣寫代碼人的代碼風格

結隊編程不僅僅是一起寫代碼,在寫代碼之前更需要一起對需求進行探討, 一起討論設計方案,達成共識之后再一起寫測試用例,一起編碼,一起測試。但在開發過程中要嚴格遵循事先定好的代碼規范。這樣才能實現XP強調的“代碼共同擁有”。

1.2.3“我的搭檔太差勁”等因盲目自大導致的問題

這是一個極其嚴重的問題,整個團隊的心理狀態和團結精神都處于極大的危險之中。而最好的解決辦法就是安排那位“自大狂”與幾位公認的好搭檔合作,讓他感受一下結對編程技術的價值和高效率,使他能由此認識到結對編程的好處,以便以后全身心地投入到工作中。

1.2.4“我的搭檔太聰明”等因盲目自卑而導致的問題

這種自卑問題相當容易被發現。此時可以讓那位缺乏自信心的成員擔任駕駛員角色,因為駕駛員必須全力集中在手里的工作上,這樣可以讓那位缺乏自信心的成員更主動一些,并安排一位個人技能良好的團隊成員做這種人的領航員,領航員可以贊揚駕駛員的每一個好主意和每一個好做法,有助于幫助他樹立自信心。

1.2.5 什么情況下結對編程行不通

1) 造成結對編程無法正常工作的一些情況:

2) 不情愿的配合;

3) 拒絕別人的意見,甚至攻擊對方;

4) 小心翼翼有意見不敢提;

5) 怕別人覺得自己笨不敢問問題;

當然這些問題跟管理以及個人性格有關系,最好的方式就是不讓他們結對,或者讓他們跟別的人結對。

1.2.6 Pair團隊做同一工作的效率問題

表1為來自某印度技術公司的項目統計數據。

1.3 結對編程的幾條準則

1.3.1 用編碼規范來支持結對編程

如果兩個人整天把時間浪費在爭論代碼風格的問題上,那么結對編程就不可能發揮它的威力,應該嘗試對風格進行標準化。

1.3.2 不要讓結對編程變成旁觀

不掌握鍵盤的那個人應該主動參與到編程當中,他應該分析代碼,提前思考接下來的代碼應該做些什么,對設計進行評估,并對如何測試代碼做出計劃。

1.3.3 有規律地對結對人員和分配的工作任務進行輪換

結對編程的好處在于能夠讓不同的人熟悉系統的不同部分,有規律地進行輪換有助于知識的互相轉播—有些專家建議盡可能經常進行人員輪換,甚至每天進行。

1.3.4 鼓勵雙方跟上對方的步伐

要是其中一個人相對走得太快的話,那就會大大限制了其結對搭檔的作用,速度太快的人需要放慢步伐。否則這對組合應當被拆開,然后和其他人重新組合。

1.3.5 搭檔間在設計、方向、技術等發面意見不合發生沖突

此時盡量由領航員把引起沖突的問題記在一張卡片上,過一會(如半小時后)再重新探討,這樣做可以暫不干擾駕駛員的思路,如果兩位搭檔間的意見始終不能統一,把問題上交給團隊的隊長/教練/經理去評判。

2 結對編程方案改進

1) 編程三人組。一個人守護鍵盤,一個人守著“黑板”,最后一個人則代表用戶在“大聲地思考著”。2) 兩位搭檔來自不同的學科。編程搭檔不必非得由兩位代碼開發人員組成。3) 盡量給駕駛員留時間去發現和糾正他自己的錯誤,盡量適應自己的搭檔。4) 避免新手組合。用專家—中級程序員、專家—新手組合方式,兩個人中至少一個人有結對經驗。5) 項目開發過程中要營造一個可以能暢所欲言、和諧平等、相對民主的開發環境,一種相互交流、相互研究、共享代碼、共享知識的氛圍,創建一種共同成長、開放共享的學習型組織。

3 結對編程實踐

如表2,表3所示:

1) 需求分析中,需求調研和需求分析進行輪流交換,輪流交換至少是三個以上的人進行互換,而不是兩兩互換;2) 概要設計中,需求分析到概要設計也進行輪流交換;3) 詳細設計中,概要設計到詳細設計再進行一次輪流交換;4) 編碼實施啟動后,詳細設計到編碼的交換采用兩兩交換,這個時候最好不要再采用輪流交換。

參考文獻:

[1] Williams L,Kessler R.Pair Programming Illuminated[M].北京:機械工業出版社,2004.

[2] Marchesi M,Succi G,Wells D,et al.Extreme Programming Perspectives[M].北京:電子工業出版社,2004.

[3] 白慧冬.交換編程——結對編程的延伸實踐[J].程序員,2006(12):78-81.

[4] 謝國波,劉竹松,陳平華.結對編程在計算機專業學生編程實踐的應用[J].廣東工業大學學報:社會科學版,2008,8(B07):65-66.

主站蜘蛛池模板: 看你懂的巨臀中文字幕一区二区| 国产福利观看| 欧美国产日本高清不卡| 尤物视频一区| 日本一区二区三区精品AⅤ| 国产精品手机视频| 婷婷亚洲最大| 97se综合| 中文字幕乱码中文乱码51精品| 国产乱人伦AV在线A| 国产h视频免费观看| 超清人妻系列无码专区| www.99精品视频在线播放| 毛片在线播放网址| 一区二区三区在线不卡免费| 丁香亚洲综合五月天婷婷| 真实国产乱子伦视频| 亚洲成人播放| 欧美日韩北条麻妃一区二区| 99re经典视频在线| 成人毛片在线播放| 国产午夜精品鲁丝片| 亚洲 成人国产| 中文精品久久久久国产网址| 亚洲天堂2014| 国产精品不卡永久免费| 亚洲精品成人7777在线观看| 成人久久精品一区二区三区| 国产精品女熟高潮视频| 欧美激情网址| 国产乱子精品一区二区在线观看| 高清国产在线| 午夜a视频| 国产大全韩国亚洲一区二区三区| 久久国产成人精品国产成人亚洲 | 免费欧美一级| 欲色天天综合网| 色综合手机在线| 嫩草国产在线| av午夜福利一片免费看| 日韩专区第一页| 国产精品偷伦视频免费观看国产| 国产精品免费福利久久播放| 国产一区三区二区中文在线| 精品伊人久久大香线蕉网站| 亚洲视屏在线观看| 试看120秒男女啪啪免费| 影音先锋丝袜制服| 99久久精品国产自免费| 91视频首页| 夜夜高潮夜夜爽国产伦精品| 天天综合亚洲| 无码一区二区波多野结衣播放搜索| 久久精品免费国产大片| 亚洲IV视频免费在线光看| 亚洲大尺码专区影院| 国产99精品久久| 99尹人香蕉国产免费天天拍| 全午夜免费一级毛片| 成人在线综合| www.99在线观看| 在线观看免费人成视频色快速| 欧美有码在线观看| 四虎影视库国产精品一区| 97色婷婷成人综合在线观看| 九月婷婷亚洲综合在线| 91亚洲视频下载| 久久亚洲欧美综合| 亚洲一区二区三区在线视频| 99999久久久久久亚洲| 国产网站一区二区三区| 国产日韩AV高潮在线| 亚洲高清中文字幕在线看不卡| 成AV人片一区二区三区久久| 另类专区亚洲| 日本免费a视频| 国产99视频精品免费观看9e| 黄色三级网站免费| 91年精品国产福利线观看久久| 国产一区二区在线视频观看| 亚洲天堂免费在线视频| 5555国产在线观看|