題:
我該如何與不太在乎代碼質量的同事打交道?
anonymousUser
2017-04-02 20:58:35 UTC
view on stackexchange narkive permalink

我是一個小團隊中的軟件開發人員。我是最初級的成員,具有幾年的專業經驗,但是由於我對項目所需的技術擁有最豐富的實踐經驗,因此被帶入(新成立的)團隊。

在過去的一年中一直運行良好,但我最常感到困擾的是我們最資深成員所犯的低質量代碼。我個人對代碼質量和样式非常嚴格,並始終檢查我所有觸摸過的文件不會對我們的Linter,StyleCop等造成新問題。但是,他主要忽略了這些問題。他認為這並不重要,似乎只想著眼於功能而不是形式。

現在,我不介意有人檢查雙空行或括號位置錯誤,但捕獲語句空了,缺少了我認為,null檢查或名稱錯誤的類是不應在我們的主分支上進行的事情。目前我們還沒有專門的代碼審查,而且我目前不希望我去爭取他們。

我通常不會與同行討論這個問題(我們都會犯錯誤,包括我自己在內),但與他討論此事時遇到了問題。他在公司的工作時間更長了,似乎對有關他的代碼的討論很敏感。換句話說,我不想惹惱他,因為我喜歡我目前的工作,而且我可能會和他合作更長的時間。他不是我的上司。我們在形式上是平等的。

我應該在團隊負責人的面前提出這個問題嗎?我不確定我是不是太過熱情或太嚴格,但是考慮到該產品將來對我們公司非常重要,我想儘早爭取質量。

評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/56627/discussion-on-question-by-anonymoususer-how-can-i-deal-with-a-coworker-who-沒有)。
同樣對我來說,他們的作品看起來像是學校的活動。
十六 答案:
Joe Strazzere
2017-04-02 21:15:39 UTC
view on stackexchange narkive permalink

我應該和團隊負責人一起提出這個問題嗎?

不。僅有幾年經驗的最初級成員不應向團隊領導抱怨最高級成員的代碼質量。

讓團隊領導來處理它-絕對不可能告訴他們他們還不知道的事情。隨著時間的流逝,他們容忍它的原因(或者甚至鼓勵以權衡取捨以加快產品上市時間)可能會變得更加明顯。和團隊領導者)不適合您的質量偏好,您可能需要在其他地方尋找。

也就是說,即使是初級成員也可以以身作則。確保您的工作是一流的,質量是無可非議的。確保您按時完成所有任務。確保在需要的地方幫助他人。也許其他人會注意到並希望這樣做。 p>

稍後,當您在小組中成為本地代碼質量專家後,便可以進行流程更改。也許您可以在那時提出領導代碼審查,或者幫助完善和執行小組的編碼標準。

評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/56551/discussion-on-answer-by-joe-strazzere-how-can-i-deal-with-a-coworker-誰做的)。如果您不同意一個答案,則“回答這個問題”框是一個表達不同觀點的理想場所(以及對這個答案的否決)。
這是非常糟糕的建議。您是團隊的一員,您對代碼的可維護性有既得利益,這是您工作的一部分。您當然應該與團隊負責人進行對話。團隊負責人並不是萬能的,我們不會閱讀每一行代碼,因此他們可能不知道任何特定問題。如果這些是可接受的編碼標準,那麼您的主管將說明原因。但是您絕對不應該只是等待這些原因隨著時間的推移而神奇地變得明顯。您非常想知道,唯一的原因是“因為這就是它總是會完成的方式”。
Masked Man
2017-04-02 22:21:15 UTC
view on stackexchange narkive permalink

您正在開發業務代碼,因此除了(實際上,不僅僅是)開發人員之外,您還需要像業務人員一樣思考。隨著您獲得更高的資歷,這種思維水平通常會提高。要說服人們開始遵循它,您需要一個比這更令人信服的理由:

我認為不應出現在我們主要分支上的東西

您需要數據來備份您的索賠。您當然可以去找老闆並建議採用所有閃亮的材料(儘管是初級產品),但準備回答這個問題,“這樣做會給項目帶來什麼好處?”

模糊的語句,例如“它使代碼更具可讀性/可維護性/可測試性等”。 (或者更糟糕的是,“如此推薦”)並不能說服任何人改變他們經過實踐檢驗的方法。

請記住,您上級的“可憐”代碼已經完成了工作年齡。 “完成工作”是企業中最重要的事情。告訴人們只有通過您的“意見”來完成工作的更好的方法不會說服他們冒險。

我當然會鼓勵您推動團隊採用閃亮的方法資料,但準備投入所需的精力來收集數據以支持您的主張。

作為另一個提示,我希望您在說服前輩時不要使用本文中所使用的語氣。 “哈哈,你們真爛,我會教你如何做的”絕對不會奏效,“我有一個改善X的建議,我認為這些就是它會使我們受益的原因。您怎麼看?”更有可能被接受。

不確定這是否是您的意圖,但是談論“書中閃閃發光的東西”可能會碰到,好像您認為內容毫無意義。已經存在數十年的書籍和其他行業專家才是支持它的數據。在這種情況下,必須由OP總結自己的問題(例如,“與X的代碼相比,使用X的代碼更加困難,耗時,並且比我遵循最佳實踐的其他代碼有更多的錯誤,等等。”)他們不會去閱讀他的建議,也不會在乎不需要自己處理的代碼質量。
擁有代碼度量標準(例如,每個成員引入的錯誤)可能是從存儲庫中提取的好數據,但是需要謹慎進行,特別是如果高級人員對此表示懷疑。
@ray我認為他/她想說的是什麼,因為該理論在紙面上非常有用,但是當您的客戶喘不過氣來尋求成果時,理論和閃閃發光的代碼需要在生產率上退後一步。在我這個行業的短時間內,生產力和質量並不總是相關的。
@8protons所有客戶始終希望結果“現在”,但這不限於軟件行業。航空公司也希望他們的飛機“現在”並且花費更少。因此,應該為他們的工程師偷工減料嗎?飛機也依賴於軟件,所以這不僅僅限於物理框架...而且我敢肯定,如果軟件不穩定,您仍會生氣的客戶垂頭喪氣。質量肯定會達到這個水平。如果將“生產力”定義為“數量”,那麼花費100%的時間修復錯誤也將非常“富有成效”。
@ray我要說的是,我看到人們在X個小時內編寫好的代碼,而其他人在2 * X個小時內編寫幾乎完美無瑕,看上去很漂亮的代碼,而一天結束時,老闆對x和客戶對X小時的收費感到更加滿意。都是隨便的。您可以編寫可靠的代碼,而不必絕對防彈
@8protons我明白您的意思,您是對的:提高質量需要付出代價。我不會對此爭論。我的意思是:在任何地方,這都是事實。“有效”不是“唯一”相關措施。甚至泰坦尼克號在接觸水後也沒有立即下沉;悲劇發生後,工程故障暴露無遺。我的觀點是,*現在*偷工減料將使您*以後*累積的[技術債務](https://en.wikipedia.org/wiki/Technical_debt)。以後的任務將逐漸花費更長的時間來完成,等等。賬單總是遲早會到期。
-1
此外,請記住,OP是這裡的初級開發人員,如果他想改變一切,他必須從前輩那裡買下來。他在這裡採取的那種對抗性立場無濟於事。告訴年長者“你是個白痴,按照我說的去做”,即使有世界上最偉大的專家和所有支持你的提議的數據也無法奏效。
@MaskedMan我確實閱讀了完整的帖子。同樣,沒有人提倡對此事“對抗”。初中並不意味著能力不足或知情等;這很可能是辦公室政治和影響力的問題,而不是其他任何問題。我已經看到非軟件公司只是在公司任職的時間裡擔任高級工程職位,而不是他們在該領域的合格職位。如果OP只是在說出您的建議,那是正確的,它沒有幫助;不一定是錯誤的,但沒有說服力。讓客戶參與技術討論似乎有些過頭。
@ray“對抗性”部分是從OP的問題中摘取的,他在其中討論了老年人的密碼是如何“引起他的注意”的。我只是警告OP,當他出去說服人們改變事情時,不要抱那種心情。再一次,我一點也不是說OP是一名初級人員,這意味著他的能力不足,只是他將不得不更加努力地說服人們。“我認為,該代碼不應放在主要分支上”,這是*高級*可以避免的,因為他們已經建立了聲譽,因此他們的“意見”具有價值,所以初級必須贏得聲譽。
在這一點上要明確一點,如果一位高級軟件架構師要求我以某種方式編寫代碼,因為“在他看來,這是更好的方法”,那麼我很可能會遵循而無需爭論。(我肯定會*向*他詢問,但這是為了讓我能夠學習,而不是因為我不相信他的“意見”。)如果實習生或初級開發人員以這種方式編寫代碼是因為在他的“意見”中,最好是,在說服之前,我一定會問他很多問題。我希望這可以澄清我的意思。
@MaskedMan我認為您是對的。我認為“對抗性”是指我在評論中說過的話。
讓我們[繼續聊天中的討論](http://chat.stackexchange.com/rooms/56471/discussion-between-masked-man-and-ray)。
@ray *“帳單總是到期” *是正確的,還是我應該說... * Mordo *?
我喜歡篩選此處以及有關Stack Overflow的評論。哈哈,我發誓軟件開發人員通常沒有社交技能,而且自負很大。
-1
@MaskedMan,我明白你的意思。我遇到的問題是,您更多地關注*誰*在說什麼,而不是**在說什麼。不管是好是壞,我已經看到更多的“高級”人說的東西完全是無稽之談。例如。“您不需要查詢即可將數據插入數據庫”(實際報價)。如果有人聲稱他們的方法是“更好的方法”,那麼我想听聽它的“有效理由”;我不需要盲目接受某人對他們可以提出的任意“理由”(例如頭銜,資歷等)的主張,您也不應該:)
miroxlav
2017-04-03 11:28:12 UTC
view on stackexchange narkive permalink

我在以前的公司中確實經歷過。結束得不好。

我們兩個都在編寫代碼,這位資深同事非常熱衷於復制和粘貼編程。 (“記住,這沒有問題。”)遵循相同的思想模板,相同的代碼塊在代碼庫中分散了大約50次。我可以忍受,儘管我不是很喜歡。通過 try ... catch 進行空檢查並進行空異常處理很常見。一段時間後,我開始重構這些東西,並被告知我妨礙了工作,因為在更改之後,他不再能夠依靠舊的結構“從他的記憶中”進行編程。儘管修復的質量和消除的許多錯誤的質量,但我還是被告知“我損壞了代碼”,因為在業務中,沒人關心次要的代碼問題,唯一的標準是在最短的時間內完成工作並獲得滿意的客戶。使用代碼導致我不滿意,而且我也錯過了不能足夠快地“複製粘貼”的截止日期,因為我感到自己不想成為我期望的那樣“快速而直接的程序員”。最終,我離開了公司,找到了另一家在我認為是該領域標准上達到我期望的公司。它們通常非常高效,對細節的關注度不高。如果您不喜歡這種方法,請考慮是留在公司還是離開公司。

我認為您的“錯誤”可能是在更改您無權或無理由更改的代碼。我做同樣的事情,但只有當我被告知要在該領域進行更改時,才可以。在Scrum上,當我宣布已完成的工作時,我說:“在執行此更改時,我觀察到許多不必要的代碼重複,因此我對其進行了重構,以使我們將來可以更快地對該區域進行更改”。從來都不是問題。當然,公司文化也可以發揮作用。
@Michael-我沒有提及細節,但是我只更改了類,在這些類中我做了一些其他更改,類似於您所說的。您提到了混亂,但我們都沒有。如果有的話,我們可能會更好地發現(並同意)哪些更改是可以接受的,哪些更改是不必要的。如果在該位置進行了代碼審查,則可能會捕獲到該錯誤,但是我們沒有。如何不做一些事情是一個重要的教訓。
PagMax
2017-04-02 21:18:25 UTC
view on stackexchange narkive permalink

在這種情況下,我認為您無能為力。與您的團隊一起對高級成員提出質量問題會導致很多尷尬的時刻和對話。 (除非存在一個重大錯誤,否則由於該錯誤根本不會運行代碼)。否則,您可能會被認為是對自己有較高評價(或對他人沒有評價)的人。 。

我的建議是,盡力將代碼保持在所需的質量,並讓其他人執行自己的工作。同樣,您可以不時地因果地談論代碼質量,而無需將矛頭指向任何特定的人。在某些時候,人們會注意到您的努力,他們將檢查所有修訂歷史。他們會為此識別您的。此外,您有時可能會在團隊中處於相對較高的位置,可以“要求”團隊提供更好的代碼質量。

在這一點上,我認為您應該付出額外的努力,並儘自己最大的努力保持代碼質量,並向所有人表明您對使用乾淨的代碼很感興趣!

Michael Kay
2017-04-03 04:20:38 UTC
view on stackexchange narkive permalink

首先,您的同事可能知道他在做什麼,並且有這樣做的理由。例如,如果您要進行敏捷開發並每周向客戶展示原型,那麼這可能是一個完全合法的策略,即盡快實施盡可能多的功能,以便客戶/用戶可以看到設計並給出其觀點。 ,然後在您知道您對需求達成一致後,再擔心邊緣情況,錯誤情況和代碼質量。

其次,您的同事可能是一個善於了解全局的人並且不善於遵循這些小細節。我參與過多個項目,這些人具有遠見卓識並設定方向,為項目的成功做出了巨大的貢獻(儘管這樣的人常常最終自己不編寫任何代碼)。在這種情況下,需要其他人對細節痴迷。他們可能(也可能不會)認識到自己的描述,特別是如果您以積極的方式向他們展示。嘗試在不造成犯罪的情況下,找出他們對自己的長處和短處的評估(因此,在需要隊友幫助的地方)是否與您的評估相吻合。具有明顯的表現,而不是沉迷於“您認為應該編寫好的代碼的方式”。避免主觀批評(沒有兩個程序員在良好風格的所有方面都達成共識。)並專注於您有正當利益的代碼領域。編寫失敗的測試用例,並針對它們記錄錯誤。將註釋或TODO添加到代碼中,例如“需要在此處處理I / O故障”。

這些都不能證明空的catch語句和吞嚥錯誤是合理的!
如果您留下這些評論,請不要讓他們消極激進。最近我有幸看到別人遭受苦難,因為他們的隊友不斷留下類似``//的評論''``。同樣對於`//,我想知道如果用戶一次按下五個鍵會怎麼辦??-應該是`// TODO如果用戶一次按下五個鍵會崩潰。另外,請記住在錯誤跟踪器中記錄錯誤,而不僅僅是在代碼中記錄TODO。
“ ...這可能是一種完全合法的策略,可以盡快實現盡可能多的功能。”以我的經驗,這種“以後會改善質量”的心態是行不通的。它將越來越延遲,直到您陷入無法維護的混亂局面。如果您在1個月內推出了一個完整的(儘管很糟糕)的原型,那麼您的客戶可能會對未來的交付速度產生不切實際的期望。
可以肯定的是,以上評論直接達到了“沒有兩個程序員在良好風格的所有方面都達成共識”的觀點。
Stephan Branczyk
2017-04-02 23:28:48 UTC
view on stackexchange narkive permalink

目前我們沒有專門的代碼審查,並且我目前不希望我爭取他們。

是的,這就是您的要求需要(即使您認為不能)。

除常規代碼審查外,其他任何措施都無法解決這些問題。

如果您的團隊足夠大,請找其他人每週進行一次代碼審查。您只需要兩個人即可上手。當僱用新開發人員時,請他們加入。代碼審查實際上是入門的一種好方法。當然,這並不能解決您眼前的問題,但是假設您能夠找到願意參加的另一位隊友,那麼很容易獲得團隊領導的許可就可以開始比賽了。

除非您已經有大量的團隊成員參與(可能需要數年時間,但最終您必須從某個地方開始,否則就不要指望其他現有的開發人員加入)。永遠不會開始)。

並且請確保盡可能高效且無判斷地幫助運行這些代碼審閱。即使團隊負責人願意提供幫助,也不要指望他像您那樣徹底地研究該主題並儘可能有效地領導那些代碼審查,因為這基本上是您嘗試的想法。

同樣,這不能解決您的直接問題。您想改進他的代碼,而不僅僅是您自己的代碼。不幸的是,這樣的新習慣不會一夜之間出現。他們需要時間來發展。

關於《蒙面俠》的帖子:

關於需要數據來備份有關空檢查,吞嚥錯誤,錯誤的類名等的聲明。代碼完整這本書包含了備份此類聲明所需的所有數據。另外,您可以使用當前現有的分析包在代碼庫中跟踪其中的某些內容。例如,即使缺少關鍵信息,您也可以計算應用程序無提示失敗的次數。

但是我建議您不要浪費任何時間。與試圖跟踪該錯誤的後果相比,解決該錯誤要簡單得多。而且由於開發人員的自我意識很強,因此數據無論如何也不會改變主意。您的團隊領導也是如此。即使他在原則上同意您的意見,他也必須權衡良好編碼實踐的好處和與您的特定隊友不斷爭論的缺點。

我同意與另一位團隊成員,尤其是您所尊敬的團隊成員一起進行代碼審查。
Bernhard Barker
2017-04-03 14:09:43 UTC
view on stackexchange narkive permalink

您說嚴格遵守代碼質量,但是您沒有責任,因此從公司的角度來看這無關緊要。

重要的是公司的立場關於代碼質量。

如果有嚴格的公司政策,您可以使用它來與同事進行任何討論,但是嘗試去找主管會產生很多衝突,因此最好避免普遍的風格問題不會導致災難。

如果對此沒有嚴格的公司政策,我什至會考慮(與您的同事或主管一起)提出的唯一問題是

首先聯繫您的同事。不要告訴他事情的發展方式(因為您不應該以為自己了解得更多,而且沒有更快的方法可以使某人防禦。) 詢問,他會按照自己的方式做事,並回答一個論點,以解決可能存在的問題(也許他有充分的理由以他的方式做事)。

如果這不起作用,您可以考慮與您的主管一起提出來。

別指責或什至完全不提及另一位團隊成員-只要提出以下任何一項問題並指向代碼庫中的一個或兩個示例,並繼續使用上述相同的謙虛方法。

您的主管可能會檢查或要求您檢查誰編寫了代碼(如果可能),並且可能會導致您的主管與所述同事解決此問題。但是所有這些都將由您的主管決定。是的,這可能會導致您的同事認為您“把他拉出來了”,所以後果自負。


來自經驗豐富的程序員,應該完全避免您說的所有事情,但在“我們要死了!”中,這些都不是必須的。嚴重性。忽略的異常或缺少空檢查可能造成災難性的後果,但是有時它們在功能上也不必要或有意省略。類的命名完全不會影響我所知道的任何語言的執行(儘管存在反射),因此,比上述可能會在運行時引起問題的問題要輕得多,而且通常也完全基於觀點。

因此,我認為將所有這三項設置為大致相同的嚴重程度會傷害您的論點。

但是您當然可以拒絕在不符合您標準的環境中工作並將所有樣式問題升級為威脅生命的嚴重問題。

您的代碼庫中的代碼風格較差是“千篇一律的死亡情況”。就像您說的那樣,沒有任何東西本身就是“災難”,但是當您因為空的`catch {}`吞嚥而無法診斷出錯誤時,您會感到痛苦。當您明年花一倍的時間來維護自己的代碼時,您會感到愚蠢。作為專業人員,我們應該拒絕在不是新的代碼規範的基本代碼樣式級別的環境中工作。
@Gusdor沒有人每個人都聲稱代碼沒有*樣式*。只是這種風格就像立體主義博物館中的娛樂藝術一樣時尚。
@WeckarE。這不是錯誤。風格崩潰。
-1
-1
這要視情況而定。如果您所在的公司具有非編程行業背景,則優先級和期望會有所不同。例如,花大力氣修復舊代碼的3000行文件將不會得到重視。只要代碼有效,他們就在乎。
我認為這很麻煩。公司存在並生產產品以獲利。如果業務經理的政策是功能勝於形式是獲取最大利潤的最佳選擇,那麼您需要數字和統計數據來說服它們。需要改變此處的公司政策以實現您的預期結果,而不是一個人的態度。
如果這個人是高級的並且已經生產了一段時間這樣的代碼,那麼高層人士顯然會發現最終結果至少足以滿足其業務目標。您對此的態度應該是忘記同事,而轉而關注您的目的是如何幫助公司?如果您認為會-向更高職位證明(無需參考任何同事),並讓他們進行他們認為需要的任何更改。
Glen Pierce
2017-04-03 03:14:18 UTC
view on stackexchange narkive permalink

機構強制性代碼審查。

您不只是要求這種政策轉變而處於政治立場,但您可以將其建議給團隊的其他成員並獲得他們的支持。一旦您的絕大部分同意,請與較大的團體一起提出。這是您應該執行這些操作的重要原因: https://www.atlassian.com/agile/code-reviews

我們的辦公室做到了這一點,我很喜歡。 / p>

user8365
2017-04-03 16:35:59 UTC
view on stackexchange narkive permalink

儘管代碼質量很重要,但需要將其納入管理層的期望和團隊成員的技能水平的範圍內。希望在這方面有所改善是一件好事,但要專注於問題,而不僅僅是症狀。

您所建議的一切都是有原因的。用戶是否由於缺少需要調試的空檢查而出錯?每個程序員都應該知道,越早發現這些漏洞,他們越容易修復。他們。最好在代碼評審或某種過程中讓每一行代碼都受到關注。如果您沒有執行團隊認為最好的解決方案,就會遇到麻煩。如果允許一個程序員按自己的方式做事,那麼這些都不起作用。

在某些時候,很明顯,這個人的代碼比其他人創建的代碼引起的問題更多。由團隊來解決性能不佳的問題。希望每個人都可以在這些問題上達成共識,以尋求更好的代碼。

John Wu
2017-04-03 13:54:33 UTC
view on stackexchange narkive permalink

這是一個可以教育的時刻

我認為,如果您將團隊領導定位為學習的機會,那麼可以接近團隊領導。

告訴潛在客戶您有關代碼一致性的信息,並希望確保您遵循正確的標準。您是否應該寫出您認為適當的代碼質量水平的代碼?還是您應該做更多類似高級開發人員的事情?

通過這種方式提出問題,可以避免對抗,但要確保團隊負責人意識到這一問題。

P.S。我建議您不要急於求助,請準備好讓它下降。

Michael
2017-04-04 16:07:34 UTC
view on stackexchange narkive permalink

聽起來這不是高級同事的問題。如果有機會,人類通常會選擇阻力最小的路徑。您的問題是,過程並沒有執行您認為必要的質量標準。

請讓我平靜地接受我無法改變的事物,勇於改變我所能做的事情,以及了解差異的智慧。對這個過程有任何影響的位置。你能改變他們還是不能改變他們?

我基本上是在一次偶然的對話(或幾次對話)中嘗試收集信息,以弄清他們過去所做的事情以及他們的反對意見遵循您建議的做法。僅僅從這件事上,您就可能會感覺到可能會影響的事情。


您可能直接影響的事情會問更多高級團隊成員對您的代碼進行非正式的代碼審查。請記住,您是一個初級人員,因此您毫無用處-讓團隊中的高層人員檢查您的工作肯定會減少您引入的錯誤數量,並有助於您學習*。我認為您不太可能無法讓一個人同意這一點。

這樣做,不僅會使您對自己的代碼更有信心(即使您沒有這樣做)同事的代碼),但也許您會開始營造一種氛圍,在這種氛圍中,代碼審查被視為流程的重要組成部分。

*我很有趣。

+1代表“您的問題是該過程沒有實施您認為必要的質量標準”。
l--''''''---------''''''''''''
2017-04-04 17:59:31 UTC
view on stackexchange narkive permalink

沒人喜歡這樣的雜貨店櫃員。

您擔心自己的代碼,很快您的同事會認為您是該產品的所有者。

我遇到了類似的困境,我是高級開發人員,而同齡人則是初級人員,其中許多人對質量不感興趣。 >

Cesar Canassa
2017-04-04 12:47:33 UTC
view on stackexchange narkive permalink

根據我的經驗,代碼樣式確實很難實施,並且總是導致許多徒勞的討論。這是一個主觀問題,有些人對此有很強烈的意見。如果您真的很在意它,則應該說服您的團隊實施一個自動化的構建系統(例如:Jenkins),並在其上添加自動化的源代碼驗證。如果未刪除代碼,則構建會變成紅色,並且將不被接受。

我想這會遇到同樣的問題。作為大三學生,如果您不鼓勵他們進行代碼審查,您如何鼓勵他們使用自動化構建系統?他們有自己的流程,就他們而言,這是“有效的”。
這是不同的。OP指出,前輩沒有遵循Linters,所以我想這意味著該項目*有* Linters,但是前輩流氓並且不再遵循規則。另外,在提出這個想法時,他應該關注構建系統的其他好處,而不僅是棉絨。
Jasper
2017-04-04 18:50:25 UTC
view on stackexchange narkive permalink

我應該和團隊負責人一起提出這個問題嗎?

是。

但是,在這樣做之前,請先閱讀並確保您提出正確的要求“ this ”。

的確,作為初級成員,這不是您所說的“其他開發人員正在編寫不良代碼”的地方。但是,您認為可接受的質量代碼與其他團隊成員認為可接受的代碼顯然存在差異。 可以和您的團隊負責人討論。這樣,與別人的過錯無關,而更多的是尋找從此處繼續的好方法。這可能意味著您的團隊負責人告訴您可以放寬編碼標準。這可能意味著您最終找到了正確的中間立場。

無論哪種方式,由於人們所遵循的代碼標準不同,您都會感到不舒服,因此這應該是您所討論的。

目前我們還沒有專門的代碼審查,而且我目前還沒有看到我

確實,您不能按 push 進行代碼審查。但是,您可以建議使用代碼審查。甚至可能是他們認識到可以通過“新鮮的一雙眼睛”帶來什麼進步,並且使用專用的代碼審查可能就是這樣。

Phil Miller
2017-04-05 01:29:50 UTC
view on stackexchange narkive permalink

另一種不引起任何不利影響的方法是傾斜解決問題,這是團隊發展的過程之一。識別代碼庫中過去觀察到的一些錯誤,這些錯誤會在引起麻煩之前就遵守編譯器警告或其他工具。然後,您可以將其帶給團隊負責人甚至整個團隊,並建議將這些檢查中的相關警告類型轉化為構建/測試過程中的錯誤。沒有人喜歡在編寫並繼續編寫代碼後才需要重新編寫代碼。您可以通過這種簡便的方法來確保第一次就一切都正確,並避免出現可能的錯誤報告。

隨著時間的推移,您可以挖掘檢查人員可能擁有的更多錯誤類別。

另一個好處是,這種方法還避免了花費大量精力來解決對代碼的抱怨,這些抱怨始終與您的特定應用無關緊要。從錯誤的意義上講,警告可能不是誤報,但在沒有改變的意義上,警告可能是誤報。

Paul Sweatte
2018-04-17 20:19:05 UTC
view on stackexchange narkive permalink

這個詞是根本原因分析。如果您可以證明這些提交是一個或多個主要錯誤的根源,請在團隊會議或缺陷審查會議上作為一個小組討論這些提交,以提高對這些技術的負面影響的認識。如果不是這種情況,您還可以通過電子郵件將摘要發送給團隊,並請某人提供解釋,這樣至少您可以改善文檔。

參考



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...