<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          程序員必懂的15大定律和7大原則

          共 1718字,需瀏覽 4分鐘

           ·

          2021-09-18 10:19


          開(kāi)源最前線(xiàn)(ID:OpenSourceTop) 猿妹整編

          綜合自:https://github.com/dwmkerr/hacker-laws、https://github.com/nusr/hacker-laws-zh


          從小到大,我們學(xué)過(guò)很多定律,見(jiàn)過(guò)許多法則。近日,猿妹在GitHub上找到一個(gè)專(zhuān)屬程序員的定律&法則合集項(xiàng)目。



          自從我知道這個(gè)項(xiàng)目后,已經(jīng)連續(xù)一周霸榜GitHub Trending前三,如今已經(jīng)在GitHub上獲得 4337 個(gè)Star,231 個(gè)Fork(GitHub地址:https://github.com/dwmkerr/hacker-laws


          這個(gè)倉(cāng)庫(kù)包含對(duì)一些定律、原則以及模式的解釋?zhuān)灿?/span>15大定律和7大原則,但不提倡其中任何一個(gè)。它們的應(yīng)用始終存在著爭(zhēng)論,并且很大程度上取決于你正在做什么。



          阿姆達(dá)爾定律 (Amdahl's Law)

          阿姆達(dá)爾定律是一個(gè)顯示計(jì)算任務(wù)潛在加速能力的公式。這種能力可以通過(guò)增加系統(tǒng)資源來(lái)實(shí)現(xiàn),通常用于并行計(jì)算中。它可以預(yù)測(cè)增加處理器數(shù)量的實(shí)際好處,然而增加處理器數(shù)量會(huì)受到程序并行性的限制。


          舉例說(shuō)明:如果程序由兩部分組成,部分 A 必須由單個(gè)處理器執(zhí)行,部分 B 可以并行運(yùn)行。那么向執(zhí)行程序的系統(tǒng)添加多個(gè)處理器只能獲得有限的好處。它可以極大地提升部分 B 的運(yùn)行速度,但部分 A 的運(yùn)行速度將保持不變。


          下圖展示了運(yùn)行速度的潛能:



          可以看出,50% 并行化的程序僅僅受益于 10 個(gè)處理單元,而 95% 并行化的程序可以通過(guò)超過(guò)一千個(gè)處理單元顯著提升速度。


          隨著摩爾定律減慢,單個(gè)處理器的速度增加緩慢,并行化是提高性能的關(guān)鍵。圖形編程是一個(gè)極好的例子,現(xiàn)代著色器可以并行渲染單個(gè)像素或片段。這也是為什么現(xiàn)代顯卡通常具有數(shù)千個(gè)處理核心(GPU 或著色器單元)的原因。



          布魯克斯法則 (Brooks's Law)

          軟件開(kāi)發(fā)后期,添加人力只會(huì)使項(xiàng)目開(kāi)發(fā)得更慢。


          這個(gè)定律表明,在許多情況下,試圖通過(guò)增加人力來(lái)加速延期項(xiàng)目的交付,將會(huì)使項(xiàng)目交付得更晚。布魯克斯也明白,這是一種過(guò)度簡(jiǎn)化。但一般的推理是,新資源的增加時(shí)間和通信開(kāi)銷(xiāo),會(huì)使開(kāi)發(fā)速度減慢。而且,許多任務(wù)是不可分的,比如更多的資源容易分配,這也意味著潛在的速度增加也更低。


          諺語(yǔ)九個(gè)女人不能在一個(gè)月內(nèi)生一個(gè)孩子 與布魯克斯法則同出一轍,特別是某些不可分割或者并行的工作。



          康威定律 (Conway's Law)


          系統(tǒng)的技術(shù)邊界受制于組織的結(jié)構(gòu)。改進(jìn)組織時(shí),通常會(huì)提到它??低杀砻?,如果一個(gè)組織被分散成許多小而無(wú)聯(lián)系的單元,那么它開(kāi)發(fā)的軟件也是小而分散的。如果一個(gè)組織更多地垂直建立在特性或其服務(wù)周?chē)?,那么軟件系統(tǒng)也會(huì)反映這一點(diǎn)。



          侯世達(dá)定律 (Hofstadter's Law)

          即使考慮到侯世達(dá)定律,它也總是比你預(yù)期的要長(zhǎng)。


          在估計(jì)需要多長(zhǎng)時(shí)間開(kāi)發(fā)時(shí),你可能會(huì)聽(tīng)到此定律。軟件開(kāi)發(fā)似乎不言而喻,我們往往不能準(zhǔn)確地估計(jì)需要多長(zhǎng)時(shí)間才能完成。



          技術(shù)成熟度曲線(xiàn) (The Hype Cycle & Amara's Law)

          我們傾向于過(guò)高估計(jì)技術(shù)在短期內(nèi)的影響,并低估長(zhǎng)期效應(yīng)。


          技術(shù)成熟度曲線(xiàn)是高德納咨詢(xún)公司對(duì)技術(shù)最初興起和發(fā)展的視覺(jué)展現(xiàn)。一圖頂千言:



          簡(jiǎn)而言之,這個(gè)周期表明,新技術(shù)及其潛在影響通常會(huì)引發(fā)一陣?yán)顺?。團(tuán)隊(duì)快速使用這些新技術(shù),有時(shí)會(huì)對(duì)結(jié)果感到失望。這可能是因?yàn)樵摷夹g(shù)還不夠成熟,或者現(xiàn)實(shí)應(yīng)用還沒(méi)有完全實(shí)現(xiàn)。經(jīng)過(guò)一段時(shí)間后,技術(shù)的能力提高了,使用它的實(shí)際機(jī)會(huì)會(huì)增加,最終團(tuán)隊(duì)也可以提高工作效率。羅伊·阿馬拉簡(jiǎn)潔地總結(jié)了這一點(diǎn):我們傾向于高估技術(shù)短期內(nèi)的影響,并低估長(zhǎng)期效應(yīng)。


          查看其它的定律和法則,可以到GitHub詳情頁(yè)查看,如果你自我感覺(jué)英文水平不行還有中文版哦,最后附上中文地址:https://github.com/nusr/hacker-laws-zh


          --- EOF ---


          推薦↓↓↓

          瀏覽 26
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  噜噜吧噜噜久久综合 | 一区二区三区无码翻白眼 | 亚洲伊人成人网站 | 免费A V在线播放 | 手机无码视频在线观看 |