天之道,權衡之道

2021-07-06 03:29:32 字數 1475 閱讀 3531

損有餘而補不足,天之道也。—《黃帝內經》

有沒有覺得這句話很熟悉?它其實出自黃帝內經。

中國古代哲學中,有乙個非常經典的思想就是中和思想(現代書籍中譯為中庸思想)。中和思想**於陰陽理論。

正如健康的人是陰陽之間的平衡。

當某一方過於強盛,就損之,某一方過於虛弱,就補之。

怎樣才算是平衡呢?關鍵就在於找準平衡點了。這便是玄機所在。

因為平衡點的位置因人而異、因時而異、因事而異動態調整的。並沒有什麼標準。

如果一定要說有什麼標準的話,我想大概是「最合適的才是最好的」。

這和我們的程式有什麼關係呢?

由於這個觀點最抽象,最基礎,所以在程式中最容易找到它的影子。

事物總有相對的兩個方面,沒必要非常扣上陰陽的帽子。

我的理解是,對於程式過程中遇到的各種問題,總會有些不同的解決方案。每個解決方案有其有點與據點。最終針對這個問題的策略是各個解決方案優點與缺點之間的權衡,而權衡無處不在。

沒有哪乙個點一定是對好的,最合適的才是最好的。

設計模式裡有這樣的觀點,應對變化最基本的思路就是**變化,封裝變化。

那麼把所有可能發生的變化都封裝起來,就是最好的設計了嗎?

可是多一次封裝就相當於多一層抽象,抽象則會帶來理解的困難。

經常有人跟我說c++難讀懂。那是因為我們習慣了c**。c++與c相比多了許多抽象的用法,所以難懂。

抽象層次太多帶來閱讀困難,就要減少抽象。

抽象太少難以修改,就要增加抽象。

因此設計模式提出的封裝變化,並不是要封裝所有的變化,而是修改與閱讀之間的權衡。

coach經常向我們宣傳tdd,因為這種邊開發邊測試的方法能夠有效地保證**質量。及時測試也能及時發現問題。

可是真正在開發過程中,沒有什麼人使用,因為寫起來太累了。

我並沒有認為tdd一定是多好或者多不好,在開發過程中用不用tdd,或者用到什麼程式,只是開發與測試之間的權衡。

開發人員寫**通常是為了開發,不太喜歡考慮測試的事情,那麼tdd的天平傾向了便於開發的這一段也很好理解了。

我們的檔案系統中,經常有大量的資料要管理。最原始的資料管理方法就是把資料乙個乙個地排好,需要這個資料時就從頭到尾按順序找。用腳趾頭想想都知道,隨著資料的增加,這樣檔案系統速度肯定快不了。

於是牛人們設計了各種各樣的資料結構,以樹為主,像b樹、紅黑樹這些。分別針對不同的儲存介質、儲存物件等因素設定的。

樹的形狀雖然各不相同,其原理都是一樣的,就是在合適的位置增加一些指標,指向某些特定的資料,再基於這些特定的資料進一步查詢,以些方法來更方便地找到所需要的資料。

當然,要儲存這些指標也要犧牲一些儲存空間。合理設計資料結構的話,也是指標也多,查詢速度也就越快,所犧牲的儲存空間也就越多。究其本質,還是時間與空間的權衡。

這樣的例子,還可以舉出很多很多。

。。。此處應當有個總結,但是我感悟不夠,寫不出來^_^

天之道,有得必有失

改變為何重要?因為人生無法用相同的自己,得到不同的未來。人活著總要做點事情,讓今天和昨天不一樣。人活百年,可以平凡,但不能碌碌無為,如果昨天和今天一樣,那又拿什麼東西向明天來證明,我是活了三天,而不是一天。我們都很想改變成乙個很厲害的人。我要努力學習,讓自己變成技術大牛。我要努力工作,讓領導給我公升...

mysql管理之道 mysql管理之道

mysql5.7 mariadb10.1,percona5.7 效能調優,高可用,監控 mysql安裝 新增jemalloc管理記憶體 mysqld safe malloc ib usr lib64 libjemalloc.so 5.7比5.6讀寫效能高2 3倍 安裝ssl加密 mysql生成免密登...

專案管理修煉之道 mobi 專案管理之道

專案管理修煉之道 mobi 道德經 被認為是由聖人老子於西元前6世紀撰寫的,是目前翻譯最廣泛的文字之一。它激發了從宗教到有關約會的有趣電影的一切靈感,並且作者使用它作為隱喻來解釋各種事物 甚至是程式設計 這是我想到開放組織中的專案管理時立即想到的內容。聽起來可能很奇怪。但要明白的地方,我來自 你應該...