Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
たかが命名、されど命名
Search
44
April 04, 2019
Technology
2
1.1k
たかが命名、されど命名
44
April 04, 2019
Tweet
Share
More Decks by 44
See All by 44
Kotlin MultiPlatform Projectのロマンを語る
44x1carbon
0
520
Vue.jsで考えるMVVM
44x1carbon
0
2.3k
React(Kotlin)でToDoアプリを作ってみた
44x1carbon
2
1.8k
Multiplatform Kotlin
44x1carbon
0
200
Other Decks in Technology
See All in Technology
202512_AIoT.pdf
iotcomjpadmin
0
140
松尾研LLM講座2025 応用編Day3「軽量化」 講義資料
aratako
4
3k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
100以上の新規コネクタ提供を可能にしたアーキテクチャ
ooyukioo
0
250
"人"が頑張るAI駆動開発
yokomachi
1
130
Kiro を用いたペアプロのススメ
taikis
4
1.8k
LayerX QA Night#1
koyaman2
0
260
Identity Management for Agentic AI 解説
fujie
0
460
Entity Framework Core におけるIN句クエリ最適化について
htkym
0
120
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
7
1.4k
SREが取り組むデプロイ高速化 ─ Docker Buildを最適化した話
capytan
0
140
NIKKEI Tech Talk #41: セキュア・バイ・デザインからクラウド管理を考える
sekido
PRO
0
210
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Claude Code のすすめ
schroneko
65
200k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
97
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Git: the NoSQL Database
bkeepers
PRO
432
66k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
The browser strikes back
jonoalderson
0
120
For a Future-Friendly Web
brad_frost
180
10k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
850
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
29
Transcript
たかが命名、されど命名 思いやりのある命名をしよう
DDDとの関わり • 専門学校 3年生 「エリック・エヴァンスのドメイン駆動設計 」を読む => 分からなくて読むの諦める • 専門学校
4年生 「実践ドメイン駆動設計」を読む => なんとなく分か… 分からなくて読むの諦める
命名にどれだけ時間を 使ってますか?
プログラミングにおける命名 • クラス名 • メソッド名 • 変数名(ローカル・フィールド)
命名をこだわらなくても動く
なぜ、名前をつけるのか? 自分の書いたコードを理解できるようにする為
その時の自分だけがわかる 命名になりがち
なぜ、名前をつけるのか? 自分の書いたコードを他の人(未来の自分も含む)にも理解できる ようにする為
理解が出来ないことで起こること • 全貌の把握に時間がかかる・把握出来ない • 変更・削除していいものか判断がつかない • 機能追加・変更に臆病になってしまう
サービスの成長が遅くなる
そうならないように 良い命名をしよう!
良い命名とは? 仕様のどの部分を表現しているのかがわかりやすい事 • 探しやすい => パッケージ構成など • 理解がしやすい ◦ 名前が責務を表す
◦ 単語が仕様書に出てくる単語である
良い命名とは? 仕様のどの部分を表現しているのかがわかりやすい事 • 探しやすい => パッケージ構成など • 理解がしやすい ◦ 名前が責務を表す
◦ 単語が仕様書に出てくる単語である
良い命名が出来ない? • 仕様がちゃんと理解出来ていない・詳細に定義されていない • 単語で命名しようとしている 一度やりたいことを文章に書き出して整理しよう • クラスやメソッドが色んな事をしようとしている (多重責務)
全てを説明しようと思い 長い名前になってしまう
長い名前になってしまった時は? • 多重責務になってないか改めて考え、責務を分割しよう • 単語を省略する(おすすめしません) 省略する時は、ルールを決める
省略するのではなくスコープを切る 適切にスコープを切ることで、長い名前を短くする => 〇〇▲▲☆☆を〇〇の▲▲の☆☆にする • インナークラス ResultListItem => ResultList.Item •
クラスのフィールドにする userName => user.name
名前を考える
良い命名をする為の準備 • プログラミングでよく使われるパターン(デザインパターンなど) を覚えよう BuilderやFactory、Dao、Dto • 文法をチームで決めておく 例) メソッド名は 動詞
+ 名詞 など • チーム内での単語帳を作っておく
つけちゃ駄目な名前 • 〇〇Manager => 〇〇を管理するクラス • 〇〇Util => 〇〇を扱う便利メソッドが詰められたクラス 上の名前をつけたくなったらHOWを考えて分解しよう
• 〇〇をどう管理するのか? • 〇〇をどうやって便利にするのか?
良い名前かどうかを判断する方法 • 他の人にコードを呼んでもらう ◦ レビュー ◦ 時間をおいてセルフレビュー
命名だけでは伝えきれない 他の人に伝える方法 • 命名 • コメント • ドキュメント
伝えられる情報量 命名 コメント ドキュメント 少ない 多い
コメントやドキュメントの方が良いのでは?
伝え方とコードとの距離 命名 コメント ドキュメント 近い 遠い
コードとの距離が遠くなれば、情報の鮮度が落ちる コードを修正した時に情報の更新を忘れられ、コードと情報に差 異が生まれる。 コメントとコードで言っていること・やっていることが違うという事態 に
いつ、だれに、どれだけ伝えたいかで 伝え方を選択しよう
まとめ • 良い命名をするのは簡単ではないが、適当な命名をすると後 悔するかも? • 命名だけでは全てを伝えられない、伝える方法にはメリット・デ メリットがある • 良い命名が出来るようになるには、日々訓練するしかない
思いやりをもった命名を!