日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
再認識結(jié)對編程

摘要

結(jié)對編程是敏捷軟件開發(fā)中的重要實踐活動,然而國內(nèi)業(yè)界對結(jié)對編程如何提高軟件開發(fā)效率的實現(xiàn)并不明確。作者根據(jù)親身敏捷軟件開發(fā)過程的經(jīng)驗,深入探討了其對提高軟件開發(fā)效率的實際作用。

正文

結(jié)對編程是極限編程(XP)的十二個實踐之一,是指兩位程序員肩并肩地坐在同一臺電腦前合作完成同一個設(shè)計、同一個算法以及同一段代碼,并且兩人的角色可以隨時互換。XP認為結(jié)對編程能提高軟件開發(fā)效率,很多國外軟件企業(yè)都在熱衷于結(jié)對編程,F(xiàn)acebook程序員肯特?貝克(Kent Beck)表示:“結(jié)對程序員之間的交流非常充分,你甚至可以再也不用言語進行交流。你只要簡單描述再結(jié)合著手勢就可以?!盙rockit***執(zhí)行官羅伊?吉爾伯特(Roy Gilbert)表示,這種模式已經(jīng)證明非常成功,他的程序員“正在繼續(xù)推廣這種做法?!倍鳬BM還為結(jié)對編程推出了協(xié)同開發(fā)工具ECF。

然而,結(jié)對編程在國內(nèi)確處于一個尷尬的境地,業(yè)界對其如何提高軟件開發(fā)效率的理論并不明確,也有認為不但不能提高效率,反而會降低效率的觀點。本文作者根據(jù)親身經(jīng)歷,結(jié)合查閱國外的很多資料,將結(jié)對編程提高軟件開發(fā)效率的心得與各位讀者分享。

在正確認識結(jié)對編程如何提升軟件開發(fā)效率之前,首先要認清對結(jié)對編程理解的兩個誤區(qū)。

誤區(qū)一,兩個人工作效率比一個人高

這個誤區(qū)又分為兩種情況。一種是簡單地認為兩個人做事應(yīng)該更快,的確,日常的生活和工作經(jīng)驗都告訴我們,一般情況下,兩個人合力做一件事,是比一個人獨立來做要快的。兩個程序員合力寫一個程序,應(yīng)該比一個人來寫這個程序速度快。但國內(nèi)商業(yè)軟件公司開發(fā)的實際情況是,如果有兩個人,那么就要寫兩個程序,而不是只給你一個程序的任務(wù)。讓兩個人順序完成兩個程序,效率顯然比每人負責(zé)一個程序,并行開發(fā)兩個程序來的低。所以這個說法是不符合國情的。

另一種情況是所結(jié)對編程時,兩個人可以相互討論來解決遇到的問題,要比一個人冥思苦想的效率高。初看這種說法很有道理,但現(xiàn)實是在商業(yè)軟件開發(fā)公司中,對于一個熟練的軟件工程師來說,并不是經(jīng)常遇到難題,大部分時候收到的需求都是能很快想到解決方案的,根本沒有做大量討論的必要。而但碰到疑難問題的時候,還有很多更加有效率的方法,比如直接尋求相關(guān)技術(shù)專家的幫助,或者召集多位編程達人做一次頭腦風(fēng)暴等,結(jié)對編程在這點上說提高軟件開發(fā)效率是很勉強的,作者認為反而是降低效率。

誤區(qū)二,防止偷懶,提高效率

這個說法在國外的資料上沒有,但是國內(nèi)的很多培訓(xùn)和資料上都有提到過。它說如果單獨工作,在遇到困難的時候,并不是所有人都立刻積極地去解決問題,這時或許會上網(wǎng)和網(wǎng)友聊聊天,看看無關(guān)的網(wǎng)站等等。有可能因為工作的打斷,大半天的時間都浪費了。而結(jié)對編程有一種相互督促的作用,在一邊工作疲憊狀態(tài)不好使,另一邊會起一個鼓勵和激發(fā)斗志的作用。

但是這個說法其實只是一廂情愿,由于軟件開發(fā)是很講究團隊配合意識的,所以軟件開發(fā)公司內(nèi)的同事關(guān)系基本都很融洽的。兩個關(guān)系好的同事坐在一起的時候,不但不會互相監(jiān)督,反而會互相掩護。

以上是作者認為國內(nèi)業(yè)界對結(jié)對編程認識的兩個誤區(qū),那么結(jié)對編程是如何提高軟件開發(fā)效率的呢?

提高代碼走查效率

在當(dāng)今的軟件工程概念中,代碼走查是一個很重要的過程。代碼走查的目的是提高軟件的質(zhì)量,以及可維護性,經(jīng)過走查的代碼是能夠更容易地被項目組其他成員看懂的。然后代碼走查的成本不低,有經(jīng)驗的軟件工程師都清楚,要一個開發(fā)人員完全理解另一個人的代碼是一件不容易的事情,不只是代碼編程習(xí)慣的不同會導(dǎo)致閱讀代碼的困難,在復(fù)雜的業(yè)務(wù)邏輯下,不同的開發(fā)人員的設(shè)計思路也有很大不同的,導(dǎo)致不同的人對代碼的理解有很大差異。所有很多時候代碼走查緊緊只是看看代碼中是否有語法上的錯誤,是否符合編程規(guī)范,而要發(fā)現(xiàn)業(yè)務(wù)邏輯上的深層錯誤是很困難的,以至很多浮躁的軟件開發(fā)公司甚至直接省略代碼走查這個步驟。

結(jié)對編程則正是提高代碼走查效率和質(zhì)量的非常有效的手段。兩個開發(fā)人員坐在一起,共同思考和討論設(shè)計思路,輪流編寫程序代碼,輪流走查另一個人在寫的代碼,代碼走查和編碼并行開展,而不是等完全編碼之后才做代碼走查,產(chǎn)生的程序代碼風(fēng)格是兩個人都能接受的。這樣就不存在要一個人去理解另一個的代碼的問題,實際是兩個人共同理解代碼。而且由于兩個人的思想盲區(qū)要遠小于一個人的思想盲區(qū),所以能夠在編碼過程中及時地發(fā)現(xiàn)程序在業(yè)務(wù)邏輯實現(xiàn)上的深層問題,大大提高代碼走查的效率和質(zhì)量。對于包含代碼走查階段的軟件開發(fā)過程而言,結(jié)對編程是能大大提升軟件開發(fā)效率的。

結(jié)對編程還有很多優(yōu)點,比如提高軟件代碼的質(zhì)量,促進知識傳遞,降低新員工學(xué)習(xí)成本等。除此之外,作者還發(fā)現(xiàn)結(jié)對編程還有一個很大的優(yōu)點,就是能讓敏捷開發(fā)所倡導(dǎo)的共同責(zé)任理念落到實處。

敏捷開發(fā)強調(diào)項目是整個項目團隊共同擁有的,所以項目的問題是項目團隊所有成員的責(zé)任,而不只是某個人的責(zé)任,項目團隊的所有成員應(yīng)該共同努力來解決和避免所有的項目問題。結(jié)對編程則能很好地體現(xiàn)這個理念,在結(jié)對編程中兩個人頻繁變換角色,對于程序代碼存在錯誤,就很難分清是誰的責(zé)任,甚至很難分清楚哪里的代碼是誰寫的,所以代碼問題至少是結(jié)對的兩個人的共同責(zé)任,從根本上促進了共同責(zé)任的理念。


網(wǎng)站標(biāo)題:再認識結(jié)對編程
文章分享:http://www.5511xx.com/article/cceicco.html