程序員開發者應該負責多少代碼行數?
當在越來越多的(de)組織中工作之後,我編譯時候遇到的(de)有趣問題也越來越多。嚴格來說, 也有了很多待辦事宜。而此處的(de)有趣并不是諷刺。這種有趣就像是你聽見一(yī)個醉漢誇誇其談他的(de)政治觀點,然後回答說“哦,那……很有趣”。
把這些問題放在哲學(xué)層面上真的(de)讓我很感興趣。它們讓我想去(qù)了解我從來沒有想過的(de)事情。今天我從衆多問題中選出一(yī)個,然後搞清楚。這個問題是一(yī)個客戶在不久之前問過我的(de):“開發者應該對多少代碼負責呢(ne)?”
為(wèi)什麽要問這個呢(ne)? 好吧(ba)。是因為(wèi)他們有一(yī)個值得稱贊的(de)目标。 他們有一(yī)個相當龐大的(de)遺留代碼庫,并且不想那些在其上工作的(de)人負擔過重。 “我們知道(dào)我們的(de)代碼庫有X行代碼,所以多少開發人員可(kě)以組成一(yī)個完美的(de)開發團隊?
他們以數據驅動的(de)方式問了一(yī)個很好的(de)問題。然而,由于缺乏更仔細的(de)檢查,所有理(lǐ)由都不成立。 我今天會說出為(wèi)什麽會如(rú)此。下面是一(yī)些關于這個想法的(de)問題列表。
集體代碼所有權
首先,此處不談針對集體代碼所有權的(de)異議。曆史上,應用程序開發的(de)經理(lǐ)出于特殊的(de)目的(de)往往将軟件工作和(hé)體力勞動做(zuò)對比。
有一(yī)堆需要挖的(de)洞? 分配給每個團隊成員一(yī)些挖洞的(de)任務。有一(yī)堆需要編寫的(de)代碼? 分配給每個團隊成員需要編寫的(de)代碼段。
當你意識到代碼與挖洞是不同的(de),代碼塊不是商品的(de)時候,你就要準備好應對麻煩事了。也就是說,你不能拿它們做(zuò)互換交易。所以當你對代碼進行了劃分,剛好碰上編寫 X 模塊的(de)人輕量兩個星期假,那你隻是把任務擱置,直到那個人回來。
個人代碼所有權也會帶來其他問題,但往往是對業務影響最大的(de)。有人稱之為(wèi)“公共要素”。但是無論你叫它什麽,當你開始談論團隊成員對現有代碼的(de)“負責”時,你應該鼓勵此類行為(wèi)。 因團隊本應該對代碼庫負責。 僅此而已。
代碼量意味着什麽呢(ne)? 無所謂?
對于那些年(nián)紀比較大的(de).NET開發者來說, 你可(kě)能會把你的(de)編程曆史分為(wèi)"BL"和(hé)"AL". 即"Linq前"和(hé)"Linq後"。
在 Linq 出現之前, 你寫了大量的(de)指令性的(de)代碼,,遍曆嵌套循環直到找到你想要的(de)對象。而Linq一(yī)經問世, 所有這些都變成了聲明式的(de)代碼。但它不是通過一(yī)對一(yī)的(de)智能海量映射做(zuò)到的(de)。它是将你的(de)冗長(cháng)的(de)就像快要爆炸了的(de)中子(zǐ)星一(yī)樣的(de)指令性代碼,分割成一(yī)系列更小的(de)部分。
編輯:--ns868