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
リーダブルコード入門
Search
DMTC
August 28, 2014
Programming
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
リーダブルコード入門
DMTC勉強会で利用した資料です
DMTC
August 28, 2014
More Decks by DMTC
See All by DMTC
Web Server Study for Beginners
dmtc
0
120
Framework Study for Beginners
dmtc
0
110
DB Design Study for Beginners
dmtc
0
150
how to use "slack" in our Hackathon
dmtc
0
320
pitch_codeprep@ventureday
dmtc
0
95
ハッカソン用ピッチフォーマット
dmtc
1
700
Other Decks in Programming
See All in Programming
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
120
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
1
370
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
170
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
180
高専、大学編入、そして未踏へ〜プロダクト開発とキャリアの歩み - Technical College, University Transfer, and On to “Mitou” / My Journey in Product Development and Career
pkmiya
0
100
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
440
書籍「プロフェッショナルAI駆動開発」紹介スライド
juntaromatsumoto
0
780
freeeにおけるEvalsの実践例の紹介
freee
PRO
0
160
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
230
My Marp Sample
sinoue0108
0
130
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
120
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.2k
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
880
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
New Earth Scene 8
popppiees
3
2.5k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
GraphQLとの向き合い方2022年版
quramy
50
15k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
260
The browser strikes back
jonoalderson
0
1.6k
Transcript
第一回 リーダブルコード入門 株式会社ギブリー 新田 章太
過去のCAMP 開発実績 アジェンダ 1. リーダブルコードとは ‐ そもそもリーダブルコードとは ‐ なぜリーダブルコードが必要なのか 2. 命名規則
‐ 命名規則とは? ‐ 単語を明確に ‐ ループイテレータ ‐ プレフィックスとサフィックス 3. コメントアウト ‐ コメントすべきでないこと ‐ コメントは簡潔に 4. 演習問題
過去のCAMP 開発実績 挨拶 自己紹介 新田章太(24) ・株式会社ギブリー 取締役COO兼CHO ・筑波大学理工学群社会工学類卒 ・エンジニア特化型のキャリア支援事業立ち上げ ・DMTC立ち上げ ・自社サービスの開発、運営、受託開発業務など
過去のCAMP 開発実績 アジェンダ 1. リーダブルコードとは ‐ そもそもリーダブルコードとは ‐ なぜリーダブルコードが必要なのか 2. 命名規則
‐ 命名規則とは? ‐ 単語を明確に ‐ ループイテレータ ‐ プレフィックスとサフィックス 3. コメントアウト ‐ コメントすべきでないこと ‐ コメントは簡潔に 4. 演習問題
1. リーダブルコードとは? ・Dustin Boswell , Trevor Foucher (著) ・須藤 功平
(解説) ・角 征典 (翻訳) 「リーダブルコード」 こちらの書籍をもとに、学んでいきます。
「読みやすいコード」 1. リーダブルコードとは?
「読みやすいコード」 1. リーダブルコードとは? 他の人が短時間で理解できるコード
「読みやすいコード」 1. リーダブルコードとは? 他の人が短時間で理解できるコード
“コードは他の人が最短時間で理解できるように 書かなければならない“ 1. リーダブルコードとは? ※リーダブルコードより引用
なぜ必要なのか? ・チーム開発 ・引き継ぎ 1. リーダブルコードとは?
1.そもそもリーダブルコードとは? 求められるもの ・命名規則 ・コメントアウト ・インデント/美しさ(順序) ・ループとロジックの単純化(ネストを最小化) ・分割方法(最適なまとめ方) ・再構成(汎用的なコードをつくる) などなど…
1.そもそもリーダブルコードとは? 今回触れること ・命名規則 ・コメントアウト ・インデント/美しさ(順序) ・ループとロジックの単純化(ネストを最小化) ・分割方法(最適なまとめ方) ・再構成(汎用的なコードをつくる)
過去のCAMP 開発実績 アジェンダ 1. リーダブルコードとは ‐ そもそもリーダブルコードとは ‐ なぜリーダブルコードが必要なのか 2. 命名規則
‐ 命名規則とは? ‐ 単語を明確に ‐ ループイテレータ ‐ プレフィックスとサフィックス 3. コメントアウト ‐ コメントすべきでないこと ‐ コメントは簡潔に 4. 演習問題
2.命名規則 命名規則とは? 命名規則とは、 プログラミングを行う際に識別子の名称となる文字 列を決定するためのルールを定めたもの。 ネーミング規則、ネーミング規約、命名規約とも呼 ぶ。通常は、ソースコードの可読性や視認性の向上、 プログラミング効率の改善などを目的としている。 ※wikipedia参照
2.命名規則 命名規則とは? $camelCase ($CamelCase) $snake_case
2.命名規則 命名規則とは? “名前に情報を詰め込む”
2.命名規則 単語を明確に
2.命名規則 単語を明確に Makeって具体的に何をするの?
2.命名規則 単語を明確に 単語 代替案 send deliver , announce , route
, distribute find search, extract , locate , recover start launch , create , begin , open make create , set , build , generate , compose , add , new
2.命名規則 ループイテレータ
2.命名規則 ループイテレータ 慣習として i j k を使うことが多い
2.命名規則 ループイテレータ
2.命名規則 ループイテレータ ネストが深くなるとミスに気づきづらい
2.命名規則 ループイテレータ 具体例 デメリット 慣習的なもの $i , $j , $k
ネストが深くなるとミスが出やすい 意味合いを持つ もの $index, $idx, $counter, $cnt 変数の頭文字を とる $ui,$cj,$mk
2.命名規則 プレフィックスとサフィックス ・接頭語(プレフィックス) 状態や行為を表すときに用いることが多い ・接尾語(サフィックス) 要素を補足するときに用いることが多い
2.命名規則 プレフィックスとサフィックス
2.命名規則 プレフィックスとサフィックス もし、ユーザーネームだったら??
2.命名規則 プレフィックスとサフィックス 接頭語 使用用途 is_◦◦ ◦◦かどうか has_◦◦ 既に◦◦かどうか can_◦◦ ◦◦が可能かどうか
Should_◦◦ ◦◦なべきかどうか 条件分岐を意識すると良い
2.命名規則 プレフィックスとサフィックス 接尾語 使用用途 ◦◦_ms , ◦◦_sec 値の単位を表す Html_utf8 ,
plaintext_password その他重要な属性を表す 変換処理などで苦戦しないように
2.命名規則 まとめ ・命名規則を使ってよりわかりやすく! ・意味は明確に具体的に書こう! ・汎用的なものに気をつけよう! ・プレフィックスとサフィックスを活用しよう!
過去のCAMP 開発実績 アジェンダ 1. リーダブルコードとは ‐ そもそもリーダブルコードとは ‐ なぜリーダブルコードが必要なのか 2. 命名規則
‐ 命名規則とは? ‐ 単語を明確に ‐ ループイテレータ ‐ プレフィックスとサフィックス 3. コメントアウト ‐ コメントすべきでないこと ‐ コメントは簡潔に 4. 演習問題
3.コメントアウト コメントすべきこと、すべきでないこと 何が登録されていたら? 発信するって具体的には? そもそもコードで理解できるのでは?
3.コメントアウト コメントすべきこと、すべきでないこと
3.コメントアウト まとめ コメントすべきでは「ない」もの ・コードから読めること ・よくないコードを補うコメント コメントは簡潔に ・代名詞は避ける ・動作は具体的に説明する
過去のCAMP 開発実績 アジェンダ 1. リーダブルコードとは ‐ そもそもリーダブルコードとは ‐ なぜリーダブルコードが必要なのか 2. 命名規則
‐ 命名規則とは? ‐ 単語を明確に ‐ ループイテレータ ‐ プレフィックスとサフィックス 3. コメントアウト ‐ コメントすべきでないこと ‐ コメントは簡潔に 4. 演習問題