Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
コーディングにおける命名で気を付けていること
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Tanaka Daiki
May 19, 2020
Programming
67
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
コーディングにおける命名で気を付けていること
第3回 Cammel LT 会で登壇した時のスライド
Tanaka Daiki
May 19, 2020
More Decks by Tanaka Daiki
See All by Tanaka Daiki
tanacchi の自己紹介_就活編②
tanacchi
0
130
tanacchi の自己紹介_就活編
tanacchi
0
110
tanacchi の自己紹介_研究編
tanacchi
0
47
Other Decks in Programming
See All in Programming
Security issues being discussed on Web Platforms
petamoriken
0
1k
Workers Cache を知る
syumai
0
140
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
200
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
160
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
320
SREの越境 / SRE Collaboration
y0hgi
2
260
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
250
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
350
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
2
290
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
640
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
360
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
3.1k
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Documentation Writing (for coders)
carmenintech
77
5.5k
For a Future-Friendly Web
brad_frost
183
10k
Optimising Largest Contentful Paint
csswizardry
37
4k
Skip the Path - Find Your Career Trail
mkilby
1
240
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
470
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
400
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
710
Mobile First: as difficult as doing things right
swwweet
225
10k
Embracing the Ebb and Flow
colly
88
5.2k
Transcript
クリーンなコードを書くために 考えていること:命名編 九工大プロ研 tanacchi 1
tanacchi (たなっち) 九州工業大学 大学院 M1 教師なし学習の研究 九工大プロ研 初代 CTO (自称)
2 @q111026d twitter
Cammel さんとの接点 enPiT の参加校 JPHACKS 決勝で 運命の再開 りゅーと ちゃにおさん kugi
さん tanacchi 3 @q111026d
美しいコードを書こう (15min) 4 @q111026d
ATTENTION このスライドの内容は あくまで tanacchi 個人の見解であり, 所属する組織の公式見解でありません. 5 @q111026d
美しいコードを書いていますか? 6 @q111026d
美しいコードの利点 • 継続的な開発 • チーム開発 • 業務の引継ぎ 2 Days ハッカソンで変なバグを踏まないためにも
(最低限) きれいに書くのは必要だと思う において障害が起きにくい 7 @q111026d
美しいコードって何だ? 8 @q111026d
美しいコードには種類がある(と思う) •人間の目線 •コンピュータの目線 9 @q111026d
美しいコードの種類 •人間の目線 •コンピュータの目線 10 @q111026d
人間目線でも様々(?) 命名 DRY の法則 拡張性と保守性 ファイルの分割 オブジェクト指向プログラミング なんやかんや 小 大
具体的 抽象的 ディレクトリ構造 11 @q111026d
今回は命名に着目 命名 DRY の法則 拡張性と保守性 オブジェクト指向プログラミング なんやかんや 小 大 具体的
抽象的 ディレクトリ構造 ファイルの分割 12 @q111026d
美しいコードのために 先頭からスムーズに読み進められるかどうか tanacchi の中でのポリシー 13 @q111026d
美しいコードのために 先頭からスムーズに読み進められる 14 @q111026d
美しいコードのために 先頭からスムーズに読み進められる 15 @q111026d 1. 処理の内容を先に読み進めたり 2. 戻って変数の型などを確認したり プログラムの内容を理解できる することなく,
命名 Q. この関数は何を計算しますか? 16 @q111026d
命名 A. 数字 x の約数の和を求める関数 17 @q111026d
何が悪いのか 1. 意味が読み取れない関数名 2. 特に必要のないコメント 4. いや知っとるわ 3. 意味を読み取りづらい変数名 18
@q111026d
命名は大事やぞ(ニッコリ) Q. この関数は何を計算しますか? 多少長くなっても 意図が伝わることを重視しよう 19 @q111026d
美しいコードのために あ,約数の合計を 出すんだ~(察し) 複数形の “divisors” の方が いいよなあ 関数の中身を先に読み進めることなく 処理の内容を理解できる 20
@q111026d
美しいコードのために 先頭からスムーズに読み進められる 21 @q111026d 1. 処理の内容を先に読み進めたり 2. 戻って変数の型などを確認したり プログラムの内容を理解できる することなく,
他の具体例 22 @q111026d
関数編 関数:何らかの動作を記述するもの 「 動詞 」から始まるのが自然 • set_param (パラメータを設定する) • init_status
(ステータスを初期化する) 意味の伝わる範囲なら単語を省略してもいいと思う 23 @q111026d
関数編 真偽値(true/false)を返す関数 •末尾に「?」マーク(“?”を関数名に使える言語の場合) game_finished? , available? •be動詞 か 助動詞を使う is_game_finished
, can_access 24 @q111026d
変数編 結構難しい. image という変数名 => • 画像ファイル内のRGBデータの配列? • ファイルの名前? •
ファイルへのパス? わからなくなったら… 前の処理を読み返して確認しなきゃいけない => 先頭からスムーズに読み進められない • rgb_array • image_filename • image_filepath 25 @q111026d
美しいコードのために 先頭からスムーズに読み進められる 26 @q111026d することなく, 1. 処理の内容を先に読み進めたり 2. 戻って変数の型などを確認したり プログラムの内容を理解することができる
結局何が言いたかったか 1. 多少長くなってでも伝わる命名を 2. 「関数は動詞から始める」などの慣習を 3. 人のコードを真似しながら短縮化を 以下のことを考えています これらは共通のポリシーに基づく (他人が)
先頭からスムーズに 読み進められるコードを書く 27 @q111026d 変数宣言のタイミング,行分けを検討するときも
何をすべきか 書かなきゃ実感できないことが大半 • いろんなシチュエーションに出会いながら 自分なりの法則を見つける • チーム開発するときに コードレビューで議論するのが近道かも 28 @q111026d
おわりに 日々精進ですなあ 29 @q111026d