Github一天標星1k+,程式設計師需要知道的那些定理和法則

大資料文摘發表於2019-05-15

Github一天標星1k+,程式設計師需要知道的那些定理和法則

大資料文摘出品

編譯:蔣寶尚、曹培信

摩爾定律知道麼?

帕金森定律講的又是啥?

作為一名合格的開發人員,除了本身碼力超強外,或多或少要知道幾條“”潛規則”,例如依賴倒置原則、魯棒性原則......

關於開發人員必須要知道的定義、原則以及理論,一位名叫Dave Kerr的小哥哥在Github上專門開了個科普帖子,為廣大程式設計師介紹必備的定理。

Github一天標星1k+,程式設計師需要知道的那些定理和法則    

他將這個專案稱為:黑客信條(hacker-laws)。

下面文摘菌為大家編譯幾條,具體內容,請大家移步GitHub☟

https://github.com/dwmkerr/hacker-laws

阿姆達爾定律

一個電腦科學界的經驗法則,因吉恩·阿姆達爾而得名。它代表了處理器並行運算之後效率提升的能力。

平行計算中的加速比是用並行前的執行速度和並行後的執行速度之比來表示的,它表示了在並行化之後的效率提升情況。

Github一天標星1k+,程式設計師需要知道的那些定理和法則

可以看出,即使是一個50%可並行的程式,在超過10個處理單元的情況下也幾乎沒有什麼提高,而一個95%可並行的程式,在超過1000個處理單元的情況下,仍然可以顯著提高速度。

炒作週期和阿馬拉定律

“人們總是高估一項科技所帶來的短期效益,卻又低估它的長期影響。”

—— Roy Amara

Hype Cycle(技術成熟度曲線)是制技術興奮度度和發展成熟度的直觀表現,最初由Gartner公司提出,如下圖所示:

Github一天標星1k+,程式設計師需要知道的那些定理和法則

簡而言之,這個週期表明,新技術及其潛在影響通常會引發一陣高度關注。技術團隊經常馬不停蹄進入這些技術領域,但往往無功而返。這可能是因為該技術還不夠成熟,或者現實應用還沒有完全實現。經過一段時間後,技術的能力提高,使用它的實際應用機會增加,團隊最終可以取得成功。Roy Amara最簡潔地總結了這一點——“人們總是高估一項科技所帶來的短期效益,卻又低估它的長期影響。”。

霍夫施塔特定律

表面上和帕金森定律截然相反的霍夫施塔特定律表明:“即使將霍夫施塔特定律考慮在內,你在一件事上花費的時間總是要比想象得要多。”

該定律與帕金森定律看起來相互矛盾,但其實兩者可以並行使用。霍夫施塔特定律表明,在給一個複雜的專案制定截止期限的時候,人們很容易自信過度。

帕金森定律

帕金森定律(Parkinson's Law)是官僚主義或官僚主義現象的一種別稱,被稱為二十世紀西方文化三大發現之一。也可稱之為“官場病”、“組織麻痺病”或者“大企業病”。

帕金森得出結論:在行政管理中,行政機構會像金字塔一樣不斷增多,行政人員會不斷膨脹,每個人都很忙,但組織效率越來越低下。這條定律又被稱為“金字塔上升”現象。

將帕金森定律與霍夫施塔特定律結合會得出一個更加悲觀的結論:你的工作範圍會不斷擴大,結項日期遙不可及。

The Unix Philosophy

這一理念表明的是:小即是美,程式做好一件事即可;程式設計師儘可能早地建立原型 ;可移植性比效率更重要 。另外資料應該儲存為文字檔案 ,儘可能地榨取軟體的全部價值 。使用shell指令碼來提高效率和可移植性 、避免使用可定製性低下的使用者介面,所有程式都是資料的過濾器。 

具體內容,請大家移步GitHub☟

https://github.com/dwmkerr/hacker-laws

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31562039/viewspace-2644517/,如需轉載,請註明出處,否則將追究法律責任。

相關文章