Github一天標星1k+,程序員需要知道的那些定理和法則
大數(shù)據(jù)文摘出品
編譯:蔣寶尚、曹培信
摩爾定律知道么?
帕金森定律講的又是啥?
作為一名合格的開發(fā)人員,除了本身碼力超強外,或多或少要知道幾條“”潛規(guī)則”,例如依賴倒置原則、魯棒性原則......
關(guān)于開發(fā)人員必須要知道的定義、原則以及理論,一位名叫Dave Kerr的小哥哥在Github上專門開了個科普帖子,為廣大程序員介紹必備的定理。
他將這個項目稱為:黑客信條(hacker-laws)。
下面文摘菌為大家編譯幾條,具體內(nèi)容,請大家移步GitHub☟
https://github.com/dwmkerr/hacker-laws
阿姆達爾定律
一個計算機科學(xué)界的經(jīng)驗法則,因吉恩·阿姆達爾而得名。它代表了處理器并行運算之后效率提升的能力。
并行計算中的加速比是用并行前的執(zhí)行速度和并行后的執(zhí)行速度之比來表示的,它表示了在并行化之后的效率提升情況。
可以看出,即使是一個50%可并行的程序,在超過10個處理單元的情況下也幾乎沒有什么提高,而一個95%可并行的程序,在超過1000個處理單元的情況下,仍然可以顯著提高速度。
炒作周期和阿馬拉定律
“人們總是高估一項科技所帶來的短期效益,卻又低估它的長期影響。”
—— Roy Amara |
Hype Cycle(技術(shù)成熟度曲線)是制技術(shù)興奮度度和發(fā)展成熟度的直觀表現(xiàn),最初由Gartner公司提出,如下圖所示:
簡而言之,這個周期表明,新技術(shù)及其潛在影響通常會引發(fā)一陣高度關(guān)注。技術(shù)團隊經(jīng)常馬不停蹄進入這些技術(shù)領(lǐng)域,但往往無功而返。這可能是因為該技術(shù)還不夠成熟,或者現(xiàn)實應(yīng)用還沒有完全實現(xiàn)。經(jīng)過一段時間后,技術(shù)的能力提高,使用它的實際應(yīng)用機會增加,團隊最終可以取得成功。Roy Amara最簡潔地總結(jié)了這一點——“人們總是高估一項科技所帶來的短期效益,卻又低估它的長期影響。”。
霍夫施塔特定律
表面上和帕金森定律截然相反的霍夫施塔特定律表明:“即使將霍夫施塔特定律考慮在內(nèi),你在一件事上花費的時間總是要比想象得要多。”
該定律與帕金森定律看起來相互矛盾,但其實兩者可以并行使用?;舴蚴┧囟杀砻?,在給一個復(fù)雜的項目制定截止期限的時候,人們很容易自信過度。
帕金森定律
帕金森定律(Parkinson's Law)是官僚主義或官僚主義現(xiàn)象的一種別稱,被稱為二十世紀西方文化三大發(fā)現(xiàn)之一。也可稱之為“官場病”、“組織麻痹病”或者“大企業(yè)病”。
帕金森得出結(jié)論:在行政管理中,行政機構(gòu)會像金字塔一樣不斷增多,行政人員會不斷膨脹,每個人都很忙,但組織效率越來越低下。這條定律又被稱為“金字塔上升”現(xiàn)象。
將帕金森定律與霍夫施塔特定律結(jié)合會得出一個更加悲觀的結(jié)論:你的工作范圍會不斷擴大,結(jié)項日期遙不可及。
The Unix Philosophy
這一理念表明的是:小即是美,程序做好一件事即可;程序員盡可能早地建立原型 ;可移植性比效率更重要 。另外數(shù)據(jù)應(yīng)該保存為文本文件 ,盡可能地榨取軟件的全部價值 。使用shell腳本來提高效率和可移植性 、避免使用可定制性低下的用戶界面,所有程序都是數(shù)據(jù)的過濾器。
具體內(nèi)容,請大家移步GitHub:https://github.com/dwmkerr/hacker-laws
【本文是51CTO專欄機構(gòu)大數(shù)據(jù)文摘的原創(chuàng)文章,微信公眾號“大數(shù)據(jù)文摘( id: BigDataDigest)”】