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
270
コードを読みやすくしよう!〜秒で身に付くよい命名〜 (LT) - NIFTY Tech Day 2023
ニフティ株式会社
PRO
November 29, 2023
Tweet
Share
Video
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
83
dotfilesを作ろう - NIFTY Tech Talk #17
niftycorp
PRO
1
85
フロントエンドを始める前に どうしていっぱいツールがあるの? - NIFTY Tech Talk #17
niftycorp
PRO
1
130
サービスシステム監視 (シフト例)
niftycorp
PRO
0
65
スクラムマスターの技を磨く! ニフティのスクラムトーク vol. 1 - NIFTY Tech Talk #16
niftycorp
PRO
1
150
AWS基礎 / 2023 ニフティ新人研修
niftycorp
PRO
0
330
データベース / 2023 ニフティ新人研修
niftycorp
PRO
0
180
Other Decks in Programming
See All in Programming
Kotlin Multiplatform at Stable and Beyond (Android Makers 2024)
zsmb
0
600
Exploring the Implementation of “t.Run”, “t.Parallel”, and “t.Cleanup”
akarin
1
150
Balkan Ruby 2024 — How and why to run SQLite on Rails in production
fractaledmind
0
110
Direct Style Effect Systems The Print[A] ExampleA Comprehension Aid
philipschwarz
PRO
0
400
Good first issues of TypeProf
mame
1
300
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
130
How to improve maintainability and readability of your automated tests? ( #scrumniigata )
teyamagu
PRO
1
120
slow types ってなんだろう?
karad
0
210
Escolhendo (ou não) o melhor ORM para o seu projeto
andreiacsilva
1
140
TypeScriptコードの漸進的改善 / Progressive Improvement of TypeScript Code
medley
1
410
SIMD Parallel Programming with the Vector API
josepaumard
0
250
ts-morphを使ってコードリプレイスとASTへのハードルを下げる!
nyawach
5
320
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
226
17k
Into the Great Unknown - MozCon
thekraken
15
1.1k
Building an army of robots
kneath
300
41k
It's Worth the Effort
3n
180
27k
In The Pink: A Labor of Love
frogandcode
138
21k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
7k
Building a Modern Day E-commerce SEO Strategy
aleyda
22
6.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
23
1.7k
Facilitating Awesome Meetings
lara
43
5.6k
Typedesign – Prime Four
hannesfritz
36
2.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
12
1.1k
Robots, Beer and Maslow
schacon
PRO
155
8k
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