自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在開源項目中遇上令人難以忍受的其他程序員該怎么辦?

開發(fā) 項目管理
有點杞人憂天?同學(xué)們,總會有讓人無法忍受的家伙出現(xiàn),真的。這篇常見問題摘自Stack Exchange(免費且由社區(qū)支持的常見問題網(wǎng)站聯(lián)盟,其成員超過一百家)上廣受關(guān)注的每周系列博文,其中技術(shù)愛好者負責提出常見問題、其他用戶則幫助作出解答。

有點杞人憂天?同學(xué)們,總會有讓人無法忍受的家伙出現(xiàn),真的。

[[107747]]

這篇常見問題摘自Stack Exchange(免費且由社區(qū)支持的常見問題網(wǎng)站聯(lián)盟,其成員超過一百家)上廣受關(guān)注的每周系列博文,其中技術(shù)愛好者負責提出常見問題、其他用戶則幫助作出解答。

Nathan2055提問稱:

我為某個特定網(wǎng)站編寫了一套開源腳本,并與其他幾位開發(fā)人員一同將其搬上了GitHub(在這里我會隱去真實姓名)。在開始采用這套新系統(tǒng)之后,又有幾位新人開發(fā)者加入了進來,其中有一位還非?;钴S。不過,這位活躍的成員開始給項目帶來諸多改變。

首先,這家伙刪除了我們的版本管理系統(tǒng)(我們用的這套系統(tǒng)與Git不同,但作用類似——目前的版本被稱為v4.1.16)并聲稱只要項目組成員認為代碼已經(jīng)準備就緒、將其直接發(fā)布到網(wǎng)站上即可。這樣一來,現(xiàn)在我們就沒有一個能夠集中提供發(fā)行說明的空間了,這給我們的心情帶來了極大影響。

真正讓我感到出離憤怒、甚至一氣之下直接走人的狀況來自推送腳本。項目組中的其他幾位開發(fā)人員編寫了一套簡單的Python推送腳本。由于我們在多個網(wǎng)站上保存著數(shù)個腳本版本,因此我開始編寫一個規(guī)模更大的Java程序,希望利用其中的地理接口對原本代理中的Python腳本加以替代。我利用即時通訊工具向各位合作伙伴知會了這一消息,但這家伙跳出來給了我潑了一大盆冷水——他認為原本的Python腳本能夠?qū)崿F(xiàn)我這套新腳本的所有功能,而且更具輕量化特性(他還大肆鼓吹Python與Java相比的優(yōu)越性等)。我曾認真審查對原本的推送腳本,而且可以負責任地告訴大家——他所提到的功能這里一項都沒有。

所以現(xiàn)在我希望弄清楚自己該怎么辦。我在這個項目上花了很多時間,因此讓我直接甩手不管肯定是做不到的;但我發(fā)現(xiàn)自己也確實很難跟這位新人開發(fā)者合作。另外,他目前已經(jīng)成為項目當中貢獻量***的代碼提交者,甚至比主要開發(fā)人員表現(xiàn)得更為積極。我不知道自己該如何處理這種情況。各位朋友有沒有經(jīng)歷過這樣的難題?如果有的話,大家是怎樣處理的?

堅持自己的方式還是正確的方式?

gbjbaanb的回答(得到45票贊成):

1. 你可以退出。這也許算不上是***建設(shè)性的選擇,但有時候這卻是惟一的選擇。如果你決定這樣做,請千萬別再糾結(jié)不已、與伙伴們談?wù)撟约翰坏貌浑x開的種種理由。省下這些精力,把它直接用在其它有意義的事情上——換句話說,“換個方向繼續(xù)前進”。

2. 不理會他人,fork到底。其實你并沒有必須與其他人共同工作的理由。堅持fork,改進代碼并且允許其他人繼續(xù)活在以自我為中心的小世界里。你的新項目必將與舊方案進行正面競爭,而到底誰能勝出完全取決于你自己。事實能夠說明一切,如果舊方案依靠用戶基礎(chǔ)與功能壓倒了新項目,那么也許你真的判斷錯了。

3. 表達自己的意見。你可以與開發(fā)團隊的其他成員溝通并表達自己的憂慮,讓對方了解你的想法與感受。請不要把這些歸結(jié)成個人問題,記得堅持將重點放在你對于代碼改動的觀點、缺乏確切的質(zhì)量流程或者新決策并未得到每一位成員認可方面。也許大家認為舊方案還沒差到必須更換的程度,也有可能會有幾位團隊成員認同你的判斷、支持團隊著手修改舊有代碼。這樣一來,這位希望顛覆一切的活躍新人有可能失去自己的代碼提交權(quán)。當然,最終的結(jié)果也可能是你意識到了自己的失誤,并愿意與大家一道將項目恢復(fù)到原先的狀態(tài)。(后者的可能性是***的,除非大家真的發(fā)現(xiàn)項目從根本上出現(xiàn)了偏差。)

我們往往很難接受自己打理了很久的項目被剛剛進入的新人說三道四,保持自己熟悉的方向當然更安全也更讓人放心。不過換句話來說,新人對于舊有習慣性作法的改動本身其實是件好事——至少從宏觀意義上來看是這樣。

你的立場何在?

Ben McCormick的回答(得到33票贊成):

我覺得還有很多情況沒有表述清楚,特別是你自己在項目團隊中的角色定位。而最終答案的選擇恰恰與這一情況密切相關(guān)。

如果你是項目中的***并控制著git庫:

奪回自己的控制權(quán)。如果這家伙在沒有得到項目***同意的情況下就提交令人不滿的代碼,那么直接消除他的提交權(quán)即可。這才是開源項目的運作方式——除非某位用戶真正在團隊中贏得信任。你不需要也沒必要將權(quán)限徹底下放。

如果代碼庫由其他人掌控:

與項目團隊的***交流并表達自己的擔憂,并鼓勵對方采用更為嚴格的規(guī)劃與審批機制以掌控項目變動。如果***不認同你的建議,那我們可以選擇接受現(xiàn)實并繼續(xù)為項目作出貢獻,當然也可以選擇fork路線以根據(jù)自己的觀點來推動項目發(fā)展(記得帶上與你自己觀點一致的開發(fā)伙伴)。再有,你也可以選擇離開并轉(zhuǎn)而打理其它工作。無論如何,既然當前的狀況讓你感到很不舒服,那實在沒必要繼續(xù)忍耐下去。

接受現(xiàn)實

Deer Hunter的回答(得到15票贊成):

請原諒我的直率,但你的文章讀起來更像是純粹的咆哮與抱怨。

你說其他人喜歡盲目作出改變,但旋即拋出了自己認為合理的新方案——Java。

請先冷靜一下:思考問題不應(yīng)該非此即彼,我們不妨找到一種折衷的處理辦法(如果你還想繼續(xù)參與到這個項目當中,fork確實是最簡單的辦法——但這樣除了滿足你固執(zhí)的自我堅持之外起不到任何有意義的作用)。

請首先認真思考該項目當中每一位參與者的明確職權(quán)劃分,如果沒有清晰的劃分、這類職權(quán)之爭將是不可避免的狀況。沒錯,有時候我們必須信任其他成員作出的判斷。

嘗試谷歌給出的建議

Kurtosis的回答(得到4票贊成):

谷歌幾年之前就這一問題開展過技術(shù)討論,下面我來概括講講由此帶來的結(jié)論性意見:

1. 理解:了解你的社區(qū)成員參與當前項目的工作動力,再將其與其它機會成本進行比較——一定要用心保護好這些動力,它們是項目繼續(xù)生存并前進的根本因素。

2. 強化:建立起一個健康的社區(qū)環(huán)境,禮貌、尊重、信任與謙卑是其中必不可少的社會化組成部分。

3. 識別:找到害群之馬們搬弄是非的標志性征兆(這類例子不勝枚舉,但既然你已經(jīng)提出了這類問題,說明你之前可能已經(jīng)見識過不少相似的情況)。

4. 監(jiān)控:冷靜地堅持自己的立場,不要對侮辱、輕視、挑戰(zhàn)以及不尊重等行為作出反應(yīng),同時不斷強化前面提到的社區(qū)規(guī)范。
 

原文鏈接:http://arstechnica.com/information-technology/2014/01/how-to-deal-with-a-difficult-programmer-on-an-open-source-project/

責任編輯:陳四芳 來源: 51CTO
相關(guān)推薦

2014-03-27 11:10:46

程序員老程序員

2011-12-07 16:32:01

軟件專利

2015-10-10 08:52:13

程序員疲勞

2018-05-08 15:36:28

帶魚屏筆記本編輯

2018-09-05 16:25:03

程序員裁員焦慮

2020-04-20 13:59:06

微軟Windows操作系統(tǒng)

2017-06-12 11:14:52

程序員技術(shù)停滯

2017-06-12 15:53:40

程序員代碼編程

2020-02-25 15:29:04

程序員35歲以后怎么辦

2022-02-15 14:06:26

人工智能程序員圍棋

2013-03-28 15:50:37

程序員Java

2018-05-16 09:05:07

2012-12-03 09:37:39

ForefrontExchange

2015-03-24 13:53:26

程序員程序員精神崩潰程序員建議

2022-10-21 08:17:06

開源項目閉源

2022-04-14 08:02:06

SaaS應(yīng)用程序CIO

2020-09-21 15:52:47

程序員技術(shù)編碼

2021-06-09 06:31:22

微信QQ移動應(yīng)用

2022-05-10 18:36:17

開源軟件專利

2018-06-29 16:04:40

點贊
收藏

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