軟體技術方案中的輕重是什麼意思?

時間 2021-05-31 07:46:06

1樓:

什麼是架構?我理解是一種約束條件下,滿足某種應用場合的特殊設計。

例如,對於Web框架,無非就是由那麼幾大功能模組組成,乙個簡化的例子,乙個Web框架假設由如下幾個基本模組組成:

1. 網路處理

2. HTTP協議

3. Request/Response

3. Router

4. MVC

在絕大多數情況下,這些模組之間資料流程也是非常清晰的,基本都遵循乙個流程:

Net -> HTTP Protocol -> Request -> Router -> MVC -> Response -> HTTP Protocol -> Net

那麼這種情況,我給各個模組用乙個框架固定起來,這個就叫做乙個FrameWork,從大量具體的Instance中抽象出來一套共有的特徵,那麼這個重量級就用來描述這個抽象力度的級別了。

重量級的框架,對於符合這種抽象特徵的環境,那麼可以達到非常高的開發效率;但是如果需求背離了這個框架的約束那麼帶來的就是災難性的後果,例如你不可能說我想把衛生間的承重牆打掉,改乙個門。

例如,你用rails框架來做comet就不合適了,但是你用twisted就很容易完成需求。

輕量級的框架,更多是一些元件,用膠水簡單粘起來,那麼自由度相對就更高一些,不過帶來的問題就是開發效率相對較低。

實際更多的情況是,基於業務場合,哪怕你最早是選擇乙個非常輕量級的框架,最後總會演化成為乙個非常重量級,極度依賴於業務的重量級框架or系統。

其實由乙個更簡單的例子:繼承的重量級(耦合度)遠比組合要高,框架可以理解為對乙個class的繼承。

2樓:馮東

重量級的 framework 要求從程式的高層設計上服從 framework。

輕重是相對的。我舉乙個相對的例子。比如說,有些庫直接把 main() 函式封裝在庫里,你只能提供 callback。

而有的庫可以讓你選擇是否封裝 main() ,而且提供一些 API 讓你選擇如何構建 main(),後者就比前者輕量。

@用心閣 的答案列舉的不錯。不過大宗旨還是高層設計的服從度問題。

@vczh 那個 feature 多少的答案是無稽之談。就我上面的例子,難不成後乙個提供 optional main() hidden 的還比第乙個 dumb main() hidden 顯得 feature 少不成?

3樓:用心閣

重就是大材小用,輕就是因地制宜。

重的概念有很多重:

體積大(記憶體中的footprint)

執行時開銷大

過多的層次

複雜,有時只需要乙個子集

包含了不必要的功能,,不可插拔

有些功能是重量級的,比如分布式,比如可靠訊息傳輸不靈活,不能輕易改變,適應性差

開發部署使用上麻煩,有固定的使用模式

於此相反,輕的概念就是:

體積小(記憶體中的footprint)

執行時開銷少

適當的層次

簡單不可插拔,比如基於微核心

沒有重量級功能

靈活,容易輕易改變,適應性好

開發部署使用上容易,可以根據情況選擇使用模式

Python中 是什麼意思?

Janyee 這個運算子叫異或門 一般叫XOR gate 是數字邏輯中實現邏輯異或的邏輯門,幾乎所有程式語言都有這個運算子,功能見下面的真值表。若兩個輸入的電平相異,則輸出為高電平 1 若兩個輸入的電平相同,則輸出為低電平 0 你這個迴圈只會執行2次。第一輪迴圈執行 2 i 等於 2 0 第二輪迴圈...

紅酒中的單寧是什麼意思?

杯中漫時光 葡萄酒小白在剛接觸葡萄酒的時候,會發現很多專業術語,比如這個 單寧 小白無奈,這是什麼意思?聽我一點點的說 單寧,是英文tannin的音譯,它是葡萄酒中所含有的兩種酚類化合物其中的一種物質,尤其在紅葡萄酒中含量較多,有益於心臟血管疾病的預防。化學上 一種酚類化合物 懂不懂都行 味道上 本...

聖經中的 捨己 是什麼意思?

Philip 有時候人能捨命,卻不願捨己。那個就是有人喊口號,18年後又是一條好漢,卻不願意說,對不起 為主活,不是為自己活。這個可真不容易 傑克 捨棄自我的主觀思想,判斷,認識,感受,免得人依靠自我的小聰明而不再依靠神 在日常夫妻或情侶生活中,愛,就意味著去捨己。而現實生活中,相愛的雙方往往都只注...