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

          這個 6500 Star 的手冊幫你解決命名難的問題

          共 1651字,需瀏覽 4分鐘

           ·

          2021-02-23 17:25

          命名是一件很困難的事情,naming-cheatsheet 是一個命名備忘錄,記錄一些常見的規(guī)范約定,試圖讓命名變得更容易。接下來我們就來介紹下 naming-cheatsheet 提到的一些規(guī)范約定。


          使用英語

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

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

          不管你喜不喜歡,英語都是編程中的主要語言,幾乎所有的編程語言的語法都是用英語編寫的,以及無數(shù)的文檔和教材也是。通過英語編寫代碼,可以大大提高其通用性。對于我們國內(nèi)開發(fā)者來說,一定要避免拼音甚至是直接的中文命名。

          命名約定

          選擇一種命名的約定風(fēng)格,并嚴(yán)格遵守它,可以是 camelCaseParscalCasesnake_case,或者是其他任何的風(fēng)格,最重要的是要保持一致。許多編程語言在命名約定方面都有自己的規(guī)范,可以查看你所用的語言或者在 GitHub 上學(xué)習(xí)一些流行的源代碼。

          /*?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

          SID原則

          命名應(yīng)該簡短直觀并且具有描述性

          • Short:簡短,避免輸入太長;
          • Intuitive:直觀,命名必須自然地閱讀,并且盡可能接近自然語言;
          • Descriptive:以最有效的方式反映其作用或目的。
          /*?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

          避免過度的簡寫

          命名要簡短,但是要避免鉆牛角尖,命名最重要的是要讓人能看懂,過度的簡寫只會降低代碼的可讀性。

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

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

          避免上下文重復(fù)

          命名不應(yīng)與定義命名的上下文重復(fù),如果不降低命名的可讀性,請務(wù)必從命名中刪除該上下文。

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

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

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

          命名應(yīng)該能反映預(yù)期的結(jié)果。

          /*?Bad?*/
          const?isEnabled?=?itemCount?>?3
          return?

          /*?Good?*/
          const?isDisabled?=?itemCount?<=?3
          return?

          更多命名規(guī)范可以參考項目:https://github.com/kettanaito/naming-cheatsheet



          瀏覽 52
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  国内精品视频97 | 女人被操在线观看 | 人人操人人射 | 欧洲-级毛片内射 | 91香蕉视频在线观看免费 |