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

程序員最容易忽略的10大軟件開發(fā)定律

新聞
與其他領(lǐng)域一樣,軟件開發(fā)領(lǐng)域也有一些非常經(jīng)典的定律。這些定律包括了一些法則或軟件開發(fā)大神的名言。

與其他領(lǐng)域一樣,軟件開發(fā)領(lǐng)域也有一些非常經(jīng)典的定律。這些定律包括了一些法則或軟件開發(fā)大神的名言。

[[387524]]

1、康威定律

也就是所謂的“按照組織架構(gòu)來交付軟件”:

“任何一個組織在設(shè)計(jì)一個系統(tǒng)時,這個系統(tǒng)的結(jié)構(gòu)與這個組織的溝通結(jié)構(gòu)是一致的”。

你或許認(rèn)為可以通過一些方式來避免這個定律,比如跨功能團(tuán)隊(duì)的站會、進(jìn)度更新和決策矩陣,但最終都不可避免地會發(fā)生沖突和分歧,而這些將導(dǎo)致沖突和分歧的過程和結(jié)果。

2、布魯克定律

這個定律來自《人月神話》:

“在一個已經(jīng)延期的項(xiàng)目中增加人手只會讓項(xiàng)目延期更長”。

當(dāng)你意識到項(xiàng)目沒有取得預(yù)期的進(jìn)展,并嘗試從其他地方調(diào)取更多的資源,不僅會讓項(xiàng)目延期,而且更有可能交付一個更脆弱、更復(fù)雜的產(chǎn)品。

3、Zawinski 定律

“每一個程序都會膨脹到需要加入 Web 服務(wù)器,不膨脹的程序最終會被膨脹的程序所代替”。

對 Web 服務(wù)來說,就是“膨脹到需要用戶賬號登錄并收集所有用戶的數(shù)據(jù)”。對物理服務(wù)來說,就是“膨脹到需要加入一個不安全的 WiFi 訪問點(diǎn),設(shè)置了你無法修改的默認(rèn)密碼,以及一個 Web 服務(wù)器”。

4、帕金森定律

“一項(xiàng)工作會占用掉所有用來完成它的時間”。

如果你不給一個項(xiàng)目的里程碑階段設(shè)置截止日期,這個項(xiàng)目就永遠(yuǎn)完成不了。這就是為什么一定要給一個 MVP(最小可行產(chǎn)品)定一個固定的截止日期。

當(dāng)然,這個定律也可以用在數(shù)據(jù)、算力、內(nèi)存等方面:

“程序最終會把所有可用的存儲空間、CPU 時間和內(nèi)存用光”。

5、帕累托謬論

帕累托原則很容易被曲解,尤其是被管理層曲解,這通常會導(dǎo)致帕累托謬論的出現(xiàn):

“當(dāng)你完成了 80% 的工作,你會認(rèn)為真的只剩下 20% 的工作要做”。

但你可能低估了剩下的 20% 工作,因?yàn)樗赡苷加媚?80% 的時間。

6、史特金定律

“90% 的東西都是垃圾”。

是的,包括你的產(chǎn)品在內(nèi)。

7、皮特定律

“在一個等級制度中,每個員工都傾向于升到他們無法勝任的職位。因此,隨著時間的推移,每個崗位都有可能被不稱職的員工占據(jù)”。

8、伊格爾森定律

“你寫的任何超過 6 個月沒有看過的代碼,有可能已經(jīng)被別人改過了”。

這里說的 6 個月已經(jīng)是一個很樂觀的數(shù)字了。

不過,有一點(diǎn)需要注意,那就是“Yo Momma 推論”:只有作者才可以給代碼提出批評,任何其他的負(fù)面反饋都將被駁回。

9、格林斯潘第十定律

用在認(rèn)證方面:

任何一個定制開發(fā)的認(rèn)證系統(tǒng)都包含一個臨時的、非正式的、隱藏缺陷的、運(yùn)行緩慢的 Kerberos 不完整實(shí)現(xiàn)。

這可以概括成一般性的 NIH 規(guī)則:“任何一個定制開發(fā)的系統(tǒng)都包含一個臨時的、非正式、隱藏缺陷的、運(yùn)行緩慢的行業(yè)標(biāo)準(zhǔn)的不完整實(shí)現(xiàn)(因?yàn)槟憔芙^直接使用標(biāo)準(zhǔn)實(shí)現(xiàn))”。

10、冰山謬論

“一款新軟件的開發(fā)成本只占管理層預(yù)算的總成本的 25% 左右”。

運(yùn)維界的一句格言:

如果說軟件維護(hù)的成本占了總預(yù)算的 75%,那么這 75% 都應(yīng)該是運(yùn)維支持。

11、LGTM 困境

“如果你想快速提交 10 行代碼變更,可以把它隱藏在一個 1500 行的 PR 中”。

責(zé)任編輯:未麗燕 來源: 架構(gòu)頭條
相關(guān)推薦

2018-09-29 16:10:02

編程語言Java程序員

2009-11-23 15:22:16

2018-05-24 08:39:13

軟件開發(fā)自動化軟件測試

2022-05-27 16:40:24

軟件開發(fā)DevSecOps

2022-06-08 10:10:00

軟件設(shè)計(jì)設(shè)計(jì)文檔需求設(shè)計(jì)

2009-07-28 10:13:27

程序員軟件開發(fā)

2022-02-18 09:00:00

軟件開發(fā)周期時間項(xiàng)目經(jīng)理

2015-07-16 09:56:58

Web開發(fā)程序員技巧

2011-01-13 09:40:23

算法

2015-10-23 11:35:00

軟件開發(fā)發(fā)展趨勢

2017-09-19 09:14:40

2015-10-27 15:42:57

軟件開發(fā)發(fā)展趨勢

2014-10-20 12:19:09

程序員

2021-03-02 09:34:15

GitHub倉庫代碼

2017-09-26 13:08:51

程序員開發(fā)定律

2009-07-28 10:18:03

程序員誤區(qū)

2016-03-25 11:57:23

Java程序員C++

2020-06-12 07:40:30

程序員源碼設(shè)計(jì)

2013-12-09 10:38:08

程序員任務(wù)

2018-01-04 00:51:00

軟件開發(fā)物聯(lián)網(wǎng)人工智能
點(diǎn)贊
收藏

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