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
大切な名前[Intro]公開版
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Infiniteloop
October 17, 2023
Programming
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
大切な名前[Intro]公開版
第一回のタガヤスで説明した
プログラムにおいて「名前」は大切だよね。というお話の前振りです
Infiniteloop
October 17, 2023
More Decks by Infiniteloop
See All by Infiniteloop
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2025年版)
infiniteloop_inc
18
91k
俺の PHP プロファイラの話 PHP スクリプトで PHP 処理系のメモリをのぞき込む
infiniteloop_inc
1
770
心理的安全性を学び直し、 「いい組織とは何か?」を考えてみる
infiniteloop_inc
1
1.2k
ゼロからつくる 2D物理シミュレーション ~物理現象をコードに落とし込む方法~
infiniteloop_inc
1
1.7k
詫び石の裏側
infiniteloop_inc
0
1k
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
7
36k
リファクタリングで実装が○○分短縮した話
infiniteloop_inc
0
320
ADRという考えを取り入れてみて
infiniteloop_inc
0
330
500万行のPHPプロジェクトにおけるログ出力の歩み
infiniteloop_inc
0
240
Other Decks in Programming
See All in Programming
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
260
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.4k
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
300
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
340
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
150
残高管理から台帳サービスへの進化
artoy
0
160
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
7
1.9k
AWSに止められる覚悟してますか?
morizo_1984
2
510
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
580
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
130
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
230
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
300
Become a Pro
speakerdeck
PRO
31
6.3k
Being A Developer After 40
akosma
91
590k
Facilitating Awesome Meetings
lara
57
7.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
320
The Invisible Side of Design
smashingmag
301
52k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
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. 会社紹介 インフィニットループ仙台支社ではプログラマを募集してい ます。ぜひお声がけください! 是非、同じ釜の飯を食いましょう!!