Github一天標星1k+,程式設計師需要知道的那些定理和法則
大資料文摘出品
編譯:蔣寶尚、曹培信
摩爾定律知道麼?
帕金森定律講的又是啥?
作為一名合格的開發人員,除了本身碼力超強外,或多或少要知道幾條“”潛規則”,例如依賴倒置原則、魯棒性原則......
關於開發人員必須要知道的定義、原則以及理論,一位名叫Dave Kerr的小哥哥在Github上專門開了個科普帖子,為廣大程式設計師介紹必備的定理。
他將這個專案稱為:黑客信條(hacker-laws)。
下面文摘菌為大家編譯幾條,具體內容,請大家移步GitHub☟
https://github.com/dwmkerr/hacker-laws
阿姆達爾定律
一個電腦科學界的經驗法則,因吉恩·阿姆達爾而得名。它代表了處理器並行運算之後效率提升的能力。
平行計算中的加速比是用並行前的執行速度和並行後的執行速度之比來表示的,它表示了在並行化之後的效率提升情況。
可以看出,即使是一個50%可並行的程式,在超過10個處理單元的情況下也幾乎沒有什麼提高,而一個95%可並行的程式,在超過1000個處理單元的情況下,仍然可以顯著提高速度。
炒作週期和阿馬拉定律
“人們總是高估一項科技所帶來的短期效益,卻又低估它的長期影響。”
—— Roy Amara
Hype Cycle(技術成熟度曲線)是制技術興奮度度和發展成熟度的直觀表現,最初由Gartner公司提出,如下圖所示:
簡而言之,這個週期表明,新技術及其潛在影響通常會引發一陣高度關注。技術團隊經常馬不停蹄進入這些技術領域,但往往無功而返。這可能是因為該技術還不夠成熟,或者現實應用還沒有完全實現。經過一段時間後,技術的能力提高,使用它的實際應用機會增加,團隊最終可以取得成功。Roy Amara最簡潔地總結了這一點——“人們總是高估一項科技所帶來的短期效益,卻又低估它的長期影響。”。
霍夫施塔特定律
表面上和帕金森定律截然相反的霍夫施塔特定律表明:“即使將霍夫施塔特定律考慮在內,你在一件事上花費的時間總是要比想象得要多。”
該定律與帕金森定律看起來相互矛盾,但其實兩者可以並行使用。霍夫施塔特定律表明,在給一個複雜的專案制定截止期限的時候,人們很容易自信過度。
帕金森定律
帕金森定律(Parkinson's Law)是官僚主義或官僚主義現象的一種別稱,被稱為二十世紀西方文化三大發現之一。也可稱之為“官場病”、“組織麻痺病”或者“大企業病”。
帕金森得出結論:在行政管理中,行政機構會像金字塔一樣不斷增多,行政人員會不斷膨脹,每個人都很忙,但組織效率越來越低下。這條定律又被稱為“金字塔上升”現象。
將帕金森定律與霍夫施塔特定律結合會得出一個更加悲觀的結論:你的工作範圍會不斷擴大,結項日期遙不可及。
The Unix Philosophy
這一理念表明的是:小即是美,程式做好一件事即可;程式設計師儘可能早地建立原型 ;可移植性比效率更重要 。另外資料應該儲存為文字檔案 ,儘可能地榨取軟體的全部價值 。使用shell指令碼來提高效率和可移植性 、避免使用可定製性低下的使用者介面,所有程式都是資料的過濾器。
具體內容,請大家移步GitHub☟
https://github.com/dwmkerr/hacker-laws
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31562039/viewspace-2644517/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式設計師做產品需要知道程式設計師
- 程式設計師程式設計入門一定知道!程式設計師需要學什麼?程式設計師
- 每個程式設計師都需要知道的概念和術語 - codeburst程式設計師
- 初級程式設計師需要知道的基本程式碼規範程式設計師
- 程式設計師的那些反模式程式設計師模式
- 程式設計師程式設計入門,物件導向需要知道這6點!程式設計師物件
- 程式設計師打工人的一天程式設計師
- 都是血淚,程式設計師傍身的生存法則(上)程式設計師
- 30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!Python程式設計師
- 還不知道這個原則的程式設計師,要小心了程式設計師
- GitHub---程式設計師的聖地Github程式設計師
- Github標星十萬+!憤怒的程式設計師發起996.ICU,小本本投訴過度加班公司Github程式設計師996
- 程式設計師技術入股的那些坑程式設計師
- 我關注的那些程式設計師大佬程式設計師
- 程式設計師:我終於知道post和get的區別程式設計師
- 一名好程式設計師到底需要什麼樣的標準?程式設計師
- GitHub標星120K+的JDK併發程式設計指南,連續霸榜GitHub終於開源了GithubJDK程式設計
- 程式設計師兼職那些事兒程式設計師
- sqlzoo需要知道的那些事SQL
- 遊戲設計師都需要的邏輯方法:分清目標和手段!遊戲設計師
- 1024程式設計師節即將到來,致敬那些默默工作的程式設計師們程式設計師
- 很多程式設計師都不知道的事,把GitHub放簡歷上可以加分!程式設計師Github
- 普通程式設計師和厲害程式設計師的差距!程式設計師
- 好程式設計師web前端分享想要學習前端需要學那些課程程式設計師Web前端
- 大廠程式設計師凡爾賽的一天程式設計師
- 你需要程式設計師鼓勵師嗎?程式設計師
- Java程式設計師都需要懂的「反射」Java程式設計師反射
- .Net WEB 程式設計師需要掌握的技能Web程式設計師
- 前端程式設計師需要了解的MySQL前端程式設計師MySql
- Java程式設計師需要學習的技能Java程式設計師
- Google程式設計師的一天是如何度過的?Go程式設計師
- 程式設計師的4條說法程式設計師
- 程式設計師前世今生之在大學的那些日子程式設計師
- 程式設計師那些牛B閃閃的禁術程式設計師
- 不黑程式設計師會死星人程式設計師
- 《那些年啊,那些事——一個程式設計師的奮鬥史》——26程式設計師
- 黑客和程式設計師有什麼區別?程式設計師目標是成神,黑客目標是弒神!黑客程式設計師
- 假如程式設計師的一天變得無厘頭程式設計師