亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1458 | 回復(fù): 0
打印 上一主題 下一主題

重構(gòu)Coderetreat:探索簡(jiǎn)單的設(shè)計(jì) [復(fù)制鏈接]

論壇徽章:
2
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-04-30 10:08 |只看該作者 |倒序?yàn)g覽
  本文介紹了典型的coderetreat的結(jié)構(gòu)、內(nèi)容和意圖。文章的內(nèi)容來(lái)自于多次coderetreat活動(dòng)之后的反饋意見(jiàn),反映出了這些活動(dòng)的優(yōu)點(diǎn)和不足,并對(duì)它將來(lái)的發(fā)展方向提出了一些建議。
Coderetreat是什么?
在過(guò)去幾年里,每到周末,在全世界的各個(gè)城市中,就會(huì)有軟件開(kāi)發(fā)者成群結(jié)隊(duì)地聚在一起,他們會(huì)在一整天的時(shí)間內(nèi)不斷嘗試編寫(xiě)代碼,以解決某個(gè)給定的問(wèn)題,但不會(huì)完整地實(shí)現(xiàn)一個(gè)解決方案。如果你認(rèn)為這聽(tīng)上去有些瘋狂,那大概是因?yàn)槟銖膩?lái)沒(méi)有參與過(guò)coderetreat吧!
這里為那些沒(méi)有參與過(guò)coderetreat的讀者解釋一下:coderetreat是一種通常在周末舉辦的活動(dòng),軟件開(kāi)發(fā)者成群結(jié)隊(duì)地聚在一起,在為期一天的時(shí)間內(nèi)為自己編寫(xiě)代碼,以真實(shí)地反映自己的代碼水平,并且互相學(xué)習(xí)。這種活動(dòng)專注于實(shí)踐(敏捷)軟件開(kāi)發(fā)中的基本元素,強(qiáng)調(diào)
簡(jiǎn)單設(shè)計(jì)的基本原則
,即讓測(cè)試驅(qū)動(dòng)編碼,消除代碼重復(fù)、保持代碼的表達(dá)能力,并且不包含任何不必要的特性(稍后會(huì)進(jìn)一步進(jìn)行分析)。
這一思想是Gary Bernhardt、Patrick Welsh、Nayan Hajratwala和 Corey Haines在2009首先提出的。從那之后,這種思想得到了發(fā)揚(yáng)光大,以至于現(xiàn)在已經(jīng)舉辦了三屆“全球Coderetreat日”,在這一天時(shí),全世界各地都會(huì)分別舉辦coderetreat活動(dòng),有數(shù)以千計(jì)的開(kāi)發(fā)者參與其中。
2014年的全球活動(dòng)日
在全球近150個(gè)城市中展開(kāi)了coderetreat,參與者超過(guò)了兩千人。
一個(gè)典型的coderetreat通常(正如在
coderetreat.org網(wǎng)站
上所概述的一樣)包括以下內(nèi)容:
    要解決的代碼問(wèn)題(或kata)是創(chuàng)建一個(gè)虛擬的
康威生命游戲
(Conway's Game of Life),它通過(guò)應(yīng)用一些簡(jiǎn)單的規(guī)則,對(duì)跨越多代的細(xì)胞的生命和死亡進(jìn)行模擬。
    編碼活動(dòng)一共會(huì)舉辦五或六場(chǎng),每一場(chǎng)的時(shí)間是45分鐘。中間的休息時(shí)間可以進(jìn)行交談、用餐和飲酒,整場(chǎng)活動(dòng)的時(shí)間需要一整天。
    在具體過(guò)程中需要同時(shí)應(yīng)用結(jié)對(duì)編程和測(cè)試驅(qū)動(dòng)開(kāi)發(fā)方式。
    在每場(chǎng)編碼活動(dòng)結(jié)束后,所有的代碼必須被刪除,并且在下一場(chǎng)活動(dòng)開(kāi)始時(shí)要更換拍檔。
    參與者并不一定要在活動(dòng)中實(shí)現(xiàn)一個(gè)完整的解決問(wèn)題的方案。
    可以在活動(dòng)中加入不同的限制(例如:“方法不能夠返回傷任何值”、“不可交談”等等),因此,你可以從不同的角度對(duì)問(wèn)題空間本身、以及與他人合作的方式進(jìn)行重新探索與解讀。

雖然這種推薦的coderetreat形式相當(dāng)普遍,但也存在著許多可以靈活變通的地方,這取決于coderetreat的組織者打算強(qiáng)調(diào)參與者對(duì)于哪一方面的理解。比方說(shuō),在
遺留coderetreat
中,測(cè)試是針對(duì)一段“糟糕”的現(xiàn)有代碼片段進(jìn)行創(chuàng)建的。盡管如此,對(duì)以上這些指導(dǎo)原則的選擇有著很好的理由,因此,如果你希望活動(dòng)不要丟失原本的好處,為了避免這樣的風(fēng)險(xiǎn),最好還是不要過(guò)于偏離這些指導(dǎo)原則。當(dāng)然,對(duì)其中某一方面的改動(dòng)不會(huì)減弱活動(dòng)的基本原則的,那就是使用一個(gè)完全不同的kata(例如選擇生命游戲之外的項(xiàng)目)。選擇要活動(dòng)中要加入哪些限制條件同樣也完全取決于組織者。比方說(shuō),第一場(chǎng) 活動(dòng)中可以選擇完全不加入任何限制,或者可以在某場(chǎng)活動(dòng)的中途加入某種新限制條件。每種限制所造成的難度可能是完全不同的,這取決于參與者本身的經(jīng)驗(yàn)。比方如,如果在學(xué)生中間舉辦coderetreat活動(dòng),我們會(huì)選擇只加入一些較簡(jiǎn)單的限制條件,例如“ping pong”,它指的是每組中的成員之一(請(qǐng)記住,我們始終進(jìn)行結(jié)對(duì)編程。┤ゾ帉(xiě)測(cè)試(只編寫(xiě)測(cè)試代碼),而另一名成員將努力讓測(cè)試通過(guò)(讓兩位成員在活動(dòng)中互換角色也是一個(gè)不錯(cuò)的主意)。
在coderetreat網(wǎng)站上,有許多建議提出了各種不同類型的限制條件。比方說(shuō),對(duì)于一組更資深的參與者來(lái)說(shuō),你可以嘗試
TDD as If you mean it
方式,這是一種由Keith Braithwaite最早提出的一種高級(jí)測(cè)試驅(qū)動(dòng)開(kāi)發(fā)實(shí)踐。另一種常見(jiàn)的限制條件是“不得使用可變的狀態(tài)。”不過(guò)你也要當(dāng)心,有些限制條件是有問(wèn)題的,它們可能會(huì)使編碼過(guò)程陷入停頓而無(wú)法繼續(xù),稍后我們會(huì)對(duì)此展開(kāi)討論。
你可能已經(jīng)注意到了,標(biāo)準(zhǔn)的指導(dǎo)原則中并沒(méi)有提到編程語(yǔ)言方面的限制。有些時(shí)間,活動(dòng)中可能會(huì)提議使用某種語(yǔ)言,但大多數(shù)的coderetreat活動(dòng)都會(huì)讓參與者打開(kāi)他們自己的筆記本電腦、使用任何他們所熟悉的語(yǔ)言和測(cè)試框架。因此,在一場(chǎng)coderetreat活動(dòng)中常常會(huì)出現(xiàn)多種不同的語(yǔ)言,這也意味著在結(jié)對(duì)的過(guò)程中,你可能會(huì)發(fā)現(xiàn)你完全不了解你的拍檔所使用的語(yǔ)言。這種現(xiàn)象會(huì)讓你感到興奮或是受挫,以及程度如何,完全取決于你個(gè)人的偏好,以及你的拍檔是怎樣的人。不過(guò),這一點(diǎn)或許也對(duì)我們使用的語(yǔ)言提出了一個(gè)疑問(wèn),即它能夠在多大程度上表現(xiàn)出我們的設(shè)計(jì)思路。
Coderetreat帶來(lái)的好處
那么,參與coderetreat活動(dòng)到底有什么好處呢?總的來(lái)說(shuō),它的好處在于你能夠發(fā)掘出作為一個(gè)程序員的真實(shí)水平,而無(wú)需擔(dān)心在工作中常常面對(duì)的項(xiàng)目期限和上司的期望。因?yàn)闆](méi)有人強(qiáng)迫你必須在一次活動(dòng)中完成一個(gè)解決方案,因此你可以自由地發(fā)掘新的思路,并對(duì)自己處理該問(wèn)題的方式進(jìn)行反思。因?yàn)槟愕呐臋n總是在變換,并且每場(chǎng)活動(dòng)中總是出現(xiàn)新的、具有挑戰(zhàn)性的限制條件,經(jīng)常會(huì)促使你以不同的方式看待并解決問(wèn)題。
對(duì)于coderetreat來(lái)說(shuō),回顧是必不可少的重要環(huán)節(jié)。在每場(chǎng)活動(dòng)之后都會(huì)進(jìn)行簡(jiǎn)單的回顧,而在全天的活動(dòng)結(jié)束后,每個(gè)參與者都會(huì)面對(duì)以下三個(gè)問(wèn)題:
    如果今天你學(xué)到了某些東西,那么你學(xué)到了什么?
    如果今天有什么事讓你感到吃驚,那是什么樣的事?
    如果你打算在下次活動(dòng)中進(jìn)行某些改變,那是什么樣的改變?

Coderetreat活動(dòng)應(yīng)該對(duì)于提高你作為軟件從業(yè)者的水平起到幫助,并幫助你深刻地理解自己和其他人的實(shí)踐能力。本質(zhì)上,當(dāng)你結(jié)束一次coderetreat活動(dòng)時(shí),你應(yīng)該成為一個(gè)更加優(yōu)秀的,或者至少是更加具有思考能力和反思能力的開(kāi)發(fā)者。
在過(guò)去的幾年中,我與我的一些同事共同參與并舉辦了一些coderetreat活動(dòng),并且也通過(guò)多種渠道從coderetreat的參與者那里獲取到了大量的反饋,不過(guò)主要的渠道還是在線調(diào)查問(wèn)卷,因?yàn)槿虻拈_(kāi)發(fā)者都可以參與這種問(wèn)卷。進(jìn)行這種調(diào)查的原因之一在于,我們想看看,將coderetreat作為一種提高參與者對(duì)軟件設(shè)計(jì)的認(rèn)識(shí)這一思想是否得到了證明。我們也希望了解能夠通過(guò)哪些方式改善coderetreat,或者至少是對(duì)標(biāo)準(zhǔn)的指導(dǎo)原則作出一些有意義的變化。
從coderetreat參與者那里收到的問(wèn)卷調(diào)查中,我們看到人們的反饋非常積極,他們普遍認(rèn)識(shí)coderetreat是一種很有價(jià)值的實(shí)踐經(jīng)驗(yàn)。以下這些典型的回復(fù)令我們感到相當(dāng)振奮。
    這是一次令人難忘的體驗(yàn),我希望能夠馬上再次參加。我會(huì)把它推薦給軟件開(kāi)發(fā)組織。在活動(dòng)結(jié)束后我感到筋疲力盡了,感覺(jué)就像是進(jìn)行了一次大腦運(yùn)動(dòng)。
    它為我了解其他人如何看待這些問(wèn)題和解決方案提供了一次良好的機(jī)會(huì)。
    Coderetreat太棒了。經(jīng)過(guò)最近幾次活動(dòng),我覺(jué)得對(duì)于自己的專業(yè)度具有了一種責(zé)任感,而且我經(jīng)常從中獲得比我想象中更大的價(jià)值。
    Coderetreat一定要成為面試過(guò)程中的一部分。J

以上這些留言來(lái)自于專業(yè)的開(kāi)發(fā)者,但新手也表現(xiàn)出了同樣的熱情,正如以下這些來(lái)自于還是學(xué)生的參與者的留言所表現(xiàn)的一樣:
    這是一次優(yōu)秀的活動(dòng),它讓學(xué)生們?yōu)閷?lái)做好了準(zhǔn)備
    這種活動(dòng)對(duì)我產(chǎn)生的作用連我自己都感到吃驚
    它確實(shí)對(duì)我產(chǎn)生了很大的幫助,我也從中獲得了許多樂(lè)趣
    參與的次數(shù)越多,越容易上手,并且還能收獲不同的點(diǎn)子,這真是太棒了

根據(jù)從全球各地收集到的coderetreat活動(dòng)參與者的反饋來(lái)看,很顯然它已經(jīng)成功地幫助參與者看到,對(duì)于某個(gè)相同的問(wèn)題,存在著多種不同的設(shè)計(jì)方案。實(shí)際上,通過(guò)人們對(duì)于那些標(biāo)準(zhǔn)的回顧性問(wèn)題的回應(yīng),也可以了解到參與者從coderetreat活動(dòng)中得到了哪些收獲。在所有回應(yīng)中,最常見(jiàn)的有以下幾個(gè)方面的收獲:
    TDD 與(或)單元測(cè)試
    其它語(yǔ)言
    結(jié)對(duì)編程
    處理相同問(wèn)題的不同方式
    設(shè)計(jì)

很顯然,對(duì)于設(shè)計(jì)與解決問(wèn)題這方面的回應(yīng)僅次于對(duì)于敏捷開(kāi)發(fā)中的基本元素的回應(yīng)。有一個(gè)結(jié)論或許令人感到有些吃驚,那就是許多參與者在活動(dòng)之間在TDD和結(jié)對(duì)編程方面的經(jīng)驗(yàn)還十分有限。不過(guò),從調(diào)查問(wèn)卷的統(tǒng)計(jì)中可以看到,有35%的參與者在軟件開(kāi)發(fā)方面的經(jīng)驗(yàn)少于五年,而超過(guò)65%的參與者的經(jīng)驗(yàn)少于十年,因此活動(dòng)參與者的主體來(lái)自于學(xué)生或初級(jí)程序員。
關(guān)于參與者在哪些方面最感到吃驚,以下的回應(yīng)是最常見(jiàn)的答案:
    TDD
    編程語(yǔ)言與范式
    與他人合作
    樂(lè)趣
    限制條件所帶來(lái)的影響

從這些回應(yīng)中,我們可以認(rèn)為coderetreat起到了良好的作用。人們聚在一起,收獲了令他們感到吃驚的樂(lè)趣,共同學(xué)習(xí)敏捷開(kāi)發(fā)中的某些核心技術(shù)(TDD、結(jié)對(duì)編程),并且通過(guò)在不同的設(shè)計(jì)限制條件下開(kāi)展工作,探索出了尋找解決某個(gè)編程問(wèn)題的解決方案的不同方式。不過(guò),改善的空間始終是存在的。畢竟,如果我們不能夠保持總是尋求對(duì)設(shè)計(jì)進(jìn)行重構(gòu)的機(jī)會(huì),并且擁抱變化,那我們就無(wú)法成為真正的敏捷開(kāi)發(fā)者。因此,coderetreat社區(qū)正在產(chǎn)生變化,從一種單一的形式轉(zhuǎn)變?yōu)槟承⿲W⒂谔囟愋蛦?wèn)題的活動(dòng)。其中包括遺留系統(tǒng)的coderetreat(前文已經(jīng)提到過(guò)這一形式),以及函數(shù)式編程的coderetreat。我們相信,探索更有針對(duì)性的coderetreat活動(dòng)是很有價(jià)值的。
Coderetreat有哪些不足之處?
雖然coderetreat本身是個(gè)很出色的概念,并且大多數(shù)參與者都從中收獲了樂(lè)趣和價(jià)值,但有些方面或許還可以進(jìn)行改進(jìn)。在整個(gè)活動(dòng)中,我們觀察到了以下一些情況:
    盡量事先已經(jīng)提供了大量的信息,但參與者還是經(jīng)常搞不清楚要做些什么,或是如何開(kāi)始。
    雖然已經(jīng)表示過(guò)所有代碼都要按照TDD的方式進(jìn)行編寫(xiě),但要讓每個(gè)人真正接受這種方式,往往還是要在一次活動(dòng)之后。
    當(dāng)你參與了多次coderetreat活動(dòng)之后,你會(huì)希望所解決的問(wèn)題不再是針對(duì)新手的。具體地說(shuō),你可能已經(jīng)對(duì)生命游戲感到厭倦了。
    雖然coderetreat有意識(shí)地專注于簡(jiǎn)單設(shè)計(jì)的四個(gè)原則,但未必能以一種明確的方式表現(xiàn)出這些原則。
我們從反饋中也注意到,一次coderetreat活動(dòng)的舉辦方式,將對(duì)整個(gè)活動(dòng)的成功起到巨大的影響,正如某位參與者所說(shuō)的一樣:
對(duì)于coderetreat活動(dòng)日的成功,以及參與者能夠從中得到多少收獲,舉辦者會(huì)起到巨大的影響。
不過(guò),我們也不認(rèn)為coderetreat的成功完全取決于舉辦者本身的技能與個(gè)性,它還取決于coderetreat活動(dòng)的組織方式。以上所提到的四個(gè)可改善之處都或多或少與coderetreat的組織有關(guān)聯(lián)。
首先來(lái)看一下第一個(gè)問(wèn)題,即參與者經(jīng)常會(huì)表現(xiàn)得毫無(wú)準(zhǔn)備。好吧,你可以選擇事先將所有信息都發(fā)布在網(wǎng)站上,并提醒參與者做好準(zhǔn)備,但它起不了多大的作用。畢竟,你是在要求他們?cè)谝恍瞧诘墓ぷ髦,犧牲一個(gè)周六的時(shí)間進(jìn)行參與。參與者來(lái)到這里的目的是從中獲得樂(lè)趣,而不是參與一次測(cè)試,并且為了這次測(cè)試預(yù)先進(jìn)行準(zhǔn)備。你能做到的唯一一件事就是,作為舉辦者,為你的工作做好準(zhǔn)備,讓參與者能夠盡快上手,并且在簡(jiǎn)單的過(guò)場(chǎng)后快速進(jìn)入狀態(tài)。
實(shí)際上,我們發(fā)現(xiàn)這一點(diǎn)將直接導(dǎo)致第二點(diǎn)問(wèn)題的存在,即讓每個(gè)參與者使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)。調(diào)查表明,在第一場(chǎng)活動(dòng)中,有超過(guò)10%的小組完全不寫(xiě)任何測(cè)試!實(shí)際上,只有進(jìn)行到第三場(chǎng)活動(dòng)時(shí),才能做到讓每個(gè)參與者使用TDD。我們相信,如果能夠提供一個(gè)初始的測(cè)試樁(Stub),就能夠解決準(zhǔn)備不足和TDD的接受過(guò)慢的情況,正如我們上面所描述的一樣。
解決第三個(gè)問(wèn)題是比較困難的,雖然我們已經(jīng)為coderetreat中要解決的問(wèn)題提出了一系列建議,包括業(yè)務(wù)類型的問(wèn)題,比如鍍金玫瑰(Gilded Rose)問(wèn)題,它是有關(guān)于某種產(chǎn)品的庫(kù)存系統(tǒng),其中包含了銷售日期等信息;或是模擬一個(gè)輪胎壓力監(jiān)控或比賽計(jì)分系統(tǒng)。這些問(wèn)題都無(wú)法做到像生命游戲那樣:?jiǎn)栴}本身很簡(jiǎn)單,而面對(duì)的挑戰(zhàn)很多。某個(gè)參與者也提到,康威游戲的算法給他留下了深刻的印象。
我是第一次接觸【生命游戲】,并且十分驚訝地發(fā)現(xiàn),一個(gè)簡(jiǎn)單的算法竟然能夠產(chǎn)生如此神奇的效果。

不過(guò),很明顯,如果coderetreat活動(dòng)打算進(jìn)一步壯大與成長(zhǎng),那我們就不能夠始終停留在生命游戲這一問(wèn)題上,而必須探索一些新的點(diǎn)子。或許
Boids Flocking算法模型
是一個(gè)不錯(cuò)的選擇,雖然我們還沒(méi)有在任何一次活動(dòng)中嘗試過(guò)這個(gè)點(diǎn)子。
第四個(gè)問(wèn)題是讓我們感到最有挑戰(zhàn)性的一個(gè)問(wèn)題。我們?nèi)绾伪WCcoderetreat活動(dòng)能夠像它本身所宣稱的那樣,強(qiáng)調(diào)簡(jiǎn)單設(shè)計(jì)的四個(gè)原則呢?我們的研究表示,這一點(diǎn)或許是標(biāo)準(zhǔn)coderetreat結(jié)構(gòu)中最弱的一個(gè)環(huán)節(jié)。雖然有許多問(wèn)卷調(diào)查的回應(yīng)都表示出了通用意義上的設(shè)計(jì)的重要性,但很少有回應(yīng)表示出他們對(duì)簡(jiǎn)單設(shè)計(jì)的四個(gè)原則有所收獲,至少?zèng)]有明確地表明這一點(diǎn)。多數(shù)的回應(yīng)顯得更為廣泛,例如以下這一條。
簡(jiǎn)化的問(wèn)題能夠讓你專注于使你的解決方案能夠運(yùn)行,并且會(huì)產(chǎn)生更清晰易懂的代碼
對(duì)于設(shè)計(jì)問(wèn)題的回應(yīng)太少,或許意味著coderetreat在某些方面應(yīng)當(dāng)表現(xiàn)得更為有效。
重構(gòu)coderetreat
通過(guò)對(duì)全球的coderetreat參與者進(jìn)行的問(wèn)卷調(diào)查,我們已經(jīng)致力于對(duì)應(yīng)那些可能會(huì)降低該活動(dòng)的參與者體驗(yàn)的問(wèn)題。我們組織了一次包含四場(chǎng)活動(dòng)的coderetreat,致力于更明確地應(yīng)對(duì)簡(jiǎn)單設(shè)計(jì)中的四個(gè)規(guī)則,同時(shí)也確保讓參與者能夠更容易地開(kāi)展工作,并實(shí)踐TDD。
在第一場(chǎng)活動(dòng)中,為了確保‘讓測(cè)試驅(qū)動(dòng)代碼’,我們?yōu)樗袇⑴c者提供了一個(gè)完整的單元測(cè)試集,以及一個(gè)推薦使用的單元測(cè)試集。我們明確地要求參與者使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)技術(shù)完成余下的代碼。在第二場(chǎng)活動(dòng)中,為了鼓勵(lì)參與者將他們的代碼改得更加清晰,我們提供了一個(gè)待測(cè)部件,以及部分測(cè)試,但有意地將這兩者的代碼質(zhì)量寫(xiě)得很低。我們要求參與者對(duì)它們進(jìn)行重構(gòu)(當(dāng)然,依然要應(yīng)用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)原則)。在第三場(chǎng)活動(dòng)中,我們將應(yīng)用某個(gè)設(shè)計(jì)原則,即移除重復(fù)代碼。我們依然會(huì)提供一個(gè)待測(cè)部件和一些單元測(cè)試,其中的代碼包含了某些不必要的重復(fù),并且要求參與者在重構(gòu)過(guò)程中消除這些重復(fù)。最后,在第四場(chǎng)活動(dòng)中,我們會(huì)使用一些遺留代碼(將活動(dòng)的方向轉(zhuǎn)變?yōu)檫z留coderetreat),并且沒(méi)有任何單元測(cè)試。代碼中包含了某些不必要的特性,參與者需要在重構(gòu)過(guò)程中移除它們。
最終的結(jié)果令我們非常滿意,尤其是整個(gè)小組能夠快速地上手并實(shí)際使用TDD。當(dāng)然,我們并不是說(shuō)每個(gè)人都應(yīng)該采取同樣的方式舉辦coderetreat。有些人可能會(huì)覺(jué)得,我們的方式已經(jīng)偏離了coderetreat常見(jiàn)的形態(tài),已經(jīng)不是一種真正的coderetreat了。但實(shí)際上,我們遵循了所有的通用原則。我們所建議的是,如果你是一位開(kāi)發(fā)者,并且能夠找到一個(gè)在你附近舉辦的coderetreat活動(dòng),那么就不要錯(cuò)過(guò)這次機(jī)會(huì)。而如果你不具備這種條件,那么我們建議你自己搞一次這樣的活動(dòng)。這種活動(dòng)不一定必須是公開(kāi)的,如果你的組織中的開(kāi)發(fā)者夠多(如果少于10人,就會(huì)減少可能的結(jié)隊(duì)數(shù)量),那么也可以在自己的住所舉辦一次(前提是你的房間要足夠大……)。我們就成功地在住所辦過(guò)由我們的學(xué)生參與的coderetreat活動(dòng)。
如果你確實(shí)打算自己舉辦一次coderetreat活動(dòng),我們有以下一些建議,至少在首次活動(dòng)中可以嘗試一下。
不要偏離本文之前所提到的標(biāo)準(zhǔn)形式,除了以下一些建議以外。
    在首次coderetreat將生命游戲作為kata,但可以考慮在接下來(lái)的活動(dòng)中選擇其它kata。你甚至可以選擇在一次coderetreat中挑選多個(gè)kata。
    如果可能的話,事先確定一種統(tǒng)一的編程語(yǔ)言,確保你的參與者們?cè)谧?cè)時(shí)都了解這一信息。
    如果可能的話,預(yù)先在房間中的所有電腦上都安裝好必要的語(yǔ)言和測(cè)試工具(這一點(diǎn)大概只適用于在住所內(nèi)舉辦coderetreat)。
    先提供第一個(gè)測(cè)試,并且為第二個(gè)測(cè)試提供建議。如果你的coderetreat支持多種語(yǔ)言,不一定要以代碼的方式提供它們,偽代碼就足夠了。
    不要選擇一些有可能會(huì)破壞參與者的動(dòng)力的限制條件。比方說(shuō),如果你為新手程序員設(shè)定了“不允許使用循環(huán)和條件語(yǔ)句”這樣的限制,那他有可能會(huì)因此裹足不前。另一方面,有經(jīng)驗(yàn)的開(kāi)發(fā)者會(huì)享受挑戰(zhàn)。請(qǐng)考慮一下你的參與者的情況,如果有所疑慮,不妨讓他們自行選擇合適的限制條件。
    留下足夠的時(shí)間以進(jìn)行討論和反饋,讓他們有機(jī)會(huì)從其他人身上進(jìn)行學(xué)習(xí)。不要因?yàn)榛顒?dòng)的時(shí)間太長(zhǎng),就壓縮回顧的時(shí)間。

我們希望,如果你積極參與coderetreat社區(qū)的活動(dòng),那么你應(yīng)該盡量找到某些方法,讓它使你對(duì)軟件開(kāi)發(fā)感到更有樂(lè)趣,并且更有干勁。以下是我們的一位參與者的留言:
我會(huì)尋找更多的樂(lè)趣,并進(jìn)行更多的嘗試。我也會(huì)嘗試?yán)眠@次機(jī)會(huì)提升自己的水平,而不是滿足于自己已經(jīng)習(xí)慣的工作。
關(guān)于作者

Dr David Parsons是新西蘭-奧克蘭梅西大學(xué)(Massey University)信息技術(shù)系的副教授。除了進(jìn)行學(xué)術(shù)研究之外,他也經(jīng)常為軟件教育協(xié)會(huì)和Knowledgehut提供專業(yè)課程的培訓(xùn)。David在英國(guó)開(kāi)始了自己的職業(yè)生涯,從那之后,他作為教育家/培訓(xùn)師、研究者和從業(yè)者,踏足了整個(gè)歐洲、北美和大洋洲。在2003年移居到新西蘭之前,他在Valtech公司Emerging Technologies部門(mén)擔(dān)任總監(jiān),這是一家總部位于倫敦的國(guó)際顧問(wèn)公司。他的從業(yè)經(jīng)歷包括在南安普頓索倫特大學(xué)(Southampton Solent University)擔(dān)任高級(jí)講師,在位于渥太華的公司The Object People里擔(dān)任培訓(xùn)師和顧問(wèn),在BEA Systems的國(guó)際教育部擔(dān)任首席技術(shù)專家。他也是有關(guān)計(jì)算機(jī)編程和web應(yīng)用程序開(kāi)發(fā)方面的書(shū)籍的作者,并且對(duì)于敏捷軟件開(kāi)發(fā)實(shí)踐進(jìn)行了深入的鉆研。他于2014年在IEEE Software雜志上首先發(fā)表了有關(guān)coderetreat的學(xué)術(shù)研究報(bào)告。他還是英國(guó)電腦協(xié)會(huì)(British Computer Society)以及新西蘭IT專家學(xué)院(New Zealand Institute of IT Professionals)的一位專業(yè)成員。

查看英文原文:
Refactoring Coderetreats: In Search of Simple Design
轉(zhuǎn)自
http://www.infoq.com/cn/articles/refactoring-coderetreats?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global
                       
                               
                    
                               
                       
                       
                       
                                時(shí)間:2015-04-22 21:34
來(lái)源:InfoQ
  作者:郭蕾
  
原文鏈接

本文來(lái)自ChinaUnix新聞?lì)l道,如果查看原文請(qǐng)點(diǎn):http://news.chinaunix.net/opensource/2015/0423/3243449.shtml
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP