<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>

          Github標(biāo)星7.9K!程序員專屬的命名寶典來(lái)了

          共 2949字,需瀏覽 6分鐘

           ·

          2021-05-05 07:02


          開(kāi)源最前線(ID:OpenSourceTop) 猿妹編譯

          地址:https://github.com/kettanaito/naming-cheatsheet

          命名一直是程序員最煩惱的事情之一,一個(gè)好的命名可以讓一段代碼看起來(lái)可讀性更強(qiáng),后續(xù)維護(hù)的人員也會(huì)更輕松。因此,在團(tuán)隊(duì)中統(tǒng)一使用同一套命名規(guī)范是相當(dāng)有必要的。



          今天,猿妹要和大家分享一份命名寶典,專門幫助程序員如何命名,這個(gè)項(xiàng)目介紹了命名時(shí)需要考慮的數(shù)個(gè)要點(diǎn),旨在幫你解決命名困難的問(wèn)題,教你如何便捷、輕松地進(jìn)行命名,這個(gè)項(xiàng)目就叫——naming-cheatsheet。



          naming-cheatsheet已經(jīng)在Github上標(biāo)星 7.9K,累計(jì)分支 386 個(gè)(Github地址:https://github.com/kettanaito/naming-cheatsheet

          這些命名規(guī)則適用于任何編程語(yǔ)言,創(chuàng)建者以JavaScript為例演示,一起來(lái)看看吧:

          英語(yǔ)命名

          在命名變量和函數(shù)名時(shí)用英文名稱命名:


          /* Bad */
          const primerNombre = 'Gustavo'
          const amigos = ['Kate''John']

          /* Good */
          const firstName = 'Gustavo'
          const friends = ['Kate''John']


          不管你喜歡與否,英語(yǔ)是編程中的主導(dǎo)語(yǔ)言,所有編程語(yǔ)言的語(yǔ)法都是用英語(yǔ)編寫(xiě)的,還有無(wú)數(shù)的文檔和教學(xué)資料也是英文,通過(guò)英語(yǔ)編寫(xiě)代碼,可以極大地增加代碼的凝聚力。


          約定命名

          選擇一套命名規(guī)范并遵循它,在團(tuán)隊(duì)中保持命名的一致性,它可以是camelCase、PascalCase、snake_case或其他任何東西。許多編程語(yǔ)言在命名約定方面都有自己的傳統(tǒng),你可以查看自己的編程語(yǔ)言文檔或者學(xué)習(xí)一些Github上流行的知識(shí)庫(kù)。


          /* Bad */
          const page_count = 5
          const shouldUpdate = true

          /* Good */
          const pageCount = 5
          const shouldUpdate = true

          /* Good as well */
          const page_count = 5
          const should_update = true



          S-I-D命名原則

          名稱必須簡(jiǎn)短、直觀和描述性:
          • 短:輸入一個(gè)名稱一定不要花太長(zhǎng)時(shí)間,因此一定要簡(jiǎn)短

          • 直觀:名稱讀起來(lái)一定要直觀,盡可能貼近日常用語(yǔ)

          • 描述性:名稱必須可以用最有效的方式反映它的作用


          /* Bad */
          const a = 5 // "a" could mean anything
          const isPaginatable = a > 10 // "Paginatable" sounds extremely unnatural
          const shouldPaginatize = a > 10 // Made up verbs are so much fun!

          /* Good */
          const postCount = 5
          const hasPagination = postCount > 10
          const shouldPaginate = postCount > 10 // alternatively



          避免過(guò)度的簡(jiǎn)寫(xiě)

          不要使用縮寫(xiě),它們只會(huì)降低代碼的可讀性,找到一個(gè)簡(jiǎn)短的可讀的名稱可能會(huì)很難,但即便如此也別使用簡(jiǎn)寫(xiě)。


          /* Bad */
          const onItmClk = () => {}

          /* Good */
          const onItemClick = () => {}



          避免重復(fù)命名

          上下文的名稱不應(yīng)該重復(fù)


          class MenuItem {
            /* Method name duplicates the context (which is "MenuItem") */
            handleMenuItemClick = (event) => { ... }

            /* Reads nicely as `MenuItem.handleClick()` */
            handleClick = (event) => { ... }
          }



          反映預(yù)期結(jié)果

          變量或函數(shù)的命名應(yīng)該做到能夠反映預(yù)期的結(jié)果。


          /* Bad */
          const isEnabled = itemCount > 3
          return <Button disabled={!isEnabled} />

          /* Good */
          const isDisabled = itemCount <= 3
          return <Button disabled={isDisabled} />


          以上就是命名的6大原則,除此之外,創(chuàng)建者還介紹了命名模式,諸如A/HC/LC模式、動(dòng)作、前綴、單復(fù)數(shù)等模式,感興趣的不妨自己去學(xué)習(xí)一下吧。

          更多精彩內(nèi)容,關(guān)注我們▼▼
          瀏覽 77
          點(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片 | 欧美日韩亚洲成人论坛 | 美国一级av| 露脸熟女不卡视频 | 怕怕自拍 |