Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コードを読みやすくしよう!〜秒で身に付くよい命名〜 (LT) - NIFTY Tech Day 2023

コードを読みやすくしよう!〜秒で身に付くよい命名〜 (LT) - NIFTY Tech Day 2023

ニフティ株式会社

November 29, 2023
Tweet

More Decks by ニフティ株式会社

Other Decks in Programming

Transcript

  1. Copyright ©NIFTY Corporation All Rights Reserved.
    コードを読みやすくしよう!
    〜秒で身に付くよい命名〜
    ニフティライフスタイル株式会社 システム開発部
    浜村 純

    View full-size slide

  2. 浜村 純
    新卒5年目
    Webエンジニア

    View full-size slide

  3. 3
    initialization_flag
    is_initializing
    is_initialized
    can_initialize
    should_initialize
    初期化中?
    初期化済み?
    初期化可能?
    初期化するべき?
    🤔

    View full-size slide

  4. なぜ命名は大事か?
    4

    View full-size slide

  5. 命名がよくないと...
    コードの理解に時間かかる
    人に聞かないとわからない
    誤解による手戻りが発生
    5

    View full-size slide

  6. 命名がよくないと...
    チーム全体の生産性の低下に…
    コードは、書く時間より、読む時間の方が遥かに多いため、
    6

    View full-size slide

  7. よい命名とは?
    7

    View full-size slide

  8. よい命名とは
    変数や関数などが...
    名前である程度中身の予想がつく
    曖昧でなく、誤解を招かない
    8

    View full-size slide

  9. すぐに身に付くテクニック
    9

    View full-size slide

  10. ࠷େʁ࠷খʁ
    10͸ηʔϑʁΞ΢τ? 🤔
    曖昧な単語は使わない
    10
    DON’T
    limit = 10
    DO
    min | max

    View full-size slide

  11. 自分しかわからない略語は使わない
    DON’T
    UPMg
    UPDc
    DO
    UserProfileManager
    UserProfileDoc
    11
    ୭Ͱ΋Θ͔Δུޠ͸˓
    tmp, str, num, regex, img, min,
    max, avg, cnt, init, eval, exec,
    prev, conf, env, doc, req, res…

    View full-size slide

  12. 数値の単位を明確にする
    DON’T
    timeout
    DO
    timeoutMs
    12
    ms, secs, px, kb, mb..
    ඵʁ
    ϛϦඵ? 🤔

    View full-size slide

  13. Boolean型だとわかる名前にする
    DON’T
    spaceLeft()
    DO
    hasSpaceLeft()
    13
    is~
    has~
    can~
    should~
    ਺஋? 🤔

    View full-size slide

  14. Map型は key とvalue の情報を変数名に含める
    DON’T
    convertMap
    DO
    cityIdToPrefId
    14
    {key}To{Value}
    {value}By{Key}
    key value
    0123 13
    0217 13
    0787 14
    🤔

    View full-size slide

  15. もし英単語で迷ったら…
    15

    View full-size slide

  16. もし英単語で迷ったら...
    brokerage?
    agency fee? 🤔
    Google翻訳より例文検索
    海外の不動産サイトで
    どんな単語を使っているか
    仲介手数料?
    16

    View full-size slide

  17. よく使う単語はチームで共有しよう
    17
    日本語 変数名
    敷金 deposit
    仲介手数料 agencyFee
    ... ...

    View full-size slide

  18. まとめ
    ● 生産性につながるので命名は大事
    ● 曖昧な単語、自分しかわからない略語はNG
    ● 数値の単位を明確にする
    ● Boolean型は is~ should~ has~ can~
    ● Map型は key とvalue を変数名に含める
    ● 英単語で迷ったら例文検索と海外サイト
    ● よく使う単語はチームで共有
    18

    View full-size slide