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

人生亦編程

--Programmable Life
posts - 86, comments - 43, trackbacks - 0, articles - 7
什么是Pair Programming
?
Pair Programming是一個編程模式(Programming pattern)。兩個程序員并排坐在一臺電腦前,面對同一個顯示器,使用同一個鍵盤,同一個鼠標一起工作。他們一起分析,一起設計,一起寫測試例子,一起編碼,一起單元測試,一起整合測試(Integration Test),一起寫文檔等。基本上所有的開發環節都一齊肩并肩地,平等地,互補地進行開發工作。

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

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

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

·“兩個程序員一起工作,可以比以往更快的交出完成并經過測試的代碼,而且這些代碼幾乎是沒有Bug的。”
?Collaborative Software Process(相對PSP)
?1996年,Kent Beck,Ward Cunningham 和Ron Jeffries一起提出了Extreme? Programming(XP),其中吸收了Collaborative Programming,并稱為Pair Programming。
?Pair Programming是XP的一個key practice,也是XP成功的關鍵。
?隨著XP在世界范圍內被采用和練習,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
“三個臭皮匠,勝過一個諸葛亮”
??? -- ?
?
企業管理層次:
??Pairs更有效的交流,相互學習和傳遞經驗
??Pair Programming具備更高的效費比(cost-effective)
??Pair Programming能更好的處理人員流動
開發層次:
??Pairs能提供更好的設計質量和代碼質量
??Pairs更強的問題解決能力
開發人員自身:
??Pairs一起工作能帶來更多的信心
??Pairs一起工作能帶來更高的滿足感(程序員,用戶和管理層)
?
不間斷的Code Review
?Code Review的目的是不斷的調整設計和編碼質量的過程,也是為了及時發現問題和解決問題。避免把風險延后到QA階段或Production階段。
?開發中的Review主要包括:
???? 1) Design Review
???? 2) Code Review
???? 3) Test Review
???? 4) Document Review
?
傳統開發過程的Review(例如印度的InfoSys公司)的問題:
?
1.?? Peer Code Review,即程序員之間的互相Review
?缺乏Design Review
?不能持久,定時Code Review
?對需求和設計的不了解導致無法實現有效的Review
?
2.?? Team Code Review
?什么時候開會做Review?不可能Team天天開會
?無法對所有的設計和Code進行Review
?面子問題
?效率低
?
Pair Programming提供不間斷的Design review,Unit Test Review,Code Review,Document Review,避免了效果差的Team Code Review,也比抽查式的Peer Code Review有更好的質量。(CMM Level 3)
Pair Programming中,任何一段代碼都至少被兩雙眼睛看過,兩個腦袋思考過。結合Collective code ownership和小的Task (Small Engineering Task),代碼被不斷的Review。
?
?避免cow boy式的編程
?好代碼的衡量標準:可讀性和可維護性
?硬件設備價格的下降和速度的提升,使得代碼效率不是考慮的重點(對大多數的商業應用)。對大部分的商業項目來說,更主要的顧慮是成本。而成本中人工占最大的比例。好的代碼可以減少修改的成本。
?Pair Programming的互相督促可以提高代碼的可讀性。
?
Teamwork
Pair是一個最小單位的Team,而任何人都是工作在這樣一個Team中。Developer的言行都會影響到其他的Developer( Partner),也受到其他Developer的影響。
Pair Programming避免了“我的Code”,使得代碼的責任不屬于某個人,而是屬于一個Pair和整個Team,從而做到Collective Code Ownership,也避免個人英雄主義。
迫使程序員必須頻繁的交流,增進知識經驗的交流(Cross-Training)。
?
以人為本
?
?同伴的潛在壓力( Peer Pressure )。Pair Programming的過程也是一個互相督促的過程。由于這種督促的壓力,使得程序員更認真的工作。
?每個人每天的有效工作時段不超過3-4個小時。
?Pair Programming中Driver和Navigator的互換可以讓程序員輪流工作,從而避免出現過度思考而導致觀察力和判斷力出現偏差。
?潛意識的有利競爭。當人在一個團隊中工作,總是下意識的努力展現自己的優點。
?工作及時得到同伴的肯定,自信心和成就感(Self-Satisfaction)增強。
?覺得工作是一件愉快( Enjoyable )的事情。

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

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

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

Pair Programming和Solo Programming的比較
雖然Pair Programming的學生在剛開始的階段比獨自工作的學生花在同樣Task的時間較多,但很快Pair Programming的學生的時間開始大幅度的下降。而獨立工作的學生需要花費比Pairs更多的時間來達到接近的代碼質量。

?
?
比較研究項目后的問卷調查發現:
?Pair Programming能用較少的時間生產更高質量的代碼。
?Pair Programming的學生們認為自己比一個人的時候更勤奮和更聰明的工作,因為不想讓自己的partner失望。
?Pair Programming的學生認為自己比一個人的時候更專著,緊湊和由紀律的工作,而且是持續的(因為來自Partner的Pair-Pressure)。而獨立工作的學生也可以專著和緊湊的工作,但往往不持續。
?Pair Programming的學生對自己的工作更有信心和成就感。
?Pair Programming的學生覺得工作很愉快,很愿意很partner一起工作。
?在緊張時間安排和繁重的工作壓力下,獨自工作的學生很容易蛻變為沒有紀律的Programmer。
?
Pair Programming是個漸進的過程
?
有效率的Pair Programming不是一天就能做到的。
Pair Programming是一個相互學習,相互磨合的一個漸進過程。
Developers需要時間來適應這種新的開發模式。
剛開始的Pair Programming很可能不比Solo Programming有更高的
效率。但適應后的Pairs的開發質量,開發時間都應該比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>
            亚洲国产日韩欧美综合久久| 欧美一区二区三区日韩视频| 美国三级日本三级久久99| 校园春色综合网| 国产综合一区二区| 男人天堂欧美日韩| 亚洲精品久久久久久久久久久 | 亚洲精品在线免费| 欧美日韩高清在线播放| 亚洲欧美欧美一区二区三区| 欧美亚洲自偷自偷| 91久久精品国产91性色| 亚洲精品国产精品国自产观看| 欧美日韩在线精品一区二区三区| 亚洲欧美日韩中文视频| 久久久久久一区| av不卡在线看| 香蕉成人久久| 亚洲人午夜精品| 午夜精品久久久久久| 亚洲国产精品小视频| 亚洲一二三区精品| 伊人精品久久久久7777| 一本色道久久综合狠狠躁篇怎么玩| 国产精品综合久久久| 欧美大色视频| 国产欧美日韩一级| 亚洲人成人一区二区在线观看| 国产色综合久久| 亚洲欧洲精品一区二区三区不卡 | 欧美有码视频| 亚洲天堂av电影| 蜜臀av在线播放一区二区三区| 亚洲欧美综合一区| 欧美激情精品久久久| 久久资源av| 国产日韩精品视频一区| 日韩午夜精品视频| 亚洲精品免费在线播放| 久久久精品久久久久| 欧美一级理论性理论a| 欧美日韩另类国产亚洲欧美一级| 久久一日本道色综合久久| 国产精品日韩精品欧美在线| 亚洲激情视频| 91久久久久久久久久久久久| 欧美在线国产精品| 欧美一区二区| 国产精品视频自拍| 一本一道久久综合狠狠老精东影业| 亚洲激情视频| 久久久之久亚州精品露出| 欧美综合国产| 国产免费成人av| 中文无字幕一区二区三区| 制服丝袜亚洲播放| 欧美精品在线看| 亚洲人精品午夜| 日韩午夜视频在线观看| 蜜臀av性久久久久蜜臀aⅴ| 嫩草国产精品入口| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲精品一区二区三区福利| 开心色5月久久精品| 久久综合色播五月| 亚洲福利小视频| 欧美成人第一页| 亚洲一区二区日本| 亚洲精品中文字幕有码专区| 亚洲精一区二区三区| 欧美第一黄色网| 亚洲看片网站| 亚洲欧美在线另类| 国产婷婷97碰碰久久人人蜜臀| 欧美一级大片在线观看| 久久午夜电影| 亚洲精品男同| 欧美日韩中字| 午夜视频久久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 在线看欧美日韩| 欧美日本在线播放| 亚洲天堂av高清| 久久久蜜桃一区二区人| 亚洲国产你懂的| 欧美调教视频| 欧美一区二区三区精品| 亚洲国产色一区| 亚洲欧美成人| 亚洲第一中文字幕| 国产精品国产亚洲精品看不卡15| 午夜精品久久久久久久白皮肤| 美乳少妇欧美精品| 一区二区免费在线观看| 国产亚洲精品激情久久| 母乳一区在线观看| 亚洲欧美亚洲| 亚洲国产精品欧美一二99| 性欧美18~19sex高清播放| 在线成人性视频| 国产精品福利网| 欧美aⅴ一区二区三区视频| 亚洲视频综合| 亚洲国产一区二区三区高清| 久久精品成人一区二区三区 | 欧美激情精品久久久久| 午夜综合激情| 亚洲免费av片| 欧美激情小视频| 香蕉亚洲视频| 日韩视频在线一区二区三区| 国内精品国产成人| 国产精品久久久久9999| 欧美搞黄网站| 久久久精品动漫| 亚洲男人的天堂在线| 亚洲精品一区二区在线| 欧美成人一区二区三区在线观看| 欧美一级片在线播放| 在线一区二区三区四区| 亚洲动漫精品| 尤物yw午夜国产精品视频明星| 国产精品视频免费在线观看| 欧美金8天国| 美女脱光内衣内裤视频久久影院 | 亚洲人成在线播放网站岛国| 暖暖成人免费视频| 久久久久久久精| 久久av老司机精品网站导航| 亚洲尤物影院| 中文一区二区| 一卡二卡3卡四卡高清精品视频| 亚洲国产精品一区制服丝袜 | 欧美天天视频| 国产精品v亚洲精品v日韩精品| 欧美日本二区| 欧美噜噜久久久xxx| 欧美国产日韩xxxxx| 欧美va亚洲va日韩∨a综合色| 亚洲精品乱码久久久久久久久 | 欧美激情性爽国产精品17p| 久久久久久久一区| 欧美一区三区三区高中清蜜桃 | 一区二区三区四区五区在线| 亚洲欧洲日韩女同| 亚洲美女免费视频| 一区二区三区国产在线观看| 99精品99| 亚洲欧美日韩在线一区| 欧美在线观看网址综合| 卡通动漫国产精品| 欧美高清影院| 亚洲美女视频网| 亚洲午夜精品视频| 欧美一级播放| 久久久久综合网| 欧美激情aⅴ一区二区三区| 欧美日韩播放| 国产精品一卡二卡| 一区二区亚洲| 一区二区三区四区国产| 午夜精品免费| 免费观看成人| 一本久道久久久| 欧美一区二区精品| 欧美1区视频| 国产精品久久一级| 在线观看一区欧美| 一区二区三区三区在线| 欧美一区二区免费观在线| 久久亚洲精品伦理| 亚洲美女诱惑| 欧美夜福利tv在线| 欧美日韩国产一区| 国产亚洲精品激情久久| 亚洲乱码国产乱码精品精 | av成人老司机| 久久久久久综合| 亚洲精品日产精品乱码不卡| 欧美一区二区私人影院日本| 欧美激情视频网站| 国内视频精品| 亚洲午夜国产一区99re久久 | 亚洲深夜激情| 欧美成人精品| 午夜久久黄色| 欧美三区不卡| 亚洲国产精品成人| 久久精品中文字幕一区| 亚洲精品一区二区三区婷婷月| 久久久久综合一区二区三区| 国产精品成人一区二区网站软件| 原创国产精品91| 欧美一级视频| avtt综合网| 欧美激情一区二区三区四区| 精品99视频| 久久国产精品一区二区三区四区 | 久久久综合免费视频| 国产免费亚洲高清|