程式設計以外的依賴關係

2021-09-16 22:21:07 字數 2048 閱讀 1109

主要是關於依賴關係在程式語言領域外的一些場景,

並不只有**當中會呈現出這種模式, 歷史隨著時間也有,

考慮到程式語言本身就是用來模擬的真實世界, 這應該也存在相似性,

而且隨著程式語言描述世界的能力的增強, 是否能成為哲學語言也未可知.

最常見的依賴關係處理的場景, 可以說是模組的依賴管理,

比如 npm 模組的依賴管理, 是每個開發人員的基礎課,

比如模組 a 依賴 b 和 c, 而 b 依賴 e 和 f, 就是個樹狀的關係,

a 缺失了任何乙個依賴, 都不能完整地執行它的全部功能,

而且當 b c e f 已經存在時, a 的工作量相對來說就很小了,

此外依賴更新還有冒泡的關係, e 更新通常會冒泡到 a,

如果 e 更新時介面發生了改變, 而 a 未跟進, 更新就會失敗.

另乙個可以看到依賴關係的地方是函式呼叫,let f x y = z.

從函式式程式設計角度看, z 就對 f, x, y 三種產生了依賴,

由於函式 f 通常在**載入時生成, 那麼 x 和 y 滿足時, 就得到 z.

也就是說如果是非同步或者 lazy 的資料的 x 和 y, 那麼 z 會進入等待,

等到 x 和 y 都完成時, z 也就自動完成了. 這是程式語言裡的做法.

現實當中的技術或者產品, 大量的依賴也是存在的, 特別是說到產品,

比如說 vr 的成熟, 就依賴很多東西, 比如計算量, 比如網路頻寬, 比如人類生理的研究,

比如 alphago 的成功, 依賴 gpu 的強大效能, 依賴大腦神經的研究, 還有很多,

粗略地也可以看到, 現成生活當中的依賴條件往往不那麼清晰,

我們在事先評估某個技術是否成熟的時候, 大部分人看不清依賴有多少,

就像上面的例子展示的, 它的依賴不成熟時, 整個東西就無法完整, 技術也會打折扣.

通常我們僅僅以"條件不成熟"一句帶過, 其實也可以說成"依賴不滿足".

另乙個是在事情的依賴發生更新時出現的問題. 比如說大腦當中的乙個成見.

成見難以推翻的乙個原因是它總是有著自己的依據, 很多很多的依據,

這些依據就作為了依賴, 而依賴的完整也就支撐了成見持久地存在.

我們知道世界很大, 世界會變, 這些依據往往會有更多, 會發生改變,

然而我們的記憶並不容易改變, 即便改變了, 原先的成見也不會響應式地更新,

這都是人類記憶的乙個缺陷了. 隨著人見多識廣, 變老, 觀念也會固化,

年輕初入世界往往是不靠譜的, 他們不立足我們的很多依據, 但其實也就這樣.

人類世界的事情有著太多複雜性, 不是簡簡單單寫**可以媲美的,

因為有著太多的因素, 往往思考問題難以覆蓋到所有的依賴,

然而, 把整個世界的執行規則看做乙個函式的話, 它的引數也就是整個世界,

要得到正確的結果, 就需要正確的引數, 也就是整個世界,

我們都知道不可能, 因為人腦是及其有限的, 考慮的因素也是有限的,

也就意味著人類必然犯錯誤, 就像機器學習存在準確率問題一樣.

由於依賴性, 乙個問題往往會牽涉到大量因素, 其實是很累的事情,

特別是時間順序上, 比如 b 依賴 a 的工作結果, 那麼任何 a 的細節都會影響 b,

比如 a 因為私人的事情影響到了提交結果給 b 的時間, 就影響到 b,

那麼 b 的每個行為就是要依賴 a 那個小事麼, 當然不是.

這個時候引入介面和協議, b 依賴乙個協議, a 只要遵從協議完成即可,

比如 a 限定在某天完成, 那麼 b 就從之後第二天開始工作. 也就是進行了解耦.

換個角度看也是對依賴關係的一種 mock 的做法吧.

用程式語言解釋現實世界或許看著無聊, 但可惜大家都在這樣做,

隨著我們用程式語言描述越來越多的業務, 可以看到它有著強大的表達能力,

甚至在某些大型 3d 遊戲當中程式語言可以把整個世界造出來,

不得不欽佩這樣的能力, 人類簡直成了上帝, 想想真是後背發涼.

但是至少驗證整個世界可以用資料, 狀態, 函式, 邏輯這些概念表達了,

那麼可以想象, 未來更多的程式設計的概念可以在真實世界當中找到影子.

依賴關係 關聯關係

一 依賴關係 a物件作為b物件的區域性變數或是方法形參的,b依賴於a,這時候我們稱a與b之間存在一種依賴關係 給土豪打 物件作為形式引數 void calltuhaowithphone czphone phone void sendmessagetodiaosi 1 什麼是引數依賴 當a物件作為另外...

鍵值的依賴關係

鍵值觀察是一種使物件獲取其他物件的特定屬性變化的通知機制。控制層的繫結技術嚴重依賴鍵 值觀察獲得模型層和控制器層的變化通知。為接收某個屬性的鍵值觀察通知,以下三個要素是必須的 1,被觀察的類當中你關心的屬性必須遵循鍵值觀察的。2,你必須使用以下方法,將觀察方物件與被觀察方物件註冊 forkeypat...

複雜的依賴關係

支援ruby on rails是xruby最重要的目標.我最近一直在想怎麼能走捷徑能做到把乙個簡單的頁面render出來.儘管我們還有很多其他的標準庫需要支援,給rails更多優先順序的話可能讓專案得到更好的反饋.這樣即使暫時拋開activerecord,至少需要activepack包中的activ...