rabbit-slide-kou-readable-code-workshop-for-pioneer-conclusion 2015.8.11.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.
- checksums.yaml +7 -0
- data/.rabbit +1 -0
- data/README.rd +32 -0
- data/Rakefile +17 -0
- data/config.yaml +23 -0
- data/images/readable-code-feedback-loop-side-effect.svg +821 -0
- data/images/readable-code-feedback-loop.svg +770 -0
- data/images/readable-code-reasonability.svg +167 -0
- data/next-step.rab +172 -0
- data/pdf/readable-code-workshop-for-pioneer-conclusion-next-step.pdf +0 -0
- metadata +81 -0
@@ -0,0 +1,167 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
7
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
10
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
11
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
12
|
+
width="416.15005"
|
13
|
+
height="233.13203"
|
14
|
+
id="svg2"
|
15
|
+
version="1.1"
|
16
|
+
inkscape:version="0.48.5 r10040"
|
17
|
+
sodipodi:docname="readable-code-reasonability.svg">
|
18
|
+
<defs
|
19
|
+
id="defs4">
|
20
|
+
<marker
|
21
|
+
inkscape:stockid="Arrow1Lend"
|
22
|
+
orient="auto"
|
23
|
+
refY="0"
|
24
|
+
refX="0"
|
25
|
+
id="Arrow1Lend"
|
26
|
+
style="overflow:visible">
|
27
|
+
<path
|
28
|
+
id="path3764"
|
29
|
+
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
30
|
+
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
31
|
+
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
32
|
+
inkscape:connector-curvature="0" />
|
33
|
+
</marker>
|
34
|
+
</defs>
|
35
|
+
<sodipodi:namedview
|
36
|
+
id="base"
|
37
|
+
pagecolor="#ffffff"
|
38
|
+
bordercolor="#666666"
|
39
|
+
borderopacity="1.0"
|
40
|
+
inkscape:pageopacity="0.0"
|
41
|
+
inkscape:pageshadow="2"
|
42
|
+
inkscape:zoom="1.979899"
|
43
|
+
inkscape:cx="304.97745"
|
44
|
+
inkscape:cy="179.2249"
|
45
|
+
inkscape:document-units="px"
|
46
|
+
inkscape:current-layer="layer1"
|
47
|
+
showgrid="false"
|
48
|
+
inkscape:window-width="1237"
|
49
|
+
inkscape:window-height="817"
|
50
|
+
inkscape:window-x="2116"
|
51
|
+
inkscape:window-y="68"
|
52
|
+
inkscape:window-maximized="0"
|
53
|
+
fit-margin-top="10"
|
54
|
+
fit-margin-left="10"
|
55
|
+
fit-margin-right="10"
|
56
|
+
fit-margin-bottom="10" />
|
57
|
+
<metadata
|
58
|
+
id="metadata7">
|
59
|
+
<rdf:RDF>
|
60
|
+
<cc:Work
|
61
|
+
rdf:about="">
|
62
|
+
<dc:format>image/svg+xml</dc:format>
|
63
|
+
<dc:type
|
64
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
65
|
+
<dc:title></dc:title>
|
66
|
+
</cc:Work>
|
67
|
+
</rdf:RDF>
|
68
|
+
</metadata>
|
69
|
+
<g
|
70
|
+
inkscape:label="レイヤー 1"
|
71
|
+
inkscape:groupmode="layer"
|
72
|
+
id="layer1"
|
73
|
+
transform="translate(-42.823639,-264.5498)">
|
74
|
+
<path
|
75
|
+
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
76
|
+
d="m 62.629458,450.31127 286.883322,0"
|
77
|
+
id="path2985"
|
78
|
+
inkscape:connector-curvature="0" />
|
79
|
+
<path
|
80
|
+
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
|
81
|
+
d="m 104.04571,487.18183 0,-212.13203"
|
82
|
+
id="path2987"
|
83
|
+
inkscape:connector-curvature="0" />
|
84
|
+
<text
|
85
|
+
xml:space="preserve"
|
86
|
+
style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
87
|
+
x="310.62192"
|
88
|
+
y="476.57526"
|
89
|
+
id="text4402"
|
90
|
+
sodipodi:linespacing="125%"><tspan
|
91
|
+
sodipodi:role="line"
|
92
|
+
id="tspan4404"
|
93
|
+
x="310.62192"
|
94
|
+
y="476.57526">時間</tspan></text>
|
95
|
+
<text
|
96
|
+
xml:space="preserve"
|
97
|
+
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
98
|
+
x="52.022858"
|
99
|
+
y="293.73761"
|
100
|
+
id="text4406"
|
101
|
+
sodipodi:linespacing="125%"><tspan
|
102
|
+
sodipodi:role="line"
|
103
|
+
id="tspan4410"
|
104
|
+
x="52.022858"
|
105
|
+
y="293.73761">開発</tspan><tspan
|
106
|
+
sodipodi:role="line"
|
107
|
+
id="tspan4412"
|
108
|
+
x="52.022858"
|
109
|
+
y="318.73761">速度</tspan></text>
|
110
|
+
<path
|
111
|
+
style="fill:none;stroke:#a40000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
112
|
+
d="m 104.02541,309.39499 c 0,0 15.15229,97.47972 90.40865,116.67261 75.25637,19.1929 140.91628,13.63706 140.91628,13.63706"
|
113
|
+
id="path5532"
|
114
|
+
inkscape:connector-curvature="0"
|
115
|
+
sodipodi:nodetypes="csc" />
|
116
|
+
<text
|
117
|
+
xml:space="preserve"
|
118
|
+
style="font-size:25px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#a40000;fill-opacity:1;stroke:none;font-family:Sans"
|
119
|
+
x="174.97467"
|
120
|
+
y="387.88406"
|
121
|
+
id="text5534"
|
122
|
+
sodipodi:linespacing="125%"><tspan
|
123
|
+
sodipodi:role="line"
|
124
|
+
id="tspan5536"
|
125
|
+
x="174.97467"
|
126
|
+
y="387.88406">リーダブルじゃない場合</tspan></text>
|
127
|
+
<path
|
128
|
+
style="fill:none;stroke:#204a87;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
129
|
+
d="m 103.57143,342.36218 c 0,0 63.28367,10.3815 101.53626,13.06635 43.48081,3.05182 112.03517,4.79079 132.74945,4.07651"
|
130
|
+
id="path5546"
|
131
|
+
inkscape:connector-curvature="0"
|
132
|
+
sodipodi:nodetypes="csc" />
|
133
|
+
<text
|
134
|
+
sodipodi:linespacing="125%"
|
135
|
+
id="text5548"
|
136
|
+
y="301.74121"
|
137
|
+
x="144.83182"
|
138
|
+
style="font-size:25px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#204a87;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
139
|
+
xml:space="preserve"><tspan
|
140
|
+
sodipodi:role="line"
|
141
|
+
id="tspan5552"
|
142
|
+
x="144.83182"
|
143
|
+
y="301.74121">リーダブルな場合</tspan></text>
|
144
|
+
<text
|
145
|
+
xml:space="preserve"
|
146
|
+
style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
147
|
+
x="148.05447"
|
148
|
+
y="330.21933"
|
149
|
+
id="text5554"
|
150
|
+
sodipodi:linespacing="125%"><tspan
|
151
|
+
sodipodi:role="line"
|
152
|
+
id="tspan5556"
|
153
|
+
x="148.05447"
|
154
|
+
y="330.21933">開発速度が落ちにくい</tspan></text>
|
155
|
+
<text
|
156
|
+
sodipodi:linespacing="125%"
|
157
|
+
id="text5558"
|
158
|
+
y="412.21933"
|
159
|
+
x="177.2403"
|
160
|
+
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
161
|
+
xml:space="preserve"><tspan
|
162
|
+
sodipodi:role="line"
|
163
|
+
id="tspan5562"
|
164
|
+
x="177.2403"
|
165
|
+
y="412.21933">開発速度が落ちやすい</tspan></text>
|
166
|
+
</g>
|
167
|
+
</svg>
|
data/next-step.rab
ADDED
@@ -0,0 +1,172 @@
|
|
1
|
+
= まとめと次のステップ
|
2
|
+
|
3
|
+
: author
|
4
|
+
須藤功平
|
5
|
+
: institution
|
6
|
+
株式会社クリアコード
|
7
|
+
: content-source
|
8
|
+
リーダブルコードワークショップ\n
|
9
|
+
(パイオニア向け)
|
10
|
+
: date
|
11
|
+
2015-08-11
|
12
|
+
: allotted-time
|
13
|
+
30m
|
14
|
+
: theme
|
15
|
+
clear-code
|
16
|
+
|
17
|
+
= 目的
|
18
|
+
|
19
|
+
(('tag:center'))
|
20
|
+
↓の方法を体験
|
21
|
+
|
22
|
+
# blockquote
|
23
|
+
((*チームとして*))\n
|
24
|
+
リーダブルコードを書く
|
25
|
+
|
26
|
+
= リーダブルコードの効果
|
27
|
+
|
28
|
+
* 既存コードの変更コスト↓
|
29
|
+
* 理解するまでの時間が短くなるから
|
30
|
+
* 既存コードの変更ミス↓
|
31
|
+
* 間違って理解しにくくなるから
|
32
|
+
|
33
|
+
(('wait'))
|
34
|
+
(('tag:center'))
|
35
|
+
↓\n
|
36
|
+
開発速度に影響
|
37
|
+
|
38
|
+
= 変更コストと開発速度
|
39
|
+
|
40
|
+
# image
|
41
|
+
# src = images/readable-code-reasonability.svg
|
42
|
+
# relative_width = 90
|
43
|
+
|
44
|
+
== プロパティー
|
45
|
+
|
46
|
+
: enable-title-on-image
|
47
|
+
false
|
48
|
+
|
49
|
+
= チームでリーダブルコード
|
50
|
+
|
51
|
+
* チームとしての開発速度↑
|
52
|
+
* 空いている人が対応できる
|
53
|
+
* メンバー交代コスト↓\n
|
54
|
+
(柔軟なチーム編成が可能)
|
55
|
+
* ○○さんが抜けても困らない
|
56
|
+
* 新しい人を受け入れられる
|
57
|
+
|
58
|
+
= 実現方法
|
59
|
+
|
60
|
+
チームでリーダブルコードを書く\n
|
61
|
+
には…
|
62
|
+
|
63
|
+
(('wait'))
|
64
|
+
(('tag:center'))
|
65
|
+
(('tag:large'))
|
66
|
+
↓\n
|
67
|
+
他メンバーのコードを読む
|
68
|
+
|
69
|
+
(('wait'))
|
70
|
+
(('tag:center'))
|
71
|
+
それも!\n
|
72
|
+
リーダブルコードを探す目線で
|
73
|
+
|
74
|
+
= フィードバックループ
|
75
|
+
|
76
|
+
# image
|
77
|
+
# src = images/readable-code-feedback-loop.svg
|
78
|
+
# relative_height = 95
|
79
|
+
|
80
|
+
== プロパティー
|
81
|
+
|
82
|
+
: enable-title-on-image
|
83
|
+
false
|
84
|
+
|
85
|
+
= うれしい副作用
|
86
|
+
|
87
|
+
# image
|
88
|
+
# src = images/readable-code-feedback-loop-side-effect.svg
|
89
|
+
# relative_height = 95
|
90
|
+
|
91
|
+
== プロパティー
|
92
|
+
|
93
|
+
: enable-title-on-image
|
94
|
+
false
|
95
|
+
|
96
|
+
= 体験内容
|
97
|
+
|
98
|
+
* ((*個人として*))開発する
|
99
|
+
* ((*ペアとして*))開発する
|
100
|
+
* ペアのリーダブルコードを見つける\n
|
101
|
+
→共有
|
102
|
+
* ((*チームとして*))開発する
|
103
|
+
* 他メンバーのリーダブルコードを\n
|
104
|
+
見つける→共有
|
105
|
+
|
106
|
+
= 体験した狙い
|
107
|
+
|
108
|
+
(('tag:center'))
|
109
|
+
(('tag:margin-bottom'))
|
110
|
+
きっかけ作り
|
111
|
+
|
112
|
+
* よかったと実感
|
113
|
+
* 自分たちのチームに取り入れる
|
114
|
+
* そのままでもアレンジしてもよい
|
115
|
+
* そうでもなかった
|
116
|
+
* 「合わない」という知見が増えた😇
|
117
|
+
|
118
|
+
= よかった場合向け
|
119
|
+
|
120
|
+
参考情報紹介
|
121
|
+
|
122
|
+
= リーダブルコードの伝え方
|
123
|
+
|
124
|
+
* (('wait'))Wikiに書く
|
125
|
+
* メモの書き方が参考になるはず
|
126
|
+
* (('wait'))コードで伝える
|
127
|
+
* 人のコードを読むチームならできる
|
128
|
+
* リーダブルコードをコミット!
|
129
|
+
* →他の人:「またこの書き方だ」
|
130
|
+
* →真似する人増加
|
131
|
+
|
132
|
+
= コードを読む文化
|
133
|
+
|
134
|
+
* 新人の受け入れにも有用
|
135
|
+
* 人の入れ替えにも有用
|
136
|
+
|
137
|
+
= どうして有用か
|
138
|
+
|
139
|
+
(('tag:center'))
|
140
|
+
(('tag:margin-bottom'))
|
141
|
+
開発を通じて↓を伝えられる
|
142
|
+
|
143
|
+
* チームが大事にしていること
|
144
|
+
* チームのリーダブル
|
145
|
+
* チームの開発スタイル
|
146
|
+
|
147
|
+
= コードを読む文化
|
148
|
+
|
149
|
+
(('tag:center'))
|
150
|
+
チームが大事にしていることを\n
|
151
|
+
開発を通じて伝えられる\n
|
152
|
+
↓
|
153
|
+
|
154
|
+
* 新人の受け入れにも有用
|
155
|
+
* 開発速度低下を抑えられる
|
156
|
+
* 人の入れ替えにも有用
|
157
|
+
* リーダブル見直しのよい機会
|
158
|
+
|
159
|
+
= これからやること
|
160
|
+
|
161
|
+
* コミットメールを設定
|
162
|
+
* git-commit-mailer
|
163
|
+
* github-web-hooks-receiver
|
164
|
+
* 使っているOSSのコミットで練習
|
165
|
+
* commit-email.info
|
166
|
+
|
167
|
+
= FAQ
|
168
|
+
|
169
|
+
* Q: コミットを読むコストが高い
|
170
|
+
* A1: コストを下げる方法を試す
|
171
|
+
* A2: メリットと天秤にかける\n
|
172
|
+
(('note:(自動テストと開発速度の関係と似ている)'))
|
Binary file
|
metadata
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rabbit-slide-kou-readable-code-workshop-for-pioneer-conclusion
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2015.8.11.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kouhei Sutou
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-08-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rabbit
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.0.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.0.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rabbit-theme-clear-code
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: "リーダブルコードワークショップ(パイオニア向け)のまとめと次のステップの説明。"
|
42
|
+
email:
|
43
|
+
- kou@clear-code.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- ".rabbit"
|
49
|
+
- README.rd
|
50
|
+
- Rakefile
|
51
|
+
- config.yaml
|
52
|
+
- images/readable-code-feedback-loop-side-effect.svg
|
53
|
+
- images/readable-code-feedback-loop.svg
|
54
|
+
- images/readable-code-reasonability.svg
|
55
|
+
- next-step.rab
|
56
|
+
- pdf/readable-code-workshop-for-pioneer-conclusion-next-step.pdf
|
57
|
+
homepage: http://slide.rabbit-shocker.org/authors/kou/readable-code-workshop-for-pioneer-conclusion/
|
58
|
+
licenses:
|
59
|
+
- CC BY-SA 4.0
|
60
|
+
metadata: {}
|
61
|
+
post_install_message:
|
62
|
+
rdoc_options: []
|
63
|
+
require_paths:
|
64
|
+
- lib
|
65
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
requirements: []
|
76
|
+
rubyforge_project:
|
77
|
+
rubygems_version: 2.2.2
|
78
|
+
signing_key:
|
79
|
+
specification_version: 4
|
80
|
+
summary: "リーダブルコードワークショップ(パイオニア向け)のまとめ"
|
81
|
+
test_files: []
|