Submit Search
Upload
リーダブルコード勉強会
•
28 likes
•
12,337 views
N
norimatsu2012
Follow
Report
Share
Report
Share
1 of 64
Download now
Download to read offline
Recommended
リーダブルコード
リーダブルコード
Keita Otsuka
リーダブルコード 1.0'
リーダブルコード 1.0'
Yamamura Takashi
リーダブルコードが良書だったのでまとめました
リーダブルコードが良書だったのでまとめました
Takumi Sato
名著『リーダブルコード』を解説者と一緒に読み解こう - 7章 制御フローを読みやすくする
名著『リーダブルコード』を解説者と一緒に読み解こう - 7章 制御フローを読みやすくする
Kouhei Sutou
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
Shigenori Sagawa
Benkyokai
Benkyokai
sueki1242
リーダブルコードを読んだ後
リーダブルコードを読んだ後
Kouhei Sutou
名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こう
名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こう
Kouhei Sutou
Recommended
リーダブルコード
リーダブルコード
Keita Otsuka
リーダブルコード 1.0'
リーダブルコード 1.0'
Yamamura Takashi
リーダブルコードが良書だったのでまとめました
リーダブルコードが良書だったのでまとめました
Takumi Sato
名著『リーダブルコード』を解説者と一緒に読み解こう - 7章 制御フローを読みやすくする
名著『リーダブルコード』を解説者と一緒に読み解こう - 7章 制御フローを読みやすくする
Kouhei Sutou
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
Shigenori Sagawa
Benkyokai
Benkyokai
sueki1242
リーダブルコードを読んだ後
リーダブルコードを読んだ後
Kouhei Sutou
名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こう
名著『リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック』を解説者と一緒に読み解こう
Kouhei Sutou
リーダブルコード勉強会
リーダブルコード勉強会
TAKUYA YAMAMOTO
Programming camp code reading
Programming camp code reading
Hiro Yoshioka
第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」
Hiromu Shioya
EWD 3トレーニングコース#9 複雑なewd-xpressメッセージと応答
EWD 3トレーニングコース#9 複雑なewd-xpressメッセージと応答
Kiyoshi Sawada
第4部「Tddとペアプロのめざめ」
第4部「Tddとペアプロのめざめ」
Hiromu Shioya
わかる LT@2
わかる LT@2
Shingo Inoue
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
Programming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム
amusementcreators
フォントのホント
フォントのホント
Tadahisa Motooka
可読性について リーダブルコード Part2(ループとロジックの単純化)
可読性について リーダブルコード Part2(ループとロジックの単純化)
tak
可読性について リーダブルコード Part3(コードの再構築)
可読性について リーダブルコード Part3(コードの再構築)
tak
Haml 学習コース 初級編
Haml 学習コース 初級編
介翔 鈴木
できる!Pmdカスタマイズ
できる!Pmdカスタマイズ
Satoshi Kubo
Shortcodin
Shortcodin
Ken Ogura
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Kengo Toda
Javakuche yono
Javakuche yono
yono05
「愛されたい!」と思ったときにJavaで書くRubyクラス
「愛されたい!」と思ったときにJavaで書くRubyクラス
Koichiro Ohba
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
コーディング入門以前
コーディング入門以前
Yutaka Kinjyo
リーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめ
Kouhei Sutou
More Related Content
What's hot
リーダブルコード勉強会
リーダブルコード勉強会
TAKUYA YAMAMOTO
Programming camp code reading
Programming camp code reading
Hiro Yoshioka
第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」
Hiromu Shioya
EWD 3トレーニングコース#9 複雑なewd-xpressメッセージと応答
EWD 3トレーニングコース#9 複雑なewd-xpressメッセージと応答
Kiyoshi Sawada
第4部「Tddとペアプロのめざめ」
第4部「Tddとペアプロのめざめ」
Hiromu Shioya
わかる LT@2
わかる LT@2
Shingo Inoue
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
Programming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム
amusementcreators
フォントのホント
フォントのホント
Tadahisa Motooka
可読性について リーダブルコード Part2(ループとロジックの単純化)
可読性について リーダブルコード Part2(ループとロジックの単純化)
tak
可読性について リーダブルコード Part3(コードの再構築)
可読性について リーダブルコード Part3(コードの再構築)
tak
Haml 学習コース 初級編
Haml 学習コース 初級編
介翔 鈴木
できる!Pmdカスタマイズ
できる!Pmdカスタマイズ
Satoshi Kubo
Shortcodin
Shortcodin
Ken Ogura
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Kengo Toda
Javakuche yono
Javakuche yono
yono05
「愛されたい!」と思ったときにJavaで書くRubyクラス
「愛されたい!」と思ったときにJavaで書くRubyクラス
Koichiro Ohba
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
What's hot
(20)
リーダブルコード勉強会
リーダブルコード勉強会
Programming camp code reading
Programming camp code reading
第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」
EWD 3トレーニングコース#9 複雑なewd-xpressメッセージと応答
EWD 3トレーニングコース#9 複雑なewd-xpressメッセージと応答
第4部「Tddとペアプロのめざめ」
第4部「Tddとペアプロのめざめ」
わかる LT@2
わかる LT@2
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
Programming camp 2008, Codereading
Programming camp 2008, Codereading
読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム
フォントのホント
フォントのホント
可読性について リーダブルコード Part2(ループとロジックの単純化)
可読性について リーダブルコード Part2(ループとロジックの単純化)
可読性について リーダブルコード Part3(コードの再構築)
可読性について リーダブルコード Part3(コードの再構築)
Haml 学習コース 初級編
Haml 学習コース 初級編
できる!Pmdカスタマイズ
できる!Pmdカスタマイズ
Shortcodin
Shortcodin
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Javakuche yono
Javakuche yono
「愛されたい!」と思ったときにJavaで書くRubyクラス
「愛されたい!」と思ったときにJavaで書くRubyクラス
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Viewers also liked
コーディング入門以前
コーディング入門以前
Yutaka Kinjyo
リーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめ
Kouhei Sutou
実践リーダブルコードの概要
実践リーダブルコードの概要
Kouhei Sutou
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
Shunji Konishi
オブジェクト指向やめましょう
オブジェクト指向やめましょう
なおき きしだ
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
Writing Readable Code
Writing Readable Code
eddiehaber
The art of readable code (ch1~ch4)
The art of readable code (ch1~ch4)
Ki Sung Bae
実践リーダブルコードのコードチェンジ
実践リーダブルコードのコードチェンジ
Kouhei Sutou
The Art Of Readable Code.
The Art Of Readable Code.
Unyong (Sheldon) Choi
The Art Of Readable Code
The Art Of Readable Code
Baidu, Inc.
コーディングがラクになる!? “自分仕様”のさくさくコーディング法
コーディングがラクになる!? “自分仕様”のさくさくコーディング法
Rico Sengan
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Jérôme Petazzoni
Xp祭り2013
Xp祭り2013
Yoshihiro Furukawa
技術系文書作成のコツ
技術系文書作成のコツ
Hideo Terada
nanapi IGNITIONチームの開発フローとその構築
nanapi IGNITIONチームの開発フローとその構築
晃 遠山
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
Apache ArrowのRubyバインディングをGObject Introspectionで
Apache ArrowのRubyバインディングをGObject Introspectionで
Kouhei Sutou
ソフトウェア受託開発の未来
ソフトウェア受託開発の未来
Yoshihito Kuranuki
成功したチームと成功しなかったチーム 20160608
成功したチームと成功しなかったチーム 20160608
Keiichi Endo
Viewers also liked
(20)
コーディング入門以前
コーディング入門以前
リーダブルコード勉強会 in 筑波大のまとめ
リーダブルコード勉強会 in 筑波大のまとめ
実践リーダブルコードの概要
実践リーダブルコードの概要
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
オブジェクト指向やめましょう
オブジェクト指向やめましょう
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Writing Readable Code
Writing Readable Code
The art of readable code (ch1~ch4)
The art of readable code (ch1~ch4)
実践リーダブルコードのコードチェンジ
実践リーダブルコードのコードチェンジ
The Art Of Readable Code.
The Art Of Readable Code.
The Art Of Readable Code
The Art Of Readable Code
コーディングがラクになる!? “自分仕様”のさくさくコーディング法
コーディングがラクになる!? “自分仕様”のさくさくコーディング法
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Introduction to Docker (and a bit more) at LSPE meetup Sunnyvale
Xp祭り2013
Xp祭り2013
技術系文書作成のコツ
技術系文書作成のコツ
nanapi IGNITIONチームの開発フローとその構築
nanapi IGNITIONチームの開発フローとその構築
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
Apache ArrowのRubyバインディングをGObject Introspectionで
Apache ArrowのRubyバインディングをGObject Introspectionで
ソフトウェア受託開発の未来
ソフトウェア受託開発の未来
成功したチームと成功しなかったチーム 20160608
成功したチームと成功しなかったチーム 20160608
リーダブルコード勉強会
1.
セッション in Javaで実践するリーダブルコードぷらす 2013.06.29 松本礼永
2.
自己紹介 • 名前: – 松本
礼永 • 普段の仕事: – 主にJavaで Webアプリケーション開発してます。 • 最近興味あること – Ruby, Scala (え、今更 !? )
3.
リーダブルコード本 • 著 – Dustin
Boswell – Trevor Foucher • 訳 – 角 征典
4.
リーダブルコードって? 『読みやすいコード』(※) どうなったらリーダブ ルなの? 誰が判断する の? (※)書籍から抜粋
5.
これってリーダブル? If ( !isNotEmpty(str)){ }else{ do(); }
それって、なくはないよね
6.
どっちがリーダブル?
7.
リーダブルの定義 『コードは他の人が最短時 間で理解できるように書か なければならない。』(※) (※)書籍から抜粋
8.
今日やりたいこと 他の人が最短の時間 で理解できるようなコード の書き方を改めて見直す。 他の人のため? コードの品質、何より 未来の自分のため
9.
どうすればリーダブルになるか?
10.
リーダブルにするための要素 • 名前 • コメント •
制御フロー • 処理の分割と構成
11.
リーダブルにするための要素 •名前 • コメント • 制御フロー •
処理の分割と構成 情報をつめこむ。 誤解されない名前。
12.
名前に情報をつめこむ 明確で正確な単語
13.
ページを外部から読み込み取得する × ○
14.
名前で人のリストを検索する × ○
15.
名前に情報をつめこむ より具体的な名前
16.
文字列Listの中からヒットしたindexのリスト を返す × ○
17.
DateからyyyyMMdd形式の文字列に変換 する。 × ○
18.
名前に情報をつめこむ プレフィックス と サフィックス
19.
ファイルサイズをチェックする。 × ○
20.
名前に情報をつめこむ 本当に省略してもい いのか?
21.
意味不明な省略 × ○
22.
意味が伝わる省略 『新しいチームメイトはその名前の意味を理 解できるだろうか』 ○ ○ ○ ○
23.
誤解を生まない名前を付ける
24.
指定した文字列を含む要素を除外する × ○
25.
ファイル上限のサイズをチェックする × min, max /
first, last (以上、以下) / begin, end(以上、未満) ○
26.
booleanの変数やメソッド名 × ○ is,has,can,shouldな どを頭に
27.
名前を付ける時のポイント 『名前に情報をつめこむ』(※) –複数の名前の候補から正確 で明確なものを選ぶ (※)書籍から抜粋
28.
名前を付ける時のポイント 『最善の名前とは誤解されな い名前である』(※) –読み手が自分の意図を正しく理 解できる名前か –他の人の意見も参考にする (※)書籍から抜粋
29.
リーダブルにするための要素 • 名前 •コメント • 制御フロー •
処理の分割と構成 ・意図を伝える ・伝わりやすい形
30.
意図を伝える 価値のないコメント をしない
31.
コードをみればすぐに分かること ×
32.
不要な変更箇所コメント ×
33.
むしろコードを直す × ○ 優れたコード > > ひどいコード
+ 優れたコメント
34.
意図を伝える 自分の考え を記録する
35.
コメンタリー ○
36.
欠陥に対するコメント ○
37.
定数値の背景 ○
38.
意図を伝える 読み手を意識 してコメントする
39.
質問されそうなことへの回答をあらかじ め書いておく ○ はまりそうな罠、 全体像に関するコメントなど
40.
伝わりやすく 簡潔にコメントする
41.
代名詞を使わない 歯切れをよくする。 『情報の密度を高める。』 × ○ ○
42.
伝わりやすく 正確に伝わる コメントを書く
43.
動作を正確に記述する × ○
44.
実例で補足する。
45.
コメントを書く時のポイント 『コードの意図を読み手に 理解してもらう』 (※) –無駄なコメントをしない –自分の考えを記録 –読み手の立場で考える (※)書籍から抜粋
46.
コメントを書く時のポイント 『コメントは領域に対する情 報の比率が高くなければな らない』 (※) –簡潔に、正確に (※)書籍から抜粋
47.
リーダブルにするための要素 • 名前 • コメント •
制御フロー • 処理の分割と構成 ・自然な流れで立ち止り、読み 返しをなくす
48.
自然な流れ 条件式の引数 の並べ方
49.
変化する方を左に置く。 調査対象(変化) 比較対象(固定) × ○ × ○
50.
自然な流れ if/elseブロック の並び
51.
ifの条件を素直に × ○ If-elseの条件は、 否定より肯定
52.
自然な流れ ガード節で ネストを浅く
53.
メソッドでは早めにリターン ×
54.
メソッドでは早めにリターン ○ ループでは break,continueで早 めに返す。
55.
制御フローを書く時のポイント 『制御フローはできるだけ自 然にする。コードの読み手 が立ち止まったり読み返し たりしないように書く』 (※) (※)書籍から抜粋
56.
リーダブルにするための要素 • 名前 • コメント •
制御フロー •処理の分割と構成 一度に1つのことをやるように分割 コードのレベルをそろえるように構成
57.
一度に1つのことをやる タスクを列挙 して 処理を分割する 『一度に1つのタスク』
58.
コードのレベルをそろえる 無関係の下位問題 を 抽出する 『高レベルの目標に直接効果が あるのか?』
59.
処理の分割と構成をするポイント 『コードは1つずつタスクを行 なうようにしなければならな い。』 (※) – タスクの列挙 –
処理の分割 (※)書籍から抜粋
60.
処理の分割と構成をするポイント 『無関係の下位問題を積極 的にみつけて抽出する』 (※) – コードのレベルをそろえる (※)書籍から抜粋
61.
リーダブルにするための要素 名前 コメント 制御フロー 処理の分割と構成
62.
まとめ • リーダブル =
読みやすさ • 読みやすさ = 理解しやすさ • リーダブルなコードをかくと…
63.
『やったもん勝ちなんや!! やらんもんは…勝たれへん!』 (※) (※)書籍から抜粋
64.
ご清聴ありがとうございました。
Download now