偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

軟件工程之結(jié)對編程親歷記

開發(fā) 項目管理
結(jié)對編程到底怎么實行?很多人從主觀上認(rèn)為這是一種效率過低的方法。本文是一位程序員的親身經(jīng)歷,實踐出真知。

  作為程序員的你,不知道曾經(jīng)是否嘗試過這樣一種開發(fā)模式:你有一個伙伴,你們坐在一起,并肩作戰(zhàn),面對著同一臺顯示器,使用著同一鍵盤,同一個鼠標(biāo),你們一起思考,一起分析,一起編程。如果你嘗試過,那你可以繼續(xù)讀下去,看看我們是不是有同樣的感受;如果你沒有嘗試過,那你更應(yīng)該讀下去,因為這篇文章將會帶你體會這種編程模式,帶你走進(jìn)結(jié)對編程的世界。

  下面,我就來講講我所經(jīng)歷的結(jié)對編程吧。

  這次結(jié)對項目的名稱為“學(xué)術(shù)會議的展示”,即在原有的微軟學(xué)術(shù)地圖的基礎(chǔ)上,添加學(xué)術(shù)會議的信息及地理位置顯示。這是一個不大不小的項目,兩個人共同花了9天的時間,在完成基本功能并保證穩(wěn)定性的同時,添加了一些華麗的界面元素,總的來講,感覺不錯。

  因為是軟件工程,所以我們要從工程的角度出發(fā),在正式開始之前,要制定好自己的計劃。對于一項工程,我們會有一個期望的結(jié)果,稱之為Goal。為了實現(xiàn)這個Goal,我們會做許許多多的小工作,將這些小工作全部整合起來,就成了我們的項目。因此,我們首先要做的就是將項目細(xì)化為這樣一個一個的小工作,這一步我們稱之為WBS(Work Breakdown Structure)。

  對于我們的項目——學(xué)術(shù)會議的展示,我們把他分成了三個部分,其中每個部分又分成數(shù)個小任務(wù)。

  1、 將會議顯示在地圖上

  2、 界面設(shè)計及事件

  3、 會議搜索

  以下是任務(wù)的細(xì)分及對任務(wù)完成的時間估計和實際完成時間。

  1、 將會議顯示在地圖上

 ?。?) 獲取會議基本信息,如舉辦時間,全名,縮寫,地點,學(xué)科方向等等。

  估計完成時間:2小時 實際完成時間:2小時

 ?。?) 數(shù)據(jù)處理,如計算會議的總發(fā)表論文數(shù)及被引用數(shù),并對其排名

  估計完成時間:1小時 實際完成時間:2小時

  在這一步中,我們?yōu)榱朔奖?,并沒有將所有數(shù)據(jù)都獲取下來,然后離線處理,而是直接編寫SQL語句實現(xiàn)。不過由于數(shù)據(jù)量還是太大,而且中途遇到過不少bug如數(shù)據(jù)重復(fù)問題,分學(xué)科統(tǒng)計問題,前前后后花費了我們兩個小時的時間。

  (3) 獲取會議舉辦地點的經(jīng)緯度

  估計完成時間:1小時 實際完成時間:1小時

 ?。?) 編寫WCF通信服務(wù)將以上獲取的數(shù)據(jù)從網(wǎng)站服務(wù)器傳送給應(yīng)用程序端

  估計完成時間:1小時 實際完成時間:4小時

  在這一步中我們終究還是低估了在編寫Silverlight-WCF通信程序時可能遇到的各種問題,一個簡簡單單的跨域問題足足折騰了我倆四個小時時間,東測試西測試,沒找到問題之所在,最終在網(wǎng)絡(luò)上找到解決方案。

 ?。?) 根據(jù)第二步所獲取的會議排名,將會議顯示在地圖上

  估計完成時間:2小時 實際完成時間:1小時

  這一步作為最關(guān)鍵的一步,我們分配了兩個小時,其實實現(xiàn)起來無非是按部就班,因此很快便完成了。

  2、 界面設(shè)計及事件

  (1) 設(shè)計會議展示界面

  估計完成時間:2小時 實際完成時間:5小時

  界面設(shè)計永遠(yuǎn)是沒有***的,因為每個人的看法都是不一樣的。在這一環(huán)節(jié)上,我與我的partner看法產(chǎn)生了分歧,最終采用的他的設(shè)計方法。事實證明做設(shè)計也是需要時間的,前后足足花費了我們5個小時,終于設(shè)計出了還看的過去的一個面板。

 ?。?) 從微軟學(xué)術(shù)搜索API獲取所需數(shù)據(jù)并在所設(shè)計面板上顯示出來

  估計完成時間:2小時 實際完成時間:2小時

 ?。?) 為界面添加超鏈接及鼠標(biāo)事件

  估計完成時間:3小時 實際完成時間:5小時

  之前一直使用TextBlock或TextBox,界面難看且不靈活,于是打算自己設(shè)計界面。設(shè)計到一半,突然發(fā)現(xiàn)在Silverlight 4中richTextBox成為了系統(tǒng)組件,這為我們界面的顯示提供了很大的便利,但也豐富了我們的想法,讓我們在上面實現(xiàn)了更多的東西,超過了原有的預(yù)期的時間,但結(jié)果還是令人較為滿意的。

  3、 會議搜索

 ?。?) 自動補全搜索框的實現(xiàn)

  估計完成時間:1小時 實際完成時間:2小時

 ?。?) 根據(jù)機構(gòu)名定位到指定回憶舉辦地并顯示其詳細(xì)信息

  估計完成時間:1小時 實際完成時間:0.5小時

  以上就是我們詳細(xì)工作的時間劃分,但實際上我們更多的時間奉獻(xiàn)給了討論與修正bug以及最終與他人項目的合并工作。這是每一個人都可能會遇到的問題,怎么處理好這些問題也是對我們很大的考驗。

  上面介紹完了基本的任務(wù),下面就是具體的實施結(jié)果了。

  項目完成之前的界面,大家可以看這里:http://academic.research.microsoft.com/academicmap

  我們的結(jié)果:

  1、 查看

  在左邊欄中,可以選擇Conference,然后我們便可以在地圖上看到看學(xué)術(shù)會議。每一個圓點代表一個會議,根據(jù)這個會議總共發(fā)表的論文數(shù),這個會議的原點會有不同的大小和不同的顏色。在左邊可以通過學(xué)科方向和會議時間來篩選。

2、 界面

  將鼠標(biāo)移動到會議圓點上,我們可以看到詳細(xì)的關(guān)于會議的信息,包括全名,縮寫,年份,發(fā)表論文數(shù)及被引用數(shù),舉辦城市等等信息。

  當(dāng)我們點擊圓點以后,會彈出如下圖所示的面板。這是會議信息展示的主界面,在這上面,我們一個劃分額四個區(qū)域。

 ?。?) 左上角為當(dāng)前會議信息,當(dāng)點擊標(biāo)題后,會打開新頁面跳轉(zhuǎn)到微軟學(xué)術(shù)搜索相關(guān)會議的界面。

 ?。?) 右上角為該會議所感興趣的學(xué)科領(lǐng)域。

 ?。?) 左下角為該會議在不同年份的信息,每一條信息都是建立在一個按鈕之上,因此當(dāng)鼠標(biāo)點擊時,在地圖我們就會跳轉(zhuǎn)到相應(yīng)的位置及顯示相關(guān)的信息。

 ?。?) 右下角同樣是該會議的相關(guān)信息,包括會議的主頁,會議的前三條關(guān)鍵字,以及會議上最出名的三個作者(按被引用數(shù)排名)。每條信息都是一個超鏈接,當(dāng)你點擊時會打開新頁面顯示相關(guān)的信息。

3、 搜索

  當(dāng)進(jìn)入會議視圖后,我們會看到下面的搜索欄

下面輸入我們想查詢的關(guān)鍵字,以IEEE為例

  搜索框自動補全了我們想要搜索的信息,當(dāng)我們選中時,地圖就會跳轉(zhuǎn)到相應(yīng)的回憶舉辦地并顯示如2.種所示的界面。

  以上就是我們的結(jié)果,怎么樣,從效果上看,還不錯吧。

  介紹完我們的項目,還是回到結(jié)對編程上來。這是我***次體驗這樣的編程模式,這種模式到底好與不好,我只能說,因人而異吧。

  不可否認(rèn),這樣一種編程模式其好處是顯而易見的。作為一個driver,在編程的同時,你總會想著你旁邊還有一個人,這樣你就會格外的認(rèn)真,注意每一段代碼的格式,按照統(tǒng)一的規(guī)范來寫。作為一個navigator,你會時刻關(guān)注你旁邊的人寫的代碼,思維在不停的運作,在寫的同時進(jìn)行著復(fù)審,在起到監(jiān)督的同時也提高了代碼質(zhì)量,減少了復(fù)審所需要的時間,不用事后再去花大精力閱讀代碼,因為在寫的時候你已經(jīng)對代碼非常了解了。每當(dāng)一個人獨自寫程序時,如果任務(wù)不是那么的緊,我們很容易出現(xiàn)懈怠的情緒,這時我們可能會打開人人、微薄這種東西來打發(fā)消遣一下。當(dāng)兩個人共同工作時,你浪費你自己的時間不要緊,但你浪費他人的時間就說不過去了。

  話說回來,世上人與人之間總是存在差異的,而不像機器那樣由程序統(tǒng)一控制。當(dāng)兩個人的思維發(fā)生碰撞時,有時也許會融合并誕生出更好的想法,有時恐怕就會出現(xiàn)爆炸,令雙方都不太愉快。如果讓兩個編程習(xí)慣及審美觀差別極大的人結(jié)對完成一個項目,那可想這個過程會是多么糟糕,基本在爭吵中度過,這樣能夠?qū)懞贸绦騿???dāng)兩個人的技術(shù)水平差別過大時,一人嫌另一人效率低,另一人則感覺被輕視,越發(fā)懈怠,這有基本成了一個人的工作了,而且兩人也不愉快。同時,這也許項目的選題相關(guān),有些項目需要個人思考去解決問題,有些項目需要大家討論來解決問題。有的人不喜歡旁邊有人看著,有的人不喜歡總是看別人而自己不動手,這些都會成為結(jié)對編程的限制條件。因此,在結(jié)對編程前,我們應(yīng)該確定合適的選題,并且兩人不能太陌生,技術(shù)水平不能差別太大,要互相認(rèn)可對方。有相同的認(rèn)可,相同的興趣,合適的選題,充分的熱情,然后兩人結(jié)對進(jìn)行開發(fā),這樣才能發(fā)揮出結(jié)對編程應(yīng)有的功效,不至于將大量時間浪費在無謂的爭吵上。

  結(jié)對編程真的能夠帶來1+1>2的效果嗎?我認(rèn)為這很大程度上取決于我們自己的規(guī)劃,因為很多時候,我們需要自己獨立的思考,去實現(xiàn)一些想法,并不需要兩個人一天從早到晚一直坐在一起,面對著同一臺顯示器,一起思考,一起設(shè)計。

  下面介紹一下我的隊友林榕城。從三明治的角度出發(fā)——他是個技術(shù)能力非常強的人,有著強大的想象力,但是這些想象力往往會超出我們的實際能力,認(rèn)為任何問題都很簡單,從而造成一種心有余而力不足的景象,比較追求華麗,這與我所認(rèn)可的簡約美產(chǎn)生了分歧,不過,他確實是一個非常好的隊友,追求卓越,為我們的項目做出了非常多的貢獻(xiàn),并且工作積極,很大程度上督促著我,同時也糾正了我的許多編程毛病,給了我很大幫助。

  ***,來一張咱的合照:

[[41636]]

照片上,我是一名driver,但更多的時候,我充當(dāng)著一名navigator。

  結(jié)對編程,你明白了嗎?

原文鏈接:??http://www.cnblogs.com/foster/archive/2011/08/29/2158082.html??

【編輯推薦】

  1. ??
  2. ??相同中的不同:Java程序員應(yīng)該停止低看C#??
  3. ??程序員新招:Java與C++混合編程??
  4. ??IT界那些性感的讓人尖叫的程序員??
  5. ??看老外程序員如何向妻子解釋設(shè)計模式??
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2011-10-10 10:10:14

2011-05-10 09:22:28

軟件工程

2023-03-31 08:29:54

設(shè)計模式軟件工程架構(gòu)師

2013-01-30 10:03:01

結(jié)對編程編程語言

2013-05-06 10:22:07

結(jié)對編程敏捷開發(fā)敏捷管理

2013-11-28 10:22:37

編程結(jié)對編程

2023-03-10 07:43:50

UML圖OOA面向?qū)ο?/a>

2011-09-07 08:59:23

2011-04-15 13:39:05

云時代軟件工程之挑戰(zhàn)及

2010-01-27 09:33:40

結(jié)對編程

2013-06-20 09:38:57

2020-06-05 12:01:11

軟件工程C++Python

2011-09-08 10:26:49

2015-09-11 08:59:03

結(jié)對編程

2023-01-18 23:20:25

編程開發(fā)

2023-06-05 10:07:13

軟件工程平臺工程師

2009-07-24 09:43:09

軟件工程軟件開發(fā)

2012-01-09 09:09:15

2022-10-19 15:34:11

架構(gòu)軟件安全

2010-06-18 14:06:17

UML軟件工程
點贊
收藏

51CTO技術(shù)棧公眾號