Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
infinite_loop
1,062 views
大切な名前[Intro]公開版
第一回のタガヤスで説明した プログラムにおいて「名前」は大切だよね。というお話の前振りです
Software
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 41
2
/ 41
3
/ 41
4
/ 41
5
/ 41
6
/ 41
7
/ 41
8
/ 41
9
/ 41
10
/ 41
11
/ 41
12
/ 41
13
/ 41
14
/ 41
15
/ 41
16
/ 41
17
/ 41
18
/ 41
19
/ 41
20
/ 41
21
/ 41
22
/ 41
23
/ 41
24
/ 41
25
/ 41
26
/ 41
27
/ 41
28
/ 41
29
/ 41
30
/ 41
31
/ 41
32
/ 41
33
/ 41
34
/ 41
35
/ 41
36
/ 41
37
/ 41
38
/ 41
39
/ 41
40
/ 41
41
/ 41
More Related Content
PDF
複数拠点における開発効率の維持・向上
by
infinite_loop
PDF
この中に1人、素人がいる!
by
infinite_loop
PPTX
VyOSで作るIPv4 Router/IPv6 Bridge
by
KLab Inc. / Tech
PDF
クラッシュフィーバーのシステム構成
by
Tomotsune Murata
PDF
Photon Enterprise Cloud 事例
by
Tomotsune Murata
PPTX
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
by
SORACOM,INC
PPTX
jbug#10(ジョイゾー星野)
by
Tomohisa Hoshino
PDF
SEゼミ2015 - リーダブルコード勉強会のまとめ
by
Kouhei Sutou
複数拠点における開発効率の維持・向上
by
infinite_loop
この中に1人、素人がいる!
by
infinite_loop
VyOSで作るIPv4 Router/IPv6 Bridge
by
KLab Inc. / Tech
クラッシュフィーバーのシステム構成
by
Tomotsune Murata
Photon Enterprise Cloud 事例
by
Tomotsune Murata
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
by
SORACOM,INC
jbug#10(ジョイゾー星野)
by
Tomohisa Hoshino
SEゼミ2015 - リーダブルコード勉強会のまとめ
by
Kouhei Sutou
What's hot
PDF
アジャイル開発10年間の軌跡
by
Hiroyuki Tanaka
PDF
Microsoft 365 E5 活用のススメ
by
祥子 松山
PDF
【企画書】チャットワーク:社内検討用資料
by
Find Job Startup
PDF
モバイルオンラインゲーム運用のための開発
by
KLab Inc. / Tech
PDF
モバイルオンラインゲームについて
by
KLab Inc. / Tech
PDF
Inside CyberAgent's Game Development
by
Suguru Shirai
PDF
「納品のない受託開発」を支えるコードレビューの取り組み
by
Masahiro Nishimi
PDF
なぜ私はソニックガーデンのプログラマに転身できたのか?
by
Junichi Ito
PDF
納品のない受託開発を支える レガシーコードを作らない仕組み
by
Masahiro Nishimi
PDF
Swiftビギナーズ
by
Masaru Gushiken
PDF
ブランディングエンジニア資料
by
Masaru Gushiken
PDF
ソニックガーデン流 無駄のないシステム開発
by
Masahiro Nishimi
PDF
Yahoo!アフィリエイトソン最優秀賞者に学ぶ Swift講座
by
Masaru Gushiken
PPTX
セキュアに使おう Microsoft Teams
by
祥子 松山
PPT
How are AsakusaSatellite growing with mzp
by
Ryo Suetsugu
PPTX
オフショアベンダー の選択方法
by
TAKASHI YAMAZAKI
PDF
運営型モバイルゲームの運用について
by
KLab Inc. / Tech
PPTX
ジョイゾー_kintonehive
by
Cybozucommunity
PPTX
Oculus riftとペンタブレットを利用した作品作りについて
by
Haruhisa Hasegawa
PPTX
VRとWeb API
by
Haruhisa Hasegawa
アジャイル開発10年間の軌跡
by
Hiroyuki Tanaka
Microsoft 365 E5 活用のススメ
by
祥子 松山
【企画書】チャットワーク:社内検討用資料
by
Find Job Startup
モバイルオンラインゲーム運用のための開発
by
KLab Inc. / Tech
モバイルオンラインゲームについて
by
KLab Inc. / Tech
Inside CyberAgent's Game Development
by
Suguru Shirai
「納品のない受託開発」を支えるコードレビューの取り組み
by
Masahiro Nishimi
なぜ私はソニックガーデンのプログラマに転身できたのか?
by
Junichi Ito
納品のない受託開発を支える レガシーコードを作らない仕組み
by
Masahiro Nishimi
Swiftビギナーズ
by
Masaru Gushiken
ブランディングエンジニア資料
by
Masaru Gushiken
ソニックガーデン流 無駄のないシステム開発
by
Masahiro Nishimi
Yahoo!アフィリエイトソン最優秀賞者に学ぶ Swift講座
by
Masaru Gushiken
セキュアに使おう Microsoft Teams
by
祥子 松山
How are AsakusaSatellite growing with mzp
by
Ryo Suetsugu
オフショアベンダー の選択方法
by
TAKASHI YAMAZAKI
運営型モバイルゲームの運用について
by
KLab Inc. / Tech
ジョイゾー_kintonehive
by
Cybozucommunity
Oculus riftとペンタブレットを利用した作品作りについて
by
Haruhisa Hasegawa
VRとWeb API
by
Haruhisa Hasegawa
More from infinite_loop
PDF
Unityで意外と簡単・・・だけど難しいVRコンテンツ
by
infinite_loop
PDF
アニメーションとスキニングをBurstで独自実装する.pdf
by
infinite_loop
PDF
名前の力
by
infinite_loop
PDF
楽しいVR空間を作る技術と支える技術 #osc19do
by
infinite_loop
PDF
JupyterNotebookとMySQLでゼロからはじめるデータサイエンス
by
infinite_loop
PDF
VRChatでお酒が注げる飲み物アセットの紹介
by
infinite_loop
PDF
名は体を表していますか
by
infinite_loop
PDF
プログラムと名前にまつわる座談会
by
infinite_loop
PDF
Start rl with_unity_machine_learning_agents
by
infinite_loop
PDF
ゲームのインフラをAwsで実戦tips全て見せます
by
infinite_loop
PDF
がんばれ PHP Fiber
by
infinite_loop
PDF
リファクタリングで実装が○○分短縮した話
by
infinite_loop
PDF
ADRという考えを取り入れてみて
by
infinite_loop
PDF
UniRx の1歩目
by
infinite_loop
PDF
ChatGPT触ってみた
by
infinite_loop
PDF
社内ソフトスキルを考える
by
infinite_loop
PDF
心に残った名前ランキング
by
infinite_loop
PDF
3Dプリンタって いいね
by
infinite_loop
PDF
500万行のPHPプロジェクトにおけるログ出力の歩み
by
infinite_loop
PDF
I ❤ Virtual Machines 仮想環境をより便利に使うツールたち
by
infinite_loop
Unityで意外と簡単・・・だけど難しいVRコンテンツ
by
infinite_loop
アニメーションとスキニングをBurstで独自実装する.pdf
by
infinite_loop
名前の力
by
infinite_loop
楽しいVR空間を作る技術と支える技術 #osc19do
by
infinite_loop
JupyterNotebookとMySQLでゼロからはじめるデータサイエンス
by
infinite_loop
VRChatでお酒が注げる飲み物アセットの紹介
by
infinite_loop
名は体を表していますか
by
infinite_loop
プログラムと名前にまつわる座談会
by
infinite_loop
Start rl with_unity_machine_learning_agents
by
infinite_loop
ゲームのインフラをAwsで実戦tips全て見せます
by
infinite_loop
がんばれ PHP Fiber
by
infinite_loop
リファクタリングで実装が○○分短縮した話
by
infinite_loop
ADRという考えを取り入れてみて
by
infinite_loop
UniRx の1歩目
by
infinite_loop
ChatGPT触ってみた
by
infinite_loop
社内ソフトスキルを考える
by
infinite_loop
心に残った名前ランキング
by
infinite_loop
3Dプリンタって いいね
by
infinite_loop
500万行のPHPプロジェクトにおけるログ出力の歩み
by
infinite_loop
I ❤ Virtual Machines 仮想環境をより便利に使うツールたち
by
infinite_loop
大切な名前[Intro]公開版
1.
大切な名前 introduction 公開版 株式会社インフィニットループ仙台支社 中野 明
2.
もくじ 1. 自己紹介 2. テーマ 3.
ダメコードとは 4. コードを読む 5. 命名 6. 最後に 7. 予定 8. 会社より
3.
1. 自己紹介 名前 :
中野 明 現在 所属 : インフィニットループ仙台支社 (1 年 ) 業務 : スマホゲーのサーバ開発 (PHP) 過去 業務 : ゲーム開発 (10 年 ) コンシューマ・スマホ・ガラケー 趣味 お菓子づくり、レザークラフト 最近ボビンレース始めました
4.
2. テーマ テーマ「大切な名前」
5.
2. テーマ テーマ「大切な名前」 ● レビューで名前を指定することが多い (
若干過剰 ) ● なぜ、自分がそこにこだわるのか整理したい
6.
2. テーマ テーマ「大切な名前」 ● レビューで名前を指定することが多い (
若干過剰 ) ● なぜ、自分がそこにこだわるのか整理したい 「俺は間違ってない!」と叫びたい
7.
2. テーマ テーマ「大切な名前」 ● レビューで名前を指定することが多い (
若干過剰 ) ● なぜ、自分がそこにこだわるのか整理したい 「俺は間違ってない!」と叫びたい 今回はテーマ説明のみです
8.
3. ダメコードとは ところで… ● いわゆるダメコードに出会ったことがある?
9.
3. ダメコードとは ところで… ● いわゆるダメコードに出会ったことがある? ● 自分のコードはまずまず?
10.
3. ダメコードとは ところで… ● いわゆるダメコードに出会ったことがある? ● 自分のコードはまずまず? ● では、なぜ、ダメコードはなくならない?
11.
3. ダメコードとは コードの使われ方 ● 新規 (write) -----
以下の作業が多数 ----- ● 修正 (read, write) ● 追加 (read, write) ● 削除 (read, delete) ● レビュー (read)
12.
3. ダメコードとは つまり ● 読むことの方が多い ● が、書いた時に読まれることを意識していない ➔ アウトプットを作り上げている ➔ 書いている間は良いコード ● 読まれた瞬間にダメコードが発生する
13.
3. ダメコードとは つまり ● 読むことの方が多い ● が、書いた時に読まれることを意識していない ➔ アウトプットを作り上げている ➔ 書いている間は良いコード ● 読まれた瞬間にダメコードが発生する 「読まれなければどうということは無い!!」
14.
3. ダメコードとは つまり ● 読むことの方が多い ● が、書いた時に読まれることを意識していない ➔ アウトプットを作り上げている ➔ 書いている間は良いコード ● 読まれた瞬間にダメコードが発生する 「読まれなければどうということは無い!!」 必ず読まれます。
15.
4. コードを読む コードを読むとは ? ● 処理単位での意味の理解 ● 問題になりそうな箇所を把握する ➔ (I/O,
DB, GPU, マルチスレッド ) ● 自分の処理をどこに置くか
16.
4. コードを読む コードを読むとは ? ● 処理単位での意味の理解 ● 問題になりそうな箇所を把握する ➔ (I/O,
DB, GPU, マルチスレッド ) ● 自分の処理をどこに置くか 行動のためのヒントを探す
17.
4. コードを読む どうやってヒントを読み取るか ● 名前 ➔ 名前から処理を想像する ● クラス構造 ➔ クラスのつくりから責務を想像する ● コードブロック ➔ コードのまとまりから流れを想像する
18.
4. コードを読む どうやってヒントを読み取るか ● 名前 ➔ 名前から処理を想像する ● クラス構造 ➔ クラスのつくりから責務を想像する ● コードブロック ➔ コードのまとまりから流れを想像する いろいろある!
19.
5. 命名 なぜ名前か ● 一番、目につきやすい対象 ● 簡単に変えていける ● 影響範囲が少ない
20.
5. 命名 なぜ名前か ● 一番、目につきやすい対象 ● 簡単に変えていける ● 影響範囲が少ない 名前の改善から次の改善がみつかる ... こともある
21.
5. 命名 要は見やすければいいんでしょ ● 単純な名前つけてるよ ● bool を返すメソッドは
Is でいいんでしょ ● やっていることは全部書いているよ
22.
5. 命名 要は見やすければいいんでしょ ● 単純な名前つけてるよ ➔ 意味を持たない Get/Service/Manager
が氾濫してません? ● bool を返すメソッドは Is でいいんでしょ ➔ そのメソッドはもっと大きなことしてません ? ● やっていることは全部書いているよ ➔ 説明過多になっていません?
23.
5. 命名 要は見やすければいいんでしょ ● 単純な名前だけで構成されている Get だけで意図を表現できる? function
version() { $database = DataBase::get(); $handler = $database->getHandler('environment'); $entity = $handler->getEntity(); return $entity->getVersion(); }
24.
5. 命名 要は見やすければいいんでしょ ● 単純な名前だけで構成されている Get だけで意図を表現できる? function
version() { $database = DataBase::instance(); $handler = $database->createHandler('environment'); $entity = $handler->fetchEntity(); return $entity->getVersion(); }
25.
5. 命名 要は見やすければいいんでしょ ● 名前以上のことをやっている bool うんぬんより検証作業の意味合いが強い class
Entity { private $id; public function isEnable() { return STATUS_OK === DataBase::instance() ->createHandler('entity') ->fetch($this->id) ->status(); } }
26.
5. 命名 要は見やすければいいんでしょ ● 名前以上のことをやっている bool うんぬんより検証作業の意味合いが強い class
Entity { private $id; public function validate() { return STATUS_OK === DataBase::instance() ->createHandler('entity') ->fetch($this->id) ->status(); } }
27.
5. 命名 要は見やすければいいんでしょ ● やたらと説明的 (
引数被り / 冗長 ) 引数で説明できません? function createBurgerFromBreadAndCheese( Bread $bread, Cheese $cheese ){ /* 処理いろいろ */ }
28.
5. 命名 要は見やすければいいんでしょ ● やたらと説明的 (
引数被り / 冗長 ) 引数で説明できません? function createBurger( Bread $bread, Cheese $cheese ){ /* 処理いろいろ */ }
29.
5. 命名 要は見やすければいいんでしょ ● 内部ロジックの露出 モンスターの持つ処理としてメモリ解放はどうでしょう ? class
Monster { private $buffer; public function freeMemory() { Memory::free($this->buffer); } }
30.
5. 命名 要は見やすければいいんでしょ ● 内部ロジックの露出 モンスターの持つ処理としてメモリ解放はどうでしょう ? class
Monster { private $buffer; public function destroy() { Memory::free($this->buffer); } }
31.
5. 命名 いろいろな意見 ● 名前考えるのだるくて ● パッと見のまとまりを大事にしたい ● チームルールと違うしね・・・
32.
5. 命名 いろいろな意見 ● 名前考えるのだるくて ➔ 変な名前だと読む方はもっとだるいので ● パッと見のまとまりを大事にしたい ➔ 違う処理まで同じに見えるのは危険 ● チームルールと違うしね・・・ ➔ 自分で一から考えてみませんか?
33.
6. 最後に 本読めばいいじゃない ● リーダブルコードとか ● コードコンプリートとか ● リファクタリング本とか
34.
6. 最後に 本読めばいいじゃない ● リーダブルコードとか ● コードコンプリートとか ● リファクタリング本とか いっぱい出ているということはそれだけ需要がある
35.
6. 最後に 本読めばいいじゃない ● リーダブルコードとか ● コードコンプリートとか ● リファクタリング本とか いっぱい出ているということはそれだけ需要がある 自分がしゃべったっていいじゃないか !!
36.
7. 予定 どんな話するの? ● 明示的な名前 ● 名前から構造をつくる ● 階層による名前の変化 ● 名前の省略
37.
7. 予定 どんな話するの? ● 明示的な名前 ● 名前から構造をつくる ● 階層による名前の変化 ● 名前の省略 注 :
あくまでも予定 !
38.
7. 予定 どんな話するの? ● 明示的な名前 ● 名前から構造をつくる ● 階層による名前の変化 ● 名前の省略 どうぞお付き合いください !!
39.
8. 会社紹介 インフィニットループ仙台支社
40.
8. 会社紹介 インフィニットループ仙台支社 炊飯器が導入されました!
41.
8. 会社紹介 インフィニットループ仙台支社ではプログラマを募集してい ます。ぜひお声がけください! 是非、同じ釜の飯を食いましょう!!
Download