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
0
150
リーダブルコード入門
DMTC勉強会で利用した資料です
DMTC
August 28, 2014
Tweet
Share
More Decks by DMTC
See All by DMTC
Web Server Study for Beginners
dmtc
0
98
Framework Study for Beginners
dmtc
0
68
DB Design Study for Beginners
dmtc
0
120
how to use "slack" in our Hackathon
dmtc
0
290
pitch_codeprep@ventureday
dmtc
0
73
ハッカソン用ピッチフォーマット
dmtc
1
650
Other Decks in Programming
See All in Programming
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
2
590
コード書くの好きな人向けAIコーディング活用tips #orestudy
77web
3
320
LINEヤフー データグループ紹介
lycorp_recruit_jp
0
760
事業戦略を理解してソフトウェアを設計する
masuda220
PRO
22
6.2k
イベントストーミングから始めるドメイン駆動設計
jgeem
4
870
技術懸念に立ち向かい 法改正を穏便に乗り切った話
pop_cashew
0
1.5k
データベースコネクションプール(DBCP)の変遷と理解
fujikawa8
1
270
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
280
赤裸々に公開。 TSKaigiのオフシーズン
takezoux2
0
140
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
390
KotlinConf 2025 現地参加の土産話
n_takehata
0
100
Rails産でないDBを Railsに引っ越すHACK - Omotesando.rb #110
lnit
1
170
Featured
See All Featured
Scaling GitHub
holman
459
140k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Producing Creativity
orderedlist
PRO
346
40k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
A Tale of Four Properties
chriscoyier
159
23k
Making Projects Easy
brettharned
116
6.2k
Done Done
chrislema
184
16k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
920
Visualization
eitanlees
146
16k
Git: the NoSQL Database
bkeepers
PRO
430
65k
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. 演習問題