程序員應該熟悉的定律法則

  • 2019 年 11 月 21 日
  • 筆記

二八定律

二八定律是19世紀末20世紀初意大利經濟學家帕累托發現的。他認為,「在任何一組事物中,最重要的只佔其中一小部分,約20%。其餘80%儘管使多數,卻是次要的」。因此又被稱為二八定律。

這應該是應用最廣泛的一個定律了。在代碼中也是約20%的核心代碼邏輯支撐了整個系統的運轉,對老系統的治理過程中我們也會先找出20%的代碼去重構,在大促備戰中先是梳理出20%的功能,而這些功能往往恰好是「黃金」功能。

海恩法則

海恩法則是德國飛機渦輪機的發明者德國人帕布斯・海恩提出一個在航空界關於飛行安全的法則,海恩法則指出:「每一起嚴重事故的背後,必然有29次輕微事故和300起未遂先兆及1000起事故隱患」。該法則強調兩點:「一是事故的發生是量的積累的結果;二是再好的技術、 再完美的規章,在實際操作層面,也無法取代人自身的素質和責任心。」

海恩法則對我們是一種警示,我們平時對測試中和線上的小問題都不可忽視,比如對於筆者所在的公司,每次大促之前我們都要對核心系統和核心流程做梳理,不能放過任何一個小的問題,而且越是平時不被關注的邊緣系統越容易出問題。

我們常說一切問題皆是人的問題,所以在平時我們還要注重人的自身素質提高的培養。

墨菲定律

墨菲定律的具體內容是「凡是有可能出錯的事就一定會出錯」,指的是任何一個事件,只要具有大於零的概率,就可以確定它可以發生。

該定律跟海恩法則常常被我們應用在大促之前的備戰中,當然平時也會經常用到,只是大促備戰的過程中更加重視。凡是我們懷疑的系統薄弱點,都要拿出來仔細過一遍,絕不能輕易放過一絲一毫的懷疑,避免因疏忽遺漏導致線上重大事故的發生。

康威定律

康威定律指的是「系統設計的結構必定反映其團隊的組織結構」。一個直接跟程序設計有聯繫的定律。換言之,有什麼樣的團隊結構就產生什麼樣的技術架構。

SMART原則

「SMART原則是目標管理中的一種方法,SMART原則中的S, M, A, R, T分別對應了五個英文單詞Specific(明確), Measurable(可衡量), Achievable(可達成), Relevant(相關),和Time-bound(有時限)」。

我們在指定一個架構目標的時候要符合這樣的原則,對一個老系統做架構升級改造,需要目標明確,達到控制和邏輯分離,子系統之間解耦;可衡量,各個系統上線之後是否會相互影響;可達成,分離和解耦的目標是一定可以實現的;相關,比如跟其他系統的邊界交互處要考慮的因素都有哪些;有時限,目標不能無休止進行下去,一定要有一個清晰的完成日期。

摘抄自《架構修鍊之道》