rabbit-slide-kou-devlove-2012 2012.12.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.rabbit +1 -0
- data/README.rd +28 -0
- data/Rakefile +24 -0
- data/after-reading-readable-code.rab +261 -0
- data/config.yaml +23 -0
- data/pdf/devlove-2012-after-reading-readable-code.pdf +0 -0
- metadata +84 -0
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
|
|
Binary file
|
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: []
|