Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コードを読みやすくしよう!〜秒で身に付くよい命名〜 (LT) - NIFTY Tech Day 2023
Search
ニフティ株式会社
PRO
November 29, 2023
Video
Resources
Programming
1
280
コードを読みやすくしよう!〜秒で身に付くよい命名〜 (LT) - NIFTY Tech Day 2023
ニフティ株式会社
PRO
November 29, 2023
Tweet
Share
Video
Resources
NIFTY Tech Day 2023
https://techday.nifty.co.jp/2023/
More Decks by ニフティ株式会社
See All by ニフティ株式会社
チーム力を高めるスクラム実践法:カンバン公開と課題攻略について - ニフティのスクラムトーク Vol. 2 - NIFTY Tech Talk #18
niftycorp
PRO
1
130
スクラムチームと認知負荷 - ニフティのスクラムトーク Vol2. / NIFTY Tech Talk #18
niftycorp
PRO
1
140
Visual Studio Code Dev Containers ススメ Python編 - NIFTY Tech Talk #17
niftycorp
PRO
1
85
dotfilesを作ろう - NIFTY Tech Talk #17
niftycorp
PRO
1
88
フロントエンドを始める前に どうしていっぱいツールがあるの? - NIFTY Tech Talk #17
niftycorp
PRO
1
140
サービスシステム監視 (シフト例)
niftycorp
PRO
0
66
スクラムマスターの技を磨く! ニフティのスクラムトーク vol. 1 - NIFTY Tech Talk #16
niftycorp
PRO
1
150
AWS基礎 / 2023 ニフティ新人研修
niftycorp
PRO
0
340
データベース / 2023 ニフティ新人研修
niftycorp
PRO
0
180
Other Decks in Programming
See All in Programming
The Final Frontier of Web Development: React Server Components vs Jakarta EE
ivargrimstad
0
260
地方こそサーバーレス、その意義に迫るサーバーレスPHP / Serverless PHP: The Rural Areas, and Why Serverless PHP Matters
seike460
PRO
2
110
Kubernetes Code Contribution入門
bells17
1
110
mb_trim関数を作りました
youkidearitai
PRO
1
260
TypeScriptとGraphQLで実現する 型安全なAPI実装 / TSKaigi 2024
hokaccha
5
2.9k
【2024年度 サイバーエージェント 新卒研修】システム運用の基本と戦略
shuntakahashi
3
680
GitHub Actionsの痒いところを埋めるサードパーティーランナー
dora1998
2
300
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
19
2.6k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
49
16k
仕様と実装で学ぶOpenTelemetry
drumato
2
1.3k
TypeScriptのパフォーマンス改善
yajihum
14
5.3k
[RubyKaigi 2024] Ruby Mixology 101: adding shots of PHP, Elixir, and more
palkan
0
160
Featured
See All Featured
Scaling GitHub
holman
457
140k
We Have a Design System, Now What?
morganepeng
43
6.8k
What the flash - Photography Introduction
edds
64
11k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
GitHub's CSS Performance
jonrohan
1025
450k
Side Projects
sachag
451
41k
Building Better People: How to give real-time feedback that sticks.
wjessup
356
18k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
117
18k
What's new in Ruby 2.0
geeforr
338
31k
The World Runs on Bad Software
bkeepers
PRO
61
6.8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
67
14k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
Transcript
Copyright ©NIFTY Corporation All Rights Reserved. コードを読みやすくしよう! 〜秒で身に付くよい命名〜 ニフティライフスタイル株式会社 システム開発部
浜村 純
浜村 純 新卒5年目 Webエンジニア
3 initialization_flag is_initializing is_initialized can_initialize should_initialize 初期化中? 初期化済み? 初期化可能? 初期化するべき?
🤔
なぜ命名は大事か? 4
命名がよくないと... コードの理解に時間かかる 人に聞かないとわからない 誤解による手戻りが発生 5
命名がよくないと... チーム全体の生産性の低下に… コードは、書く時間より、読む時間の方が遥かに多いため、 6
よい命名とは? 7
よい命名とは 変数や関数などが... 名前である程度中身の予想がつく 曖昧でなく、誤解を招かない 8
すぐに身に付くテクニック 9
࠷େʁ࠷খʁ 10ηʔϑʁΞτ? 🤔 曖昧な単語は使わない 10 DON’T limit = 10 DO
min | max
自分しかわからない略語は使わない 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…
数値の単位を明確にする DON’T timeout DO timeoutMs 12 ms, secs, px, kb,
mb.. ඵʁ ϛϦඵ? 🤔
Boolean型だとわかる名前にする DON’T spaceLeft() DO hasSpaceLeft() 13 is~ has~ can~ should~
? 🤔
Map型は key とvalue の情報を変数名に含める DON’T convertMap DO cityIdToPrefId 14 {key}To{Value}
{value}By{Key} key value 0123 13 0217 13 0787 14 🤔
もし英単語で迷ったら… 15
もし英単語で迷ったら... brokerage? agency fee? 🤔 Google翻訳より例文検索 海外の不動産サイトで どんな単語を使っているか 仲介手数料? 16
よく使う単語はチームで共有しよう 17 日本語 変数名 敷金 deposit 仲介手数料 agencyFee ... ...
まとめ • 生産性につながるので命名は大事 • 曖昧な単語、自分しかわからない略語はNG • 数値の単位を明確にする • Boolean型は is~
should~ has~ can~ • Map型は key とvalue を変数名に含める • 英単語で迷ったら例文検索と海外サイト • よく使う単語はチームで共有 18
None