成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊一聊 軟件系統(tǒng)中的“熱力學(xué)第二定律”

開發(fā) 前端
熱力學(xué)第二定律,也叫“熵增定律”。這是德國(guó)人克勞修斯提出的理論,最初用于揭示事物總是向無序的方向的發(fā)展、以及“孤立系統(tǒng)下熱量從高溫物體流向低溫不可逆”的熱力學(xué)定律。

 [[349445]]

熱力學(xué)第二定律,也叫“熵增定律”。這是德國(guó)人克勞修斯提出的理論,最初用于揭示事物總是向無序的方向的發(fā)展、以及“孤立系統(tǒng)下熱量從高溫物體流向低溫不可逆”的熱力學(xué)定律。

“熵”,就是事物的混亂/無序程度,在孤立系統(tǒng)下,熵是不斷增加的,當(dāng)熵達(dá)到最大值時(shí),系統(tǒng)會(huì)出現(xiàn)嚴(yán)重混亂,最后走向死亡。

它很好地解釋了:為什么一杯開水放著放著就涼了,為什么沙漠的沙丘全都驚人的相似,為什么水只能從高處往低處流,為什么落地的樹葉不會(huì)再變成樹。

盡管軟件開發(fā)不屬于物理學(xué)范疇,也不適用物理學(xué)中的定律,但有一個(gè)定律對(duì)他的影響實(shí)在太大了,就是“熱力學(xué)第二定律”,即“熵增定律”。常伴我們左右的軟件系統(tǒng)逃不掉熵增定律,仔細(xì)觀察,能夠發(fā)現(xiàn)它在漸漸地?zé)o序增長(zhǎng),變得越來越雜亂無章。

這篇文章就來聊一聊軟件系統(tǒng) 的熵增定律這件事。下面通過三個(gè)故事和業(yè)務(wù)方面事情,帶著大家從人性和客觀的角度出發(fā),觀察軟件系統(tǒng)下的物理定律。

1.破窗理論

設(shè)想下有兩個(gè)團(tuán)隊(duì)正在同時(shí)進(jìn)展同樣的項(xiàng)目。團(tuán)隊(duì)A,在項(xiàng)目開發(fā)過程中,盡管制定了詳細(xì)和周全的計(jì)劃,擁有能力最強(qiáng)的工程師,項(xiàng)目的最終結(jié)果也不盡人意,隨著項(xiàng)目時(shí)間推移,代碼變得很差。

而另外一個(gè)團(tuán)隊(duì)B,在開發(fā)項(xiàng)目時(shí),盡管也遇到了很大的困難和接二連三的問題,但是卻能保持良好的代碼狀態(tài),圓滿的完成了項(xiàng)目任務(wù)。

是什么原因造成了這個(gè)差異呢?

在城市中,我們總能發(fā)現(xiàn)事物相反面,例如:有整潔漂亮的建筑,而另一些卻是破爛不堪的房子。是什么造成了這么強(qiáng)烈的沖擊感呢?

這兩個(gè)現(xiàn)象的原因是一致的,就是“破窗理論”。

以一幢有少許破窗的建筑為例,如果那些窗不被修理好,可能將會(huì)有破壞者破壞更多的窗戶。最終破壞者甚至?xí)J入建筑內(nèi),如果發(fā)現(xiàn)無人居住,甚至就在里面定居或者縱火。在相當(dāng)短的一段時(shí)間內(nèi),建筑就會(huì)以驚人的速度被破壞掉,而且業(yè)主也不愿意去修理這個(gè)破爛的房子了。

對(duì)應(yīng)到軟件開發(fā)領(lǐng)域時(shí),這個(gè)”破窗戶“,可能是工程師不經(jīng)意間留下,可能是考慮不周導(dǎo)致,可能是低劣的設(shè)計(jì)遺留,也可能是錯(cuò)誤的需求導(dǎo)致。

之前我們團(tuán)隊(duì)內(nèi)部重構(gòu)過代碼架構(gòu),很多業(yè)務(wù)都進(jìn)行了重新設(shè)計(jì),但是隨著時(shí)間的推移,破窗開始出現(xiàn),后面就迅速就變得難以維護(hù),臃腫。當(dāng)然還有其他原因,但是最重要的原因就是對(duì)有問題代碼置之不理。

不要留著“破窗戶”,見到一個(gè)就就修一個(gè)。如果沒有足夠多的時(shí)間去修復(fù),最好就加上注釋或者是打個(gè)bug標(biāo)記,表示這部分代碼需要進(jìn)行修復(fù),防止窗戶破的越來越多。

2.溫水煮青蛙

美國(guó)康奈爾大學(xué)的科學(xué)家做過的一個(gè)溫水煮蛙實(shí)驗(yàn):將一只青蛙放進(jìn)沸水中,青蛙一碰沸騰的熱水會(huì)立即奮力一躍從鍋中跳出逃生;

又嘗試把這只青蛙放進(jìn)裝有冷水的鍋里,青蛙如常在水中暢游,然后慢慢將鍋里的水加溫,直到水燙得無法忍受時(shí),青蛙再想躍出水面逃離危險(xiǎn)的環(huán)境卻已四肢無力,最終死在熱水中。

實(shí)驗(yàn)說明的是由于對(duì)漸變的適應(yīng)性和習(xí)慣性,失去了警惕和反抗力的道理。

在程序系統(tǒng)中也是適用的,程序員們工作時(shí)間久了,就會(huì)進(jìn)入一種安逸的狀態(tài),稱之為“舒適區(qū)”。在舒適區(qū)中,程序員往往是一種麻痹的狀態(tài),對(duì)外界的變化感知麻木。

軟件代碼在時(shí)間的長(zhǎng)河中,慢慢地、悄無聲息的發(fā)生著變化,這個(gè)變化最終將會(huì)失去控制。

大多數(shù)的軟件系統(tǒng)都會(huì)從微不足道的小bug開始,慢性死亡。

軟件項(xiàng)目被各種各樣的小bug折騰,只能一天天的延期。

軟件項(xiàng)目中的每一個(gè)需求,就像是衣服上破的洞,被打上一個(gè)個(gè)的補(bǔ)丁,最后已經(jīng)無法看清軟件架構(gòu)本身的模樣,就像已經(jīng)無法看清衣服本身的顏色。

最可怕的是,每一個(gè)程序員都承認(rèn)這是正常、可以接受的狀態(tài),每天樂此不疲的進(jìn)行bugfix,他們就像溫水里的青蛙,享受著這種狀態(tài)。絲毫沒有感受到整個(gè)軟件系統(tǒng)正在變成垃圾,變的滿目全非。最后迎接他們的是臃腫的、難以維護(hù)的代碼。

水煮蛙和破窗效應(yīng)是不同的,他們的不同點(diǎn)在于是否有主觀意愿。

破窗問題上,軟件系統(tǒng)變得雜亂無章,是程序員們?cè)诳吹?ldquo;破窗”時(shí),并沒有及時(shí)阻止這種事情發(fā)生,從而認(rèn)為沒有人會(huì)注意到這個(gè)問題。

而煮蛙問題上,重點(diǎn)是“慢”,如果放在熱水中或者是快速升溫,青蛙是會(huì)奮力的一跳,逃出生天的。所以程序員真的只是沒有察覺,軟件系統(tǒng)就在慢慢的走向死亡。

3.自我為中心

下圖是一副非常有名的畫作,名為『從主教花園望見的索爾茲伯里大教堂』,作者康斯太勃爾,英國(guó)的著名油畫家。

有一天,康斯太勃爾去他的金主大教堂的主教Fisher先生家里玩。

Fisher主教跟畫家先生說:“親愛的畫家,你幫我畫一幅畫吧。把我和我美麗的妻子以及我這大教堂一起畫到畫里。我要把畫留在教堂,成為鎮(zhèn)堂之寶。”于是康斯太勃爾先生很高興的接下這個(gè)項(xiàng)目。

畫家開始了辛苦的工作,經(jīng)過一段時(shí)間終于把這幅畫完成了。

畫家畫這幅畫時(shí)可能心情不好,所以在教堂塔尖上方的天空有一片烏云。Fisher主教看到這幅畫后,很不滿意。雖然畫家把主教大人、主教夫人和教堂都畫進(jìn)去了,但是兩口子只在左下角露了個(gè)背影,這也就忍了。“下面那幾頭牛是怎么回事,為什么比我們占的鏡頭還多?”主教問。畫家說:“你沒看懂?我是在恭維您呢,是說您和您夫人好牛!”。Fisher先生沒什么話說了,然后又找到了新的吐槽點(diǎn):“為什么天空的云都是烏云?”。

他邀請(qǐng)畫家再去他家做客,重新觀察,以便于修改畫作。畫家很不高興了,就單獨(dú)把畫展出了。展出之后得到很多好評(píng),于是回信給Fisher主教:“你看,大家都說很好看,不用改了。”,F(xiàn)isher主教收到信后也怒了,回信就說了一句話:“給我改!!!”。

這就是關(guān)于需求的故事,我們?cè)倏瓷蠄D,看看教主和教主夫人被畫到了哪里?您能找到嗎?

大魚教主想要一幅畫,畫里有他們夫妻二人和教堂,需求表達(dá)完后,并沒有再對(duì)需求進(jìn)行更具體的說明。

更深入的思考,為何總是會(huì)存在描述不清的情況呢?

讀者們肯定也遇到過類似問題,究其更深層次原因,就是“自我中心”。

人的成長(zhǎng)過程就是一個(gè)“去中心化的”的過程。大約6歲之后,兒童的自我去中心化的能力得到了發(fā)展。開始能夠認(rèn)識(shí)到別人的感受、觀點(diǎn),但是每個(gè)人在社會(huì)化過程中,會(huì)呈現(xiàn)出不同的去自我中心化的狀態(tài)。

可以說是每一個(gè)成年人都有自我中心,我們的感受,想法,認(rèn)識(shí)不可能做到完全的客觀。所以我們需要利用結(jié)構(gòu)化思維,(可以參考我的另一篇文章《程序員必備能力——結(jié)構(gòu)化思維》)和系統(tǒng)化思考(可以參考我的一篇文章《程序員必備能力——深度思考》)。

在軟件開發(fā)過程中,同樣適用這個(gè)結(jié)論,我認(rèn)為至少表現(xiàn)如下幾點(diǎn):

  • 程序員在設(shè)計(jì)、開發(fā)時(shí),如果沒有做到完全的按照產(chǎn)品經(jīng)理的需求進(jìn)行,難免對(duì)代碼的設(shè)計(jì)進(jìn)行反復(fù)修改,導(dǎo)致熵增
  • 程序員正在開發(fā)時(shí),隨意變更、打亂架構(gòu)框架,導(dǎo)致代碼耦合增大,難以維護(hù)

4.業(yè)務(wù)

代碼熵增的常見的客觀原因是主要是業(yè)務(wù)壓力大,導(dǎo)致沒有時(shí)間或意愿講究代碼質(zhì)量。因?yàn)橄驑I(yè)務(wù)壓力妥協(xié)而生產(chǎn)爛代碼之后,開發(fā)效率會(huì)隨之下降,導(dǎo)致業(yè)務(wù)壓力更大,形成一種典型的惡性循環(huán)。

 

在軟件我們可以通過下圖一覽。

 

05.最后的總結(jié)

如果物理學(xué)只能留一條定律,我會(huì)留熵增定律。這個(gè)規(guī)律包括我們所有生命和非生命的演化規(guī)律,當(dāng)然軟件系統(tǒng)也無法逃脫。所有的世間萬物都無法逃避。

上面3個(gè)故事,是從人性和客觀的角度出發(fā),軟件系統(tǒng)的熵增一定是會(huì)發(fā)生。我們要做的是減少他發(fā)生程度。

熵增定律是針對(duì)宇宙的,那如果要針對(duì)地球,針對(duì)一個(gè)國(guó)家,針對(duì)一個(gè)企業(yè),針對(duì)某一個(gè)人,一個(gè)軟件系統(tǒng)呢?則要加上兩個(gè)限制條件——封閉系統(tǒng)+無外力做功。

所以怎樣減少對(duì)抗熵增呢?

我們可以針對(duì)這兩個(gè)條件:封閉系統(tǒng)和無外力做功。只要打破這兩個(gè)條件,我們就有可能實(shí)現(xiàn)熵減。方法有兩條:外部做功和開發(fā)系統(tǒng)。這部分內(nèi)容我們下一篇文章進(jìn)行分析!

本文轉(zhuǎn)載自微信公眾號(hào)「pointers」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系pointers公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: pointers
相關(guān)推薦

2017-08-08 09:16:33

熱力學(xué)代碼第二定律

2024-10-16 15:11:58

消息隊(duì)列系統(tǒng)設(shè)計(jì)

2017-06-29 13:22:15

2021-02-15 15:36:20

Vue框架數(shù)組

2020-12-11 11:11:44

原子類JavaCAS

2019-12-02 16:23:03

Python編程語言“垃圾”回收

2022-08-30 07:39:57

C++namespace隔離

2023-07-25 15:06:39

2021-01-04 08:09:07

Linux內(nèi)核Watchdog

2024-09-03 15:00:00

黑洞研究

2021-06-30 07:19:35

微服務(wù)業(yè)務(wù)MySQL

2022-03-06 20:35:41

并發(fā)串行CAP

2019-12-12 14:52:10

數(shù)據(jù)庫(kù)腳本

2022-11-09 08:05:15

JavaScriptsuper()

2023-07-06 13:56:14

微軟Skype

2020-09-08 06:54:29

Java Gradle語言

2020-01-17 09:07:14

分布式系統(tǒng)網(wǎng)絡(luò)

2018-03-26 09:01:58

數(shù)據(jù)中心停機(jī)中斷運(yùn)營(yíng)商

2022-01-28 08:47:25

軟件系統(tǒng)重構(gòu)

2021-01-28 22:31:33

分組密碼算法
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 久久久高清| 亚洲免费人成在线视频观看 | 中文字幕在线视频精品 | 久久国产精彩视频 | 欧美一区二 | 亚洲精品无 | 91精品国产色综合久久不卡98口 | 黄色免费观看 | 日韩有码一区 | 成人99 | 99精品视频在线观看免费播放 | 国产97在线视频 | 欧美黑人又粗大 | av在线免费观看网站 | 懂色av色香蕉一区二区蜜桃 | 久久com | 91久久久久久 | 91免费电影 | 中文字幕精品一区 | 天堂精品 | 亚洲成人精品在线观看 | 国产精品久久久久久久久久妇女 | 狠狠操狠狠干 | 中文字幕不卡在线观看 | 久久久久国产精品一区二区 | 日韩成人影院在线观看 | 国产免费一区二区 | 成人h免费观看视频 | 黑人精品欧美一区二区蜜桃 | 欧美日韩看片 | 久久久九九九九 | 中文字幕1区2区 | 久久久久国产 | 99精品久久久国产一区二区三 | 色爱综合网 | 欧美一区二区三区视频 | 91精品国产91久久久 | 久草网址 | 中文字幕视频在线免费 | 久久久久国 | 女人精96xxx免费网站p |