現實世界能用程式模擬嗎

現實世界能用程式模擬嗎

寫了那麼多bug,記錄一點自己對程式程式碼的思考。

在程式設計世界裡,萬物皆物件,程式的本質是對現實的模擬。大到業務邊界的定義,小到程式碼中一個函式的封裝也許都可以看作是現實世界中一個角色的體現。

經常聽到有人說,程式碼程式很“聽話”,指令讓怎麼走就怎麼走。同樣,一個人的一舉一動都是受大腦的指揮。其實從某種意義上講,人也很“聽話”,如果說有人“不聽話”了,那可能是他聽從了另一個指令。

有時候想想,我們程式碼的設計跟現實世界真是不謀而合。例如:

1)當服務流量很高時,為保證系統的穩定性和可用性,通常會採取一些限流、降級、熔斷等措施來保護服務,而限量這些概念其實也是來自現實世界,比如當人流量、車流量很大的時候,為保證秩序的正常運轉需要一定的限流。

2)在面向物件程式設計裡,函式方法通常看作是一種對資料的操作,會有訪問修飾符來控制其對不同的類、包的可見性,仔細考慮其規律其實是現實世界中權利不能擴大化的體現。

3)計算機的指令在底層依靠零一編碼而成,自然界很多事物大都是由兩種狀態組合而成,同樣

我們看到的所有事情,在中國的哲學裡邊都是陰和陽兩種力量相互作用所形成,所謂一陰一陽之謂道。萬千複雜的程式究其本質也是由簡單的指令組合而來。

4)23種設計模式,每種模式的思想幾乎都是來自現實世界。

5)之前聽到一句話說架構的本質其實是一種權衡,仔細想想,在現實世界中也是事物都有兩面性,一種方案的缺點不是錯誤,只能說不適合現有的場景。所以我們能做的就是儘可能找最合適的方式,而在平常的業務方案設計中,也是在尋求一種更為合理的方式。

在程式碼的很多種方案、設計、場景中都能看到現實世界的影子。在糾結程式碼本身怎麼去設計的時候,結合現實世界可能會有新的啟發,能讓我們最終選擇相對更為合理的方式去處理一些問題,畢竟我們所處的世界是一個非常複雜而又穩定的系統。