rabbit-slide-kou-devlove-2012 2012.12.16.0

Sign up to get free protection for your applications and to get access to all the features.
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ after-reading-readable-code.rab
data/README.rd ADDED
@@ -0,0 +1,28 @@
1
+ = リーダブルコードを読んだ後
2
+
3
+ DevLOVE 2012での「リーダブルコードを読んだ後」というセッションで説明のために使ったスライドです。セッションの内容は、リーダブルコードに書かれていることを実際に使うためにはどうすればよいかということを実際にやってみるというものです。ワークショップ形式のセッションです。
4
+
5
+ リーダブルコードという読みやすいコード(リーダブルなコード)の書き方をわかりやすく説明した本があります。リーダブルコードに書かれているテクニックを使えばリーダブルな理解しやすいコードを書けるようになります。
6
+
7
+ しかし、リーダブルコードを読んだ人すべてがリーダブルなコードを書けるようになれるわけではありません。リーダブルコードに書かれていることを知識として持っているだけではリーダブルなコードは書けません。実際にその知識を使ってコードを書かなければリーダブルコードを読む前と同じようなコードばかり書くことになります。
8
+
9
+ == 作者向け
10
+
11
+ === 表示
12
+
13
+ rake
14
+
15
+ === 公開
16
+
17
+ rake publish
18
+
19
+ == 閲覧者向け
20
+
21
+ === インストール
22
+
23
+ gem install rabbit-slide-kou-devlove-2012
24
+
25
+ === 表示
26
+
27
+ rabbit rabbit-slide-kou-devlove-2012.gem
28
+
data/Rakefile ADDED
@@ -0,0 +1,24 @@
1
+ # Copyright (C) 2012 Kouhei Sutou <kou@clear-code.com>
2
+ #
3
+ # License: CC BY-SA 3.0
4
+ #
5
+ # This program is free software: you can redistribute it and/or modify
6
+ # it under the terms of the GNU General Public License as published by
7
+ # the Free Software Foundation, either version 3 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU General Public License
16
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+
18
+ require "rabbit/task/slide"
19
+
20
+ # Edit ./config.yaml to customize meta data
21
+
22
+ Rabbit::Task::Slide.new do |task|
23
+ task.spec.add_runtime_dependency("rabbit-theme-clear-code")
24
+ end
@@ -0,0 +1,261 @@
1
+ = リーダブルコードを\n読んだ後
2
+
3
+ : author
4
+ 須藤功平
5
+ : institution
6
+ 株式会社クリアコード
7
+ : content-source
8
+ DevLOVE 2012
9
+ : date
10
+ 2012/12/16
11
+ : allotted-time
12
+ 10m
13
+ : theme
14
+ clear-code
15
+
16
+ = やること
17
+
18
+ クリアコードの開発方法を体験
19
+
20
+ = 目標
21
+
22
+ (('tag:center'))(('tag:large'))リーダブルコードを
23
+
24
+ (('tag:center'))(('tag:x-large'))当たり前にする
25
+
26
+ = イベントのテーマ
27
+
28
+ # image
29
+ # src = http://devlove2012.devlove.org/theme/jobs/images/copy.png
30
+ # relative_width = 100
31
+
32
+ == スライドプロパティ
33
+
34
+ : enable-title-on-image
35
+ false
36
+
37
+ = 目標
38
+
39
+ (('tag:center'))(('tag:x-large'))あなたが
40
+
41
+ (('tag:center'))(('tag:large'))リーダブルコードを
42
+
43
+ (('tag:center'))(('tag:x-large'))当たり前にする
44
+
45
+ = やり方
46
+
47
+ * クリアコードの開発方法を体験
48
+ * 対象:野生のフリーソフトウェア
49
+ * 読む人を「想像」しない
50
+ * 読む人を「思い出す」
51
+
52
+ = 想像上の誰か
53
+
54
+ # blockquote
55
+ # title = リーダブルコード 1.5 でもやるんだよ
56
+
57
+ 想像上の誰かが自分のコードを理解しやすいかなんて考えるのは大変なことだ。
58
+
59
+ = 想像しない
60
+
61
+ * 読む人を「想像」しない
62
+ * 読む人を「思い出す」
63
+
64
+ = 思い出すには?
65
+
66
+ 読む人になる
67
+
68
+ = クリアコードの開発方法
69
+
70
+ * コミットメールが全員に届く\n
71
+ (('note:(diff入り)'))
72
+ * 全員が読む
73
+ * 気になったらコメント\n
74
+ (('note:(プロジェクト外の人でも)'))
75
+ * 「昨日印象に残ったコミット」を朝会で報告
76
+
77
+ = ポイント
78
+
79
+ * 全員が書く人で読む人
80
+ * 書く時:
81
+ * 読む時の事を思いながら\n
82
+ (('note:(こう書くと読みやすいんだよな。)'))
83
+ * 読む時:
84
+ * 書く時の事を思いながら\n
85
+ (('note:(これ読みやすいから今度同じように書こう。)'))
86
+
87
+ = 当日は省略
88
+
89
+ = なぜリーダブルコード?
90
+
91
+ 開発を\n続けるため
92
+
93
+ = メリット
94
+
95
+ * メンテナンスコストを低く保つ\n
96
+ (('note:(開発を続けるわりにあわなくなってしまう)'))
97
+ * 機能追加・変更をしやすくする\n
98
+ (('note:(使われないものになって開発する必要がなくなる)'))
99
+ * プログラマーの意欲を保つ\n
100
+ (('note:(プログラマーも人です)'))
101
+
102
+ = 注意
103
+
104
+ * すべてを解決するわけではない
105
+ * よりよくする重要な方法の1つ
106
+ * トレードオフ
107
+
108
+ = メンテナンスコスト
109
+
110
+ # blockquote
111
+
112
+ メンテナンスコストを低く保つためにずっとリファクタリングをし続ける
113
+ と…高いメンテナンスコスト
114
+
115
+ = 素早い変更
116
+
117
+ # blockquote
118
+
119
+ 素早く機能追加・変更できるよう、リーダブルコードにするために必要な時
120
+ 間を確保して開発しているのに、機能を追加したいというと必ず1週間以上は
121
+ 必要だと言われる…素早くない変更
122
+
123
+ = ゴール
124
+
125
+ * 本末転倒にならないように!
126
+ * リーダブルコードを書くことは\n
127
+ ゴールじゃない
128
+ * 効率よく目的を実現するのがゴール\n
129
+ (('note:(今だけ効率がよければよいのではない。念のため。)'))
130
+ * 手早くリーダブルコードを\n
131
+ 書けるようになろう!
132
+
133
+ = なぜコミットメール?
134
+
135
+ ペアプロより\n
136
+ スケールする
137
+
138
+ = ペアプロ
139
+
140
+ * 常にコードレビュー
141
+ * 2人だけ
142
+ * 時間をあわせる
143
+ * 距離をあわせる
144
+ * プロジェクトをあわせる
145
+
146
+ = コミットメール
147
+
148
+ * 常にコードレビュー
149
+ * 2人以上も読める
150
+ * 時間がずれてもよい
151
+ * 距離がずれてもよい
152
+ * プロジェクトがずれてもよい
153
+
154
+ = コミット
155
+
156
+ (('tag:center'))(('tag:large'))(('tag:margin-bottom'))
157
+ ペアプロしているように!
158
+
159
+ * 小さくコミット
160
+ * 意図が伝わるコミット
161
+
162
+ = ペアプロの方がよいこと
163
+
164
+ (('tag:center'))(('tag:large'))(('tag:margin-bottom'))
165
+ 全体の設計とかもみれる
166
+
167
+ * コミットメールだけだとムリ
168
+ * pull requestだけでもムリ
169
+ * 一緒に書いていないとムリ\n
170
+ (('note:(同じプロジェクトだといけそう)'))
171
+
172
+ = ここまで飛ばす
173
+
174
+ = 確認
175
+
176
+ 事前課題
177
+
178
+ = 事前課題
179
+
180
+ (1) リーダブルコードを読む
181
+ (2) Rubyコードの感想戦を読む
182
+ (3) github://clear-code/git-utilsをfork
183
+ (4) commit-email.rbを読む
184
+ * Rubyコードの感想戦のように読む
185
+
186
+ = 事前課題確認1
187
+
188
+ (1) ((*リーダブルコードを読む*))
189
+ (2) Rubyコードの感想戦を読む
190
+ (3) github://clear-code/git-utilsをfork
191
+ (4) commit-email.rbを読む
192
+ * Rubyコードの感想戦のように読む
193
+
194
+ = 事前課題確認2
195
+
196
+ (1) リーダブルコードを読む
197
+ (2) ((*Rubyコードの感想戦を読む*))
198
+ (3) github://clear-code/git-utilsをfork
199
+ (4) commit-email.rbを読む
200
+ * Rubyコードの感想戦のように読む
201
+
202
+ = 事前課題確認3
203
+
204
+ (1) リーダブルコードを読む
205
+ (2) Rubyコードの感想戦を読む
206
+ (3) ((*github://clear-code/git-utilsをfork*))
207
+ (4) commit-email.rbを読む
208
+ * Rubyコードの感想戦のように読む
209
+
210
+ = 事前課題確認4
211
+
212
+ (1) リーダブルコードを読む
213
+ (2) Rubyコードの感想戦を読む
214
+ (3) github://clear-code/git-utilsをfork
215
+ (4) ((*commit-email.rbを読む*))
216
+ * Rubyコードの感想戦のように読む
217
+
218
+ = むずかしい?
219
+
220
+ * 「うまくできない」は今のうち
221
+ * 聞けば答えます
222
+
223
+ = 進め方
224
+
225
+ * 読み手になる: 15分
226
+ * (('note:事前課題をやっていない人: Rubyコードの感想戦を読む'))
227
+ * 読み手目線で書く: 15分
228
+ * (('note:事前課題をやっていない人: 読み手になる'))
229
+ * 質疑応答: 10分
230
+
231
+ = 読み手になる: 15分
232
+
233
+ (1) 数人のグループを作る
234
+ (2) グループ用のgit-utilsをclone
235
+ (3) 読んでcommit & push
236
+ * リーダブルなら理由をコメントとして書く
237
+ * リーダブルじゃないなら直してコミットメッセージで((*理由*))を説明
238
+
239
+ = 読み手目線で書く: 15分
240
+
241
+ (1) 他のグループのリポジトリのコミットを確認\n
242
+ (('note:コミットメールが届いているはず'))
243
+ * 自分達にピンとこないものを選ぶ
244
+ * 直してメッセージで((*理由*))を説明
245
+ * コードで伝える
246
+ (2) 自分たちのリポジトリを確認
247
+ (3) 繰り返す
248
+
249
+ = 質疑応答: 10分
250
+
251
+ * 気になったコミットは?
252
+ * やってみて困ったことは?
253
+ * 実践すると困りそうなことは?
254
+
255
+ = 宣伝
256
+
257
+ (('tag:center:コミットへのコメントサービス'))
258
+
259
+ 「リーダブルコードの解説 - ククログ(2012-06-11)」
260
+ http://www.clear-code.com/blog/2012/6/11.html
261
+ ↑の一番最後のところ
data/config.yaml ADDED
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: devlove-2012
3
+ base_name: after-reading-readable-code
4
+ tags:
5
+ - rabbit
6
+ - readablecode
7
+ - devlove
8
+ - devlove2012
9
+ presentation_date: 2012/12/16
10
+ version: 2012.12.16.0
11
+ licenses:
12
+ - CC BY-SA 3.0
13
+ slideshare_id:
14
+ speaker_deck_id:
15
+ ustream_id:
16
+ vimeo_id:
17
+ author:
18
+ markup_language: :rd
19
+ name: 須藤功平
20
+ email: kou@clear-code.com
21
+ rubygems_user: kou
22
+ slideshare_user: kou
23
+ speaker_deck_user: kou
metadata ADDED
@@ -0,0 +1,84 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-kou-devlove-2012
3
+ version: !ruby/object:Gem::Version
4
+ version: 2012.12.16.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - 須藤功平
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rabbit
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 2.0.2
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 2.0.2
30
+ - !ruby/object:Gem::Dependency
31
+ name: rabbit-theme-clear-code
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: DevLOVE 2012での「リーダブルコードを読んだ後」というセッションで説明のために使ったスライドです。セッションの内容は、リーダブルコードに書かれていることを実際に使うためにはどうすればよいかということを実際にやってみるというものです。ワークショップ形式のセッションです。
47
+ email:
48
+ - kou@clear-code.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - .rabbit
54
+ - config.yaml
55
+ - Rakefile
56
+ - README.rd
57
+ - after-reading-readable-code.rab
58
+ - pdf/devlove-2012-after-reading-readable-code.pdf
59
+ homepage: http://slide.rabbit-shocker.org/authors/kou/devlove-2012/
60
+ licenses:
61
+ - CC BY-SA 3.0
62
+ post_install_message:
63
+ rdoc_options: []
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ requirements: []
79
+ rubyforge_project:
80
+ rubygems_version: 1.8.23
81
+ signing_key:
82
+ specification_version: 3
83
+ summary: リーダブルコードを読んだ後
84
+ test_files: []