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
大切な名前[Intro]公開版
Search
Infiniteloop
October 17, 2023
Programming
86
0
Share
大切な名前[Intro]公開版
第一回のタガヤスで説明した
プログラムにおいて「名前」は大切だよね。というお話の前振りです
Infiniteloop
October 17, 2023
More Decks by Infiniteloop
See All by Infiniteloop
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2025年版)
infiniteloop_inc
18
77k
俺の PHP プロファイラの話 PHP スクリプトで PHP 処理系のメモリをのぞき込む
infiniteloop_inc
1
650
心理的安全性を学び直し、 「いい組織とは何か?」を考えてみる
infiniteloop_inc
1
960
ゼロからつくる 2D物理シミュレーション ~物理現象をコードに落とし込む方法~
infiniteloop_inc
1
1.4k
詫び石の裏側
infiniteloop_inc
0
890
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
7
35k
リファクタリングで実装が○○分短縮した話
infiniteloop_inc
0
280
ADRという考えを取り入れてみて
infiniteloop_inc
0
290
500万行のPHPプロジェクトにおけるログ出力の歩み
infiniteloop_inc
0
220
Other Decks in Programming
See All in Programming
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
220
20260315 AWSなんもわからん🥲
chiilog
2
190
PHPで TLSのプロトコルを実装してみる
higaki_program
0
740
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
2.8k
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
7
1.2k
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
400
iOS機能開発のAI環境と起きた変化
ryunakayama
0
150
へんな働き方
yusukebe
6
2.9k
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
310
Xdebug と IDE による デバッグ実行の仕組みを見る / Exploring-How-Debugging-Works-with-Xdebug-and-an-IDE
shin1x1
0
340
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
2
150
AI活用のコスパを最大化する方法
ochtum
0
370
Featured
See All Featured
How GitHub (no longer) Works
holman
316
150k
Believing is Seeing
oripsolob
1
110
The agentic SEO stack - context over prompts
schlessera
0
730
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
260
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
140
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Done Done
chrislema
186
16k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
250
Building an army of robots
kneath
306
46k
Utilizing Notion as your number one productivity tool
mfonobong
4
280
Rails Girls Zürich Keynote
gr2m
96
14k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
220
Transcript
大切な名前 introduction 公開版 株式会社インフィニットループ仙台支社 中野 明
もくじ 1. 自己紹介 2. テーマ 3. ダメコードとは 4. コードを読む 5.
命名 6. 最後に 7. 予定 8. 会社より
1. 自己紹介 名前 : 中野 明 現在 所属 : インフィニットループ仙台支社
(1 年 ) 業務 : スマホゲーのサーバ開発 (PHP) 過去 業務 : ゲーム開発 (10 年 ) コンシューマ・スマホ・ガラケー 趣味 お菓子づくり、レザークラフト 最近ボビンレース始めました
2. テーマ テーマ「大切な名前」
2. テーマ テーマ「大切な名前」 • レビューで名前を指定することが多い ( 若干過剰 ) • なぜ、自分がそこにこだわるのか整理したい
2. テーマ テーマ「大切な名前」 • レビューで名前を指定することが多い ( 若干過剰 ) • なぜ、自分がそこにこだわるのか整理したい
「俺は間違ってない!」と叫びたい
2. テーマ テーマ「大切な名前」 • レビューで名前を指定することが多い ( 若干過剰 ) • なぜ、自分がそこにこだわるのか整理したい
「俺は間違ってない!」と叫びたい 今回はテーマ説明のみです
3. ダメコードとは ところで… • いわゆるダメコードに出会ったことがある?
3. ダメコードとは ところで… • いわゆるダメコードに出会ったことがある? • 自分のコードはまずまず?
3. ダメコードとは ところで… • いわゆるダメコードに出会ったことがある? • 自分のコードはまずまず? • では、なぜ、ダメコードはなくならない?
3. ダメコードとは コードの使われ方 • 新規 (write) ----- 以下の作業が多数 ----- •
修正 (read, write) • 追加 (read, write) • 削除 (read, delete) • レビュー (read)
3. ダメコードとは つまり • 読むことの方が多い • が、書いた時に読まれることを意識していない ➔ アウトプットを作り上げている ➔
書いている間は良いコード • 読まれた瞬間にダメコードが発生する
3. ダメコードとは つまり • 読むことの方が多い • が、書いた時に読まれることを意識していない ➔ アウトプットを作り上げている ➔
書いている間は良いコード • 読まれた瞬間にダメコードが発生する 「読まれなければどうということは無い!!」
3. ダメコードとは つまり • 読むことの方が多い • が、書いた時に読まれることを意識していない ➔ アウトプットを作り上げている ➔
書いている間は良いコード • 読まれた瞬間にダメコードが発生する 「読まれなければどうということは無い!!」 必ず読まれます。
4. コードを読む コードを読むとは ? • 処理単位での意味の理解 • 問題になりそうな箇所を把握する ➔ (I/O,
DB, GPU, マルチスレッド ) • 自分の処理をどこに置くか
4. コードを読む コードを読むとは ? • 処理単位での意味の理解 • 問題になりそうな箇所を把握する ➔ (I/O,
DB, GPU, マルチスレッド ) • 自分の処理をどこに置くか 行動のためのヒントを探す
4. コードを読む どうやってヒントを読み取るか • 名前 ➔ 名前から処理を想像する • クラス構造 ➔
クラスのつくりから責務を想像する • コードブロック ➔ コードのまとまりから流れを想像する
4. コードを読む どうやってヒントを読み取るか • 名前 ➔ 名前から処理を想像する • クラス構造 ➔
クラスのつくりから責務を想像する • コードブロック ➔ コードのまとまりから流れを想像する いろいろある!
5. 命名 なぜ名前か • 一番、目につきやすい対象 • 簡単に変えていける • 影響範囲が少ない
5. 命名 なぜ名前か • 一番、目につきやすい対象 • 簡単に変えていける • 影響範囲が少ない 名前の改善から次の改善がみつかる
... こともある
5. 命名 要は見やすければいいんでしょ • 単純な名前つけてるよ • bool を返すメソッドは Is でいいんでしょ
•やっていることは全部書いているよ
5. 命名 要は見やすければいいんでしょ • 単純な名前つけてるよ ➔ 意味を持たない Get/Service/Manager が氾濫してません? •
bool を返すメソッドは Is でいいんでしょ ➔ そのメソッドはもっと大きなことしてません ? •やっていることは全部書いているよ ➔ 説明過多になっていません?
5. 命名 要は見やすければいいんでしょ • 単純な名前だけで構成されている Get だけで意図を表現できる? function version() {
$database = DataBase::get(); $handler = $database->getHandler('environment'); $entity = $handler->getEntity(); return $entity->getVersion(); }
5. 命名 要は見やすければいいんでしょ • 単純な名前だけで構成されている Get だけで意図を表現できる? function version() {
$database = DataBase::instance(); $handler = $database->createHandler('environment'); $entity = $handler->fetchEntity(); return $entity->getVersion(); }
5. 命名 要は見やすければいいんでしょ • 名前以上のことをやっている bool うんぬんより検証作業の意味合いが強い class Entity {
private $id; public function isEnable() { return STATUS_OK === DataBase::instance() ->createHandler('entity') ->fetch($this->id) ->status(); } }
5. 命名 要は見やすければいいんでしょ • 名前以上のことをやっている bool うんぬんより検証作業の意味合いが強い class Entity {
private $id; public function validate() { return STATUS_OK === DataBase::instance() ->createHandler('entity') ->fetch($this->id) ->status(); } }
5. 命名 要は見やすければいいんでしょ • やたらと説明的 ( 引数被り / 冗長 )
引数で説明できません? function createBurgerFromBreadAndCheese( Bread $bread, Cheese $cheese ){ /* 処理いろいろ */ }
5. 命名 要は見やすければいいんでしょ • やたらと説明的 ( 引数被り / 冗長 )
引数で説明できません? function createBurger( Bread $bread, Cheese $cheese ){ /* 処理いろいろ */ }
5. 命名 要は見やすければいいんでしょ • 内部ロジックの露出 モンスターの持つ処理としてメモリ解放はどうでしょう ? class Monster {
private $buffer; public function freeMemory() { Memory::free($this->buffer); } }
5. 命名 要は見やすければいいんでしょ • 内部ロジックの露出 モンスターの持つ処理としてメモリ解放はどうでしょう ? class Monster {
private $buffer; public function destroy() { Memory::free($this->buffer); } }
5. 命名 いろいろな意見 • 名前考えるのだるくて • パッと見のまとまりを大事にしたい • チームルールと違うしね・・・
5. 命名 いろいろな意見 • 名前考えるのだるくて ➔ 変な名前だと読む方はもっとだるいので • パッと見のまとまりを大事にしたい ➔
違う処理まで同じに見えるのは危険 • チームルールと違うしね・・・ ➔ 自分で一から考えてみませんか?
6. 最後に 本読めばいいじゃない • リーダブルコードとか • コードコンプリートとか • リファクタリング本とか
6. 最後に 本読めばいいじゃない • リーダブルコードとか • コードコンプリートとか • リファクタリング本とか いっぱい出ているということはそれだけ需要がある
6. 最後に 本読めばいいじゃない • リーダブルコードとか • コードコンプリートとか • リファクタリング本とか いっぱい出ているということはそれだけ需要がある
自分がしゃべったっていいじゃないか !!
7. 予定 どんな話するの? • 明示的な名前 • 名前から構造をつくる • 階層による名前の変化 •
名前の省略
7. 予定 どんな話するの? • 明示的な名前 • 名前から構造をつくる • 階層による名前の変化 •
名前の省略 注 : あくまでも予定 !
7. 予定 どんな話するの? • 明示的な名前 • 名前から構造をつくる • 階層による名前の変化 •
名前の省略 どうぞお付き合いください !!
8. 会社紹介 インフィニットループ仙台支社
8. 会社紹介 インフィニットループ仙台支社 炊飯器が導入されました!
8. 会社紹介 インフィニットループ仙台支社ではプログラマを募集してい ます。ぜひお声がけください! 是非、同じ釜の飯を食いましょう!!