青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

人生亦編程

--Programmable Life
posts - 86, comments - 43, trackbacks - 0, articles - 7
什么是Pair Programming
?
Pair Programming是一個(gè)編程模式(Programming pattern)。兩個(gè)程序員并排坐在一臺(tái)電腦前,面對(duì)同一個(gè)顯示器,使用同一個(gè)鍵盤,同一個(gè)鼠標(biāo)一起工作。他們一起分析,一起設(shè)計(jì),一起寫測(cè)試?yán)樱黄鹁幋a,一起單元測(cè)試,一起整合測(cè)試(Integration Test),一起寫文檔等。基本上所有的開發(fā)環(huán)節(jié)都一齊肩并肩地,平等地,互補(bǔ)地進(jìn)行開發(fā)工作。

其它領(lǐng)域的“Pair Working”:
?????? 越野賽車
?????? 駕駛飛機(jī)
?
Pair Programming的角色(Role)
?
?Driver? The one who types
?Navigator The one who watches the back
?角色可以互換的

?
Pair Programming的疑問
?
疑問:
??一個(gè)程序兩個(gè)人寫是不是一種浪費(fèi)(可是兩份工資,雙倍資源哦)?
??編程從來是一個(gè)人的活動(dòng)。學(xué)校里這么教的,一直以來也是做么做的。
??我不喜歡被人盯著工作,這樣我不自在,無法工作。
??這個(gè)笨家伙老是問問題,他/她不會(huì)看書么?我都無法專心工作了。
?????? ……
另一方面:
??Pair Programming被很多的大師級(jí)程序員推崇;
?不少大學(xué)都展開對(duì)Pair Programming的研究,并得到正面的結(jié)論;
??很多嘗試過的Developer都開始喜歡Pair Programming。
?
Pair Programming和Solo Programming的比較
?
一些研究數(shù)據(jù):
1999年,University of Uath.兩組學(xué)生,一組獨(dú)自工作,一組Pair
?Programming。(由助教預(yù)先設(shè)計(jì)和開發(fā)了Test Cases)

?
Pair Programming的歷史
?
1995年,Larry Constantine在他的專欄中第一次提到了在他在P. J. Plaugherís software company, Whitesmiths, Ltd觀察到一個(gè)現(xiàn)象:Collaborative Programming

·“兩個(gè)程序員一起工作,可以比以往更快的交出完成并經(jīng)過測(cè)試的代碼,而且這些代碼幾乎是沒有Bug的。”
?Collaborative Software Process(相對(duì)PSP)
?1996年,Kent Beck,Ward Cunningham 和Ron Jeffries一起提出了Extreme? Programming(XP),其中吸收了Collaborative Programming,并稱為Pair Programming。
?Pair Programming是XP的一個(gè)key practice,也是XP成功的關(guān)鍵。
?隨著XP在世界范圍內(nèi)被采用和練習(xí),Pair Programming開始被接受。
?
為什么要Pair Programming
?
“The Human eye has an almost infinite capability for not seeing what it does not want to see…… Programmers, if left to their own devices, will ignore the most glaring errors in their output-errors that anyone else can see in an instant.”
??? -- Gerald Weinberg
“Knowledge is commonly socially constructed through collaborative efforts toward shared objectives or by dialogues and challenges brought about by difference in persons’ perspective”
??? --? Salomon
“三個(gè)臭皮匠,勝過一個(gè)諸葛亮”
??? -- ?
?
企業(yè)管理層次:
??Pairs更有效的交流,相互學(xué)習(xí)和傳遞經(jīng)驗(yàn)
??Pair Programming具備更高的效費(fèi)比(cost-effective)
??Pair Programming能更好的處理人員流動(dòng)
開發(fā)層次:
??Pairs能提供更好的設(shè)計(jì)質(zhì)量和代碼質(zhì)量
??Pairs更強(qiáng)的問題解決能力
開發(fā)人員自身:
??Pairs一起工作能帶來更多的信心
??Pairs一起工作能帶來更高的滿足感(程序員,用戶和管理層)
?
不間斷的Code Review
?Code Review的目的是不斷的調(diào)整設(shè)計(jì)和編碼質(zhì)量的過程,也是為了及時(shí)發(fā)現(xiàn)問題和解決問題。避免把風(fēng)險(xiǎn)延后到QA階段或Production階段。
?開發(fā)中的Review主要包括:
???? 1) Design Review
???? 2) Code Review
???? 3) Test Review
???? 4) Document Review
?
傳統(tǒng)開發(fā)過程的Review(例如印度的InfoSys公司)的問題:
?
1.?? Peer Code Review,即程序員之間的互相Review
?缺乏Design Review
?不能持久,定時(shí)Code Review
?對(duì)需求和設(shè)計(jì)的不了解導(dǎo)致無法實(shí)現(xiàn)有效的Review
?
2.?? Team Code Review
?什么時(shí)候開會(huì)做Review?不可能Team天天開會(huì)
?無法對(duì)所有的設(shè)計(jì)和Code進(jìn)行Review
?面子問題
?效率低
?
Pair Programming提供不間斷的Design review,Unit Test Review,Code Review,Document Review,避免了效果差的Team Code Review,也比抽查式的Peer Code Review有更好的質(zhì)量。(CMM Level 3)
Pair Programming中,任何一段代碼都至少被兩雙眼睛看過,兩個(gè)腦袋思考過。結(jié)合Collective code ownership和小的Task (Small Engineering Task),代碼被不斷的Review。
?
?避免cow boy式的編程
?好代碼的衡量標(biāo)準(zhǔn):可讀性和可維護(hù)性
?硬件設(shè)備價(jià)格的下降和速度的提升,使得代碼效率不是考慮的重點(diǎn)(對(duì)大多數(shù)的商業(yè)應(yīng)用)。對(duì)大部分的商業(yè)項(xiàng)目來說,更主要的顧慮是成本。而成本中人工占最大的比例。好的代碼可以減少修改的成本。
?Pair Programming的互相督促可以提高代碼的可讀性。
?
Teamwork
Pair是一個(gè)最小單位的Team,而任何人都是工作在這樣一個(gè)Team中。Developer的言行都會(huì)影響到其他的Developer( Partner),也受到其他Developer的影響。
Pair Programming避免了“我的Code”,使得代碼的責(zé)任不屬于某個(gè)人,而是屬于一個(gè)Pair和整個(gè)Team,從而做到Collective Code Ownership,也避免個(gè)人英雄主義。
迫使程序員必須頻繁的交流,增進(jìn)知識(shí)經(jīng)驗(yàn)的交流(Cross-Training)。
?
以人為本
?
?同伴的潛在壓力( Peer Pressure )。Pair Programming的過程也是一個(gè)互相督促的過程。由于這種督促的壓力,使得程序員更認(rèn)真的工作。
?每個(gè)人每天的有效工作時(shí)段不超過3-4個(gè)小時(shí)。
?Pair Programming中Driver和Navigator的互換可以讓程序員輪流工作,從而避免出現(xiàn)過度思考而導(dǎo)致觀察力和判斷力出現(xiàn)偏差。
?潛意識(shí)的有利競(jìng)爭。當(dāng)人在一個(gè)團(tuán)隊(duì)中工作,總是下意識(shí)的努力展現(xiàn)自己的優(yōu)點(diǎn)。
?工作及時(shí)得到同伴的肯定,自信心和成就感(Self-Satisfaction)增強(qiáng)。
?覺得工作是一件愉快( Enjoyable )的事情。

什么樣的人不適合做Pair Programming
?
太過自負(fù)
?不能容忍別人的意見
?我總是對(duì)的
?我吃鹽多過你吃米
?
太過自卑
?沒主見
?沒責(zé)任心
?
什么樣的人適合做Pair Programming
?
Extreme Programming對(duì)實(shí)施的程序員提出了更高的要求。這種要求不是技術(shù)水平,也不是學(xué)歷水平也不是工作經(jīng)驗(yàn)。這種要求是對(duì)一個(gè)人的心智,道德,修養(yǎng)的更高要求。
???? 程序員的四怕:
???? 1) 怕自己看上去傻
???? 2) 怕被認(rèn)為是沒用的
???? 3) 怕自己變的不重要(過時(shí))
???? 4) 怕自己不夠好
???? Pair Programming中,編碼不再是私人的工作,而是一種公開的“表演”。程序員的代碼,工作方式,技術(shù)水平都變得公開和透明。
?
XPer的素質(zhì)
?
一個(gè)XPer應(yīng)該具備這樣一些基本素質(zhì):誠實(shí),公正,開明,勇敢和謙卑!在這些素質(zhì)的基礎(chǔ)之上,才是對(duì)技術(shù)水平,能力和天分等的要求。
?誠實(shí)?
?公正
?開明
?勇氣
?謙卑
???? 具備這些素質(zhì)才能克服“四怕”,才能成為一個(gè)成熟和專業(yè)的Developer。
?
如何Pair Programming
?
?Driver – 寫設(shè)計(jì)文檔(Class diagram等),進(jìn)行編碼(Unit Test and Business Object)等XP開發(fā)流程。
?Navigator – 審閱Driver的文檔、Driver對(duì)編碼等開發(fā)流程的執(zhí)行;考慮Unit Test的覆蓋程度;是否需要和如何Refactoring;幫助Driver解決具體的技術(shù)問題。
?Driver和Navigator不斷輪換角色,不要連續(xù)工作超過一小時(shí),每一小時(shí)休息15分鐘。Navigator要控制開發(fā)時(shí)間。
?主動(dòng)參與 – 雖然每個(gè)Engineering Task都有owner,但不能一旁觀者的心態(tài)來做。任何一個(gè)Task都首先是兩個(gè)人的責(zé)任,也是所有人的責(zé)任。沒有“我的Code”、”你的Code”或“她的Code”,只有“我們的Code”。
?
?只有水平上的差距,沒有級(jí)別上的差異。一個(gè)Pair,盡管可能大家的級(jí)別資歷不同,但不管在分析,設(shè)計(jì)或編碼,雙方都擁有平等的決策權(quán)利。
?Pairs之間互換Partner。每個(gè)Task都應(yīng)該和不同的Developer配對(duì)。
?每隔一天,甚至是半天,互換Partners。但Task的owner因該繼續(xù)留該Task的Pair中。
?如果Pair中的一人請(qǐng)假,另一人應(yīng)盡量不要寫Production Code。
?Pair一起加班
?
沒有Pair Programming就沒有XP
?Pair Programming是XP所有的Practices中最被爭議和被認(rèn)為是最難接受。
?Pair Programming是獲得XP最大價(jià)值的關(guān)鍵。
?沒有Pair Programming,無法實(shí)現(xiàn)有效的Continuous Code Review,代碼質(zhì)量下降。
?沒有Peer Pressure,流程的執(zhí)行很容易出現(xiàn)偏差。
?沒有Pair Programming,Communication很容易弱化,進(jìn)而影響Team work。
?Pair Programming象XP流程中的粘合劑,把各個(gè)環(huán)節(jié)連接起來實(shí)現(xiàn)最大的價(jià)值。
?
XP Without Pair Programming?
這是引進(jìn)XP時(shí)最難被接受的規(guī)則。但如果在采用其它XP的慣例和規(guī)則時(shí),拋棄Pair Programming,那么會(huì)面對(duì)以下問題:
?如何進(jìn)行有效的Design Review
?如何進(jìn)行有效的Code Review
?如何保證代碼質(zhì)量
?如何保證流程的執(zhí)行
?如何增進(jìn)Communication
?如何進(jìn)行Cross-Training
?如何增強(qiáng)Teamwork

Pair Programming和Open Source
Open Source現(xiàn)象:
Open Source Project的代碼質(zhì)量比很多的商業(yè)軟件(項(xiàng)目)都好。
和Pair Programming的共性:
?有效的Code Review
?Collective? code ownership

?
Distributed Pair Programming
分布式的Pair Programming:
?兩個(gè)Programmers身處不同的物理位置,通過Sharing 軟件來實(shí)現(xiàn)Pair Programming。需要Sharing軟件能提供 桌面共享,文字交談,語音交談,甚至是視頻交流。
?目前這種方法還沒有被認(rèn)可,主要出現(xiàn)在學(xué)校的關(guān)于XP的研究項(xiàng)目中 。
面臨的問題:
?Internet的網(wǎng)路延遲
?工作時(shí)段的約定

Pair Programming和Solo Programming的比較
雖然Pair Programming的學(xué)生在剛開始的階段比獨(dú)自工作的學(xué)生花在同樣Task的時(shí)間較多,但很快Pair Programming的學(xué)生的時(shí)間開始大幅度的下降。而獨(dú)立工作的學(xué)生需要花費(fèi)比Pairs更多的時(shí)間來達(dá)到接近的代碼質(zhì)量。

?
?
比較研究項(xiàng)目后的問卷調(diào)查發(fā)現(xiàn):
?Pair Programming能用較少的時(shí)間生產(chǎn)更高質(zhì)量的代碼。
?Pair Programming的學(xué)生們認(rèn)為自己比一個(gè)人的時(shí)候更勤奮和更聰明的工作,因?yàn)椴幌胱屪约旱膒artner失望。
?Pair Programming的學(xué)生認(rèn)為自己比一個(gè)人的時(shí)候更專著,緊湊和由紀(jì)律的工作,而且是持續(xù)的(因?yàn)閬碜訮artner的Pair-Pressure)。而獨(dú)立工作的學(xué)生也可以專著和緊湊的工作,但往往不持續(xù)。
?Pair Programming的學(xué)生對(duì)自己的工作更有信心和成就感。
?Pair Programming的學(xué)生覺得工作很愉快,很愿意很partner一起工作。
?在緊張時(shí)間安排和繁重的工作壓力下,獨(dú)自工作的學(xué)生很容易蛻變?yōu)闆]有紀(jì)律的Programmer。
?
Pair Programming是個(gè)漸進(jìn)的過程
?
有效率的Pair Programming不是一天就能做到的。
Pair Programming是一個(gè)相互學(xué)習(xí),相互磨合的一個(gè)漸進(jìn)過程。
Developers需要時(shí)間來適應(yīng)這種新的開發(fā)模式。
剛開始的Pair Programming很可能不比Solo Programming有更高的
效率。但適應(yīng)后的Pairs的開發(fā)質(zhì)量,開發(fā)時(shí)間都應(yīng)該比Solo
?Programming有大幅度的改善。
?
Reference
?
?Kent Beck,Extreme Programming Explained:Embrace Change
?The Costs and the benefits of Pair Programming -- Alistair Cockburn & Laurie Williams
?Strengthening the Case for Pair Programming – Laurie Williams, Robert R. Kessler & Ward Cunningham
?PairProgramming.com
?www.chinaxp.org

原文來自http://www.sawin.cn/doc/SoftMethod/XP/
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品中文字幕女同| 另类av一区二区| 国产精品网站在线播放| 亚洲国产成人av| 欧美成人免费观看| 欧美一区二区日韩| 亚洲片区在线| 欧美在线亚洲综合一区| 亚洲欧洲精品一区二区三区| 精品成人一区二区三区四区| 国产视频一区在线观看一区免费| 国产精品久久久久一区二区三区| 欧美三级午夜理伦三级中文幕| 久久综合亚洲社区| 久久视频国产精品免费视频在线| 性欧美暴力猛交另类hd| 久久9热精品视频| 久久午夜国产精品| 欧美大片在线观看| 欧美视频中文字幕在线| 欧美成人久久| 国产乱理伦片在线观看夜一区 | 一区二区高清视频在线观看| 日韩一区二区精品在线观看| 亚洲视频1区| 久久久中精品2020中文| 亚洲国产小视频| 亚洲欧美国产日韩中文字幕| 欧美一区永久视频免费观看| 欧美精品91| 一区视频在线播放| 亚洲亚洲精品在线观看| 国产精品国色综合久久| 国产在线观看精品一区二区三区 | 国产农村妇女毛片精品久久莱园子| 国产欧美日韩精品专区| 亚洲高清资源| 嫩模写真一区二区三区三州| 亚洲欧美一区二区在线观看| 欧美日本精品| 日韩视频在线一区二区三区| 亚洲国产高清在线观看视频| 久久久久久久网站| 久久久久久一区二区| 亚洲小少妇裸体bbw| 亚洲欧洲美洲综合色网| 久久香蕉国产线看观看网| 国产精品尤物福利片在线观看| 99国产麻豆精品| 在线午夜精品| 国产日韩在线一区| 久久久久久**毛片大全| 久久精品99国产精品| 亚洲黄色尤物视频| 亚洲第一成人在线| 欧美粗暴jizz性欧美20| 在线综合+亚洲+欧美中文字幕| 一本综合久久| 一区二区三区在线看| 亚洲娇小video精品| 亚洲一区欧美激情| 欧美一区三区二区在线观看| 在线欧美福利| 亚洲一区二区三区影院| 亚洲一区二区日本| 亚洲国产色一区| 亚洲精品美女在线| 国产精品日韩一区| 欧美黄色视屏| 国产精品视频观看| 亚洲激情偷拍| 亚洲动漫精品| 欧美一区二区三区免费观看| 亚洲精品综合| 久久久久在线| 久久精品国产2020观看福利| 欧美日韩影院| 一本综合久久| 99re66热这里只有精品3直播 | 亚洲欧美一区二区三区极速播放| 久久www成人_看片免费不卡| 午夜一区在线| 国产麻豆综合| 欧美一级艳片视频免费观看| 午夜欧美电影在线观看| 国产精品久久国产精麻豆99网站| 亚洲高清视频一区| 亚洲蜜桃精久久久久久久| 久久久蜜桃一区二区人| 国产精品午夜av在线| 亚洲一区二区视频在线| 欧美日韩中文字幕| 亚洲一区二区三区色| 久久精品国产亚洲精品| 国产一区二区三区在线观看免费视频 | 欧美国产视频一区二区| 亚洲精品一区二区在线观看| 久久国产精品一区二区三区四区| 国产精品三级视频| 久久久久久久综合日本| 欧美成人国产一区二区| 一区二区三区.www| 黄色一区二区三区四区| 欧美日韩亚洲一区二区三区在线| 欧美一区2区三区4区公司二百 | 一区二区三区黄色| 国产精品视频yy9299一区| 久久精品亚洲一区二区| 99国产精品久久久久久久久久 | 国产伦精品免费视频| 美日韩精品免费| 久久国产99| 欧美一区二区啪啪| 午夜激情一区| 亚洲一二三区精品| 一区二区高清视频在线观看| 亚洲日本中文字幕| 亚洲国产精品电影| 亚洲国产另类久久精品| 欧美xxx成人| 亚洲国产欧美日韩另类综合| 亚洲缚视频在线观看| 欧美黑人在线观看| 免费成人av在线| 欧美夫妇交换俱乐部在线观看| 久久夜色精品亚洲噜噜国产mv| 久久亚洲精品中文字幕冲田杏梨| 久久米奇亚洲| 亚洲电影自拍| 中文精品视频| 久久精品国产亚洲5555| 美女精品自拍一二三四| 欧美精品国产精品| 国产精品一级在线| 激情文学一区| 欧美自拍偷拍| 91久久国产综合久久蜜月精品 | 亚洲永久免费av| 亚洲欧美综合国产精品一区| 欧美亚洲一区| 欧美久久久久| 极品尤物久久久av免费看| 91久久精品日日躁夜夜躁国产| 一本色道88久久加勒比精品| 久久久久国产精品www| 亚洲激情一区二区三区| 亚洲午夜羞羞片| 欧美夫妇交换俱乐部在线观看| 国产精品一区二区久久久久| 国产亚洲aⅴaaaaaa毛片| 一区二区日韩欧美| 亚洲成人资源| 久久久久se| 精品成人乱色一区二区| 亚洲欧美精品在线| 亚洲精品婷婷| 欧美激情综合| 一区二区三区福利| 亚洲国产精品激情在线观看| 久久精品视频在线看| 国产一区二区精品久久| 午夜精品久久久久久久白皮肤| 亚洲精品一区二区三区蜜桃久| 久久精品72免费观看| 精品福利免费观看| 久久综合一区二区三区| 久久国产一区| 亚洲乱码久久| 一本色道久久综合一区| 国产精品亚洲аv天堂网| 香蕉乱码成人久久天堂爱免费| 亚洲与欧洲av电影| 在线观看国产精品网站| 亚洲国产99精品国自产| 狼人社综合社区| 欧美激情精品久久久久久变态| 这里只有视频精品| 午夜免费久久久久| 最新亚洲视频| 欧美一区二区三区精品电影| 亚洲精品欧美一区二区三区| 亚洲欧美999| 中文精品视频| 蜜桃久久精品一区二区| 久久激情五月激情| 欧美母乳在线| 欧美国产日韩一区| 国产欧美一区二区精品性| 亚洲国产你懂的| 亚洲高清一区二| 老司机久久99久久精品播放免费 | 亚洲色图在线视频| 久久久xxx| 麻豆国产精品va在线观看不卡| 国产精品久久毛片a| 亚洲最黄网站| 亚洲视频在线观看| 欧美日本亚洲| 99pao成人国产永久免费视频| 亚洲精品黄网在线观看|