rabbit-slide-Piro-readable-code-workshop-2019-09-24-conclusion 2019.09.24

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 5e7b9dfe9f2be7b54c8fa383e730fc5fea5fbe900ada788d46120d3c1b8f1f2f
4
+ data.tar.gz: 39449dda8d85830ccd3519e50c39a2aea1e63cfb657e5569b872473af0360cd9
5
+ SHA512:
6
+ metadata.gz: 758551305bdc886d80d5849e8e84fb26298a9af971ca3876f4adc4182dc91991d94231f46c1aa35a039688457f57efbebb56b53bf1fc9f2079f25faa3ee395f7
7
+ data.tar.gz: 1f033baede6c5bf76075c03a423b8b979ec01a91447921dc7db1ba65236de61df3e610fb3f0c12271d9a9b60cd1b264d0ae4a5e57578cee6b0bc82b1a54e8c8e
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ next-step.rab
data/README.rd ADDED
@@ -0,0 +1,32 @@
1
+ = 実践リーダブルコードのまとめ
2
+
3
+ 2019-09-24開催の実践リーダブルコードのまとめと次のステップの説明。
4
+
5
+ == ライセンス
6
+
7
+ CC BY-SA 4.0
8
+
9
+ 原著作者名は以下の通りです。
10
+
11
+ * 株式会社クリアコード
12
+
13
+ == 作者向け
14
+
15
+ === 表示
16
+
17
+ rake
18
+
19
+ === 公開
20
+
21
+ rake publish
22
+
23
+ == 閲覧者向け
24
+
25
+ === インストール
26
+
27
+ gem install rabbit-slide-piroor-readable-code-workshop-2019-09-24-conclusion
28
+
29
+ === 表示
30
+
31
+ rabbit rabbit-slide-piroor-readable-code-workshop-2019-09-24-conclusion.gem
32
+
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ spec.add_runtime_dependency("rabbit-theme-clear-code")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
data/config.yaml ADDED
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: readable-code-workshop-2019-09-24-conclusion
3
+ base_name: next-step
4
+ tags:
5
+ - rabbit
6
+ - readable-code
7
+ - sezemi
8
+ presentation_date: 2019-09-24
9
+ version: 2019.09.24
10
+ licenses:
11
+ - CC BY-SA 4.0
12
+ slideshare_id: readable-code-workshop-2019-09-24-conclusion
13
+ speaker_deck_id:
14
+ ustream_id:
15
+ vimeo_id:
16
+ youtube_id:
17
+ author:
18
+ markup_language: :rd
19
+ name: YUKI Hiroshi
20
+ email: yuki@clear-code.com
21
+ rubygems_user: Piro
22
+ slideshare_user: pirooutsiderreflex
23
+ speaker_deck_user: piroor
@@ -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,191 @@
1
+ = まとめと次のステップ
2
+
3
+ : author
4
+ 結城洋志
5
+ : institution
6
+ 株式会社クリアコード
7
+ : content-source
8
+ 実践リーダブルコード
9
+ : date
10
+ 2019-09-24
11
+ : allotted-time
12
+ 30m
13
+ : theme
14
+ clear-code
15
+
16
+ = 講座の目的
17
+
18
+ * 自分の開発チームに
19
+ * ((*リーダブルなコードが\n
20
+ 当たり前な文化の作り方*))を
21
+ * 持ち帰る
22
+
23
+ = リーダブルコードの必要性
24
+
25
+ * チームの開発速度の維持のため
26
+ * 継続的に改良・修正したい
27
+ * それも現実的なコストで
28
+
29
+ = 変更コストと開発速度
30
+
31
+ # image
32
+ # src = images/readable-code-reasonability.svg
33
+ # relative_width = 90
34
+
35
+ == プロパティー
36
+
37
+ : enable-title-on-image
38
+ false
39
+
40
+ = 文化の作り方の流れ(1)
41
+
42
+ * チームでリーダブル基準を育む
43
+ * 「読む人」が\n
44
+ 読みやすいなら\n
45
+ リーダブル
46
+ * 「読む人」が変われば基準が変わる
47
+ * →読む人が違うのでチーム毎に違う
48
+
49
+ = 文化の作り方の流れ(2)
50
+
51
+ * 基準の育て方
52
+ * 各メンバーがコードを読む
53
+ * リーダブルだと思ったコードを共有
54
+ * チームとしてリーダブルかを判断
55
+ * →チームの基準に加わる
56
+
57
+ = 基準の育て方(1)
58
+
59
+ * コードを読む文化を作る
60
+ * まず自分が読み始める
61
+ * リーダブルなコードを探す
62
+ * 見つけたリーダブルなコードを\n
63
+ 他のメンバーに伝える(('note:(後述)'))
64
+ * →コードが読まれるという自覚が\n
65
+ チームに浸透
66
+
67
+ (('tag:center'))
68
+ (('note:今日やったのはここまで'))
69
+
70
+ = 基準の育て方(2)
71
+
72
+ (('tag:center'))
73
+ (('note:次のステップ'))
74
+
75
+ * コミットを読む
76
+ * コード全体ではなく差分を読む
77
+ * 設計の仕方ではなく\n
78
+ 開発の仕方が見える
79
+ * リーダブルなコードを\n
80
+ 見つけるには適切
81
+
82
+ = 基準の育て方(3)
83
+
84
+ * コミットの読み方
85
+ * pull型よりpush型がよい\n
86
+ (('note:(Git用のオススメツールあり:git-commit-mailer)'))\n
87
+ (('note:(Subversion用のツールもあり:同梱されている)'))
88
+ * 読むコストが下がる
89
+ * 流し読む(負担が多いと続かない)
90
+ * 問題探し視点では読まない\n
91
+ (('note:(必要ならコードレビューを実施)'))
92
+
93
+ = 基準の育て方(4)
94
+
95
+ * リーダブルコードの伝え方
96
+ * Wikiに書く(全チームで有効)
97
+ * コードで伝える(上級チーム向け)
98
+
99
+ = 基準の育て方(5)
100
+
101
+ * Wikiに書いて伝える
102
+ * Wikiもdiffを通知できるようにする\n
103
+ (('note:(RedmineとGitHub用はツールあり)'))
104
+ * 後で参照できるため
105
+ * 更新もできるため\n
106
+ (('note:(リーダブルコードの基準は変わることもある!)'))
107
+
108
+ = 基準の育て方(6)
109
+
110
+ * コードで伝える
111
+ * 上級チーム向け\n
112
+ (('note:(チームにコードを読む文化が根付いた後)'))
113
+ * リーダブルコードを真似てコミット
114
+ * →他の人:「またこの書き方だ」
115
+ * →真似する人増加→チームが合意
116
+ * →チームが合意→Wikiにまとめる
117
+
118
+ = コードを読む文化
119
+
120
+ * 新人の受け入れにも有用
121
+ * 人の入れ替えにも有用
122
+
123
+ = どうして有用か
124
+
125
+ (('tag:center'))
126
+ 開発を通じて↓を伝えられる\n
127
+ (('note:(ただし、上級チームになってから)'))
128
+
129
+ * チームが大事にしていること
130
+ * チームのリーダブル
131
+ * チームの開発スタイル
132
+
133
+ = コードを読む文化
134
+
135
+ (('tag:center'))
136
+ チームが大事にしていることを\n
137
+ 開発を通じて伝えられる\n
138
+
139
+
140
+ * 新人の受け入れにも有用
141
+ * 開発速度低下を抑えられる
142
+ * 人の入れ替えにも有用
143
+ * リーダブル見直しのよい機会
144
+
145
+ = これからやること
146
+
147
+ * この講座をチームでもやる
148
+ * 資料はすべて再利用可能
149
+ * 自分がコードを読み始める
150
+ * 自分が変更するコードの周辺から\n
151
+ リーダブルコードを探す
152
+ * 見つけたリーダブルなコードを\n
153
+ 他のメンバーに伝える
154
+
155
+ = サポート(1)
156
+
157
+ * 今日の資料はすべて再利用可能
158
+ * チーム内で同じ講座をできる
159
+ * 無料のフォローアップ面談
160
+ * チームで実践→悩み\n
161
+ ↑の相談に乗る
162
+ * 受講後3ヶ月以内、1回限り
163
+
164
+ = サポート(2)
165
+
166
+ * コミット読みの支援
167
+ * OSSとしてツールを公開
168
+ * コミット毎にメールで通知(('note:(diff入り)'))
169
+ * Git、Subversionで使える
170
+ * GitHub、GitLab連携もできる
171
+
172
+ = おしらせ
173
+
174
+ (('tag:center'))
175
+ コードリーダー育成支援\n
176
+ (('note:http://www.clear-code.com/services/code-reader/'))
177
+
178
+ (('tag:center'))
179
+ リーダブルなコードが\n
180
+ 当たり前な文化づくりを支援
181
+
182
+ = クリアコード
183
+
184
+ * クリアなコードが大切
185
+ * クリア == clear == 意図が明確
186
+ * クリアなコードはリーダブルコード
187
+
188
+ (('tag:center'))
189
+ みなさんのチームが\n
190
+ リーダブルコードが当たり前な\n
191
+ チームになることを応援します!
metadata ADDED
@@ -0,0 +1,79 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-Piro-readable-code-workshop-2019-09-24-conclusion
3
+ version: !ruby/object:Gem::Version
4
+ version: 2019.09.24
5
+ platform: ruby
6
+ authors:
7
+ - YUKI Hiroshi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-09-20 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: 2019-09-24開催の実践リーダブルコードのまとめと次のステップの説明。
42
+ email:
43
+ - yuki@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-reasonability.svg
53
+ - next-step.rab
54
+ - pdf/readable-code-workshop-2019-09-24-conclusion-next-step.pdf
55
+ homepage: http://slide.rabbit-shocker.org/authors/Piro/readable-code-workshop-2019-09-24-conclusion/
56
+ licenses:
57
+ - CC BY-SA 4.0
58
+ metadata: {}
59
+ post_install_message:
60
+ rdoc_options: []
61
+ require_paths:
62
+ - lib
63
+ required_ruby_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ requirements: []
74
+ rubyforge_project:
75
+ rubygems_version: 2.7.6
76
+ signing_key:
77
+ specification_version: 4
78
+ summary: 実践リーダブルコードのまとめ
79
+ test_files: []