rabbit-slide-Piro-readable-code-workshop-2022-11-02a-conclusion 2022.11.02

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6070fd34c34c531125044be2d11f8694ab4959c001fc935362d1f5d51710460b
4
+ data.tar.gz: 53fe878511bf4ab4b32b6d5432491e5ba46724db9b4fb62b4aec1fcefea5484e
5
+ SHA512:
6
+ metadata.gz: b292933a282c03e3dfbee25430b19fc406f064416d312d658d6cc915625db048d3d6be8f1d04e939843ef5c5cccecba3ff346b9161c0a98dd4c6385168a1fdc8
7
+ data.tar.gz: 1f50c9531f1e1696e5410d540fb3a594a8e4de2e250c01c9328b3bddf6b5778b4e43cb4e025f5a2a50f3300d6165c455b5408e7798a709912a55be6daa7f6f6e
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ next-step.rab
data/README.rd ADDED
@@ -0,0 +1,32 @@
1
+ = 実践リーダブルコードのまとめ
2
+
3
+ 2022-08-05開催のリーダブルコード演習のまとめと次のステップの説明。
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-2022-08-05-conclusion
28
+
29
+ === 表示
30
+
31
+ rabbit rabbit-slide-piroor-readable-code-workshop-2022-08-05-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-2022-11-02a-conclusion
3
+ base_name: next-step
4
+ tags:
5
+ - rabbit
6
+ - readable-code
7
+ - sezemi
8
+ presentation_date: 2022-11-02
9
+ version: 2022.11.02
10
+ licenses:
11
+ - CC-BY-SA-4.0
12
+ slideshare_id: readable-code-workshop-2022-11-02a-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
Binary file
@@ -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,379 @@
1
+ = まとめと次のステップ
2
+
3
+ : author
4
+ 結城洋志
5
+ : institution
6
+ 株式会社クリアコード
7
+ : content-source
8
+ 実践リーダブルコード
9
+ : date
10
+ 2022-11-02
11
+ : allotted-time
12
+ 20m
13
+ : theme
14
+ clear-code
15
+
16
+ = おさらい
17
+
18
+ * 講座の目的?
19
+ * リーダブルコードの必要性?
20
+ * 講座でやったこと?
21
+
22
+
23
+ = 講座の目的
24
+
25
+ * 自分の開発チームに
26
+ * ((*リーダブルなコードが\n
27
+ 当たり前な文化の作り方*))を
28
+ * 持ち帰る
29
+
30
+ = リーダブルコードの必要性
31
+
32
+ * 既存のコードを読んで\n
33
+ ((*素早く内容を把握する*))ため
34
+ * 既存のコードに\n
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
+ = 文化の作り方の流れ(1)
50
+
51
+ * まず自分が\n
52
+ ((*コードを読む人*))になる
53
+ * よいコードを共有し、\n
54
+ リーダブルコードの基準を作る
55
+ * 「読む人」が\n
56
+ 読みやすいなら\n
57
+ リーダブル
58
+
59
+ = 文化の作り方の流れ(2)
60
+
61
+ * ((*コードを読みあうチーム*))になる
62
+ * 基準の育て方
63
+ * 各メンバーがコードを読む
64
+ * リーダブルだと思ったコードを共有
65
+ * チームとしてリーダブルかを判断
66
+ * →チームの基準に加わる
67
+
68
+ = 基準の育て方
69
+
70
+ * コードを読む文化を作る
71
+ * まず自分が読み始める
72
+ * リーダブルなコードを探す
73
+ * 見つけたリーダブルなコードを\n
74
+ 他のメンバーに伝える
75
+ * →コードが読まれるという自覚が\n
76
+ チームに浸透
77
+
78
+ (('tag:center'))
79
+ (('note:今日やったのはここまで'))
80
+
81
+ = コードを読むきっかけを増やす!
82
+
83
+ (('tag:center'))
84
+ (('note:次のステップの例'))
85
+
86
+ * ((*コミット単位*))で読む
87
+ * ((*スタックトレース*))を\n
88
+ 手がかりに読む
89
+ * ((*出力されるメッセージ*))を\n
90
+ 手がかりに読む
91
+
92
+ ((' '))
93
+
94
+
95
+ = 例1:コミット単位で読む
96
+
97
+ commit 4d516212f14ddcf04a8ead386104dab1d37ab8f4
98
+ Author: YUKI "Piro" Hiroshi <piro.outsider.reflex@gmail.com>
99
+ Date: Tue Oct 4 14:12:49 2022 +0900
100
+
101
+ Support backquote
102
+
103
+ diff --git a/common/placeholder-parser.js b/common/placeholder-parser.js
104
+ index fe6d4df..d9c82ee 100644
105
+ --- a/common/placeholder-parser.js
106
+ +++ b/common/placeholder-parser.js
107
+ @@ -31,14 +32,17 @@ export function process(input, processor, processedInput...
108
+
109
+ if (escaped) {
110
+ if ((inDoubleQuoteString && character == '"') ||
111
+ - (inSingleQuoteString && character == "'")) {
112
+ + (inSingleQuoteString && character == "'") ||
113
+ + (inBackQuoteString && character == '`')) {
114
+ if (inArgsPart)
115
+ rawArgs += '\\';
116
+ }
117
+
118
+ = コミットの読み方
119
+
120
+ * コード全体ではなく差分を読む
121
+ * コードの中身・設計の仕方ではなく\n
122
+ コードの書き方・開発の仕方に注目する
123
+ * ((*文脈なしでも読みやすい*))\n
124
+ ((*→コードがリーダブルな証拠*))
125
+
126
+ = コミット単位で読む負担を減らす
127
+
128
+ * pull型よりpush型にする\n
129
+ (('note:(メール、チャットへの自動投稿など)'))
130
+ * 読むのに取りかかるコストが下がる
131
+ * 流し読む(負担が多いと続かない)
132
+ * 問題探し視点では読まない\n
133
+ (('note:(必要ならコードレビューを実施)'))
134
+
135
+ = コードを読むと気付きが増える
136
+
137
+ * 「詰まらずに読めるなあ」
138
+ * 「詳しくは分からないけど\n
139
+  流れを追いやすいなあ」
140
+ * 「コミットの差分から\n
141
+  趣旨を読み取りやすいなあ」
142
+ * ((*→コードやコミットが*))\n
143
+  ((*リーダブルな証拠*))
144
+
145
+ = コミット単位で読むのが難しい場合
146
+
147
+ * 文脈がないと読むのが辛い
148
+ * 知らない言語、\n
149
+ 知らないプロジェクトだと\n
150
+ 目が滑る
151
+
152
+ →文脈を伴った読み方をしてみる
153
+
154
+ = 例2:スタックトレース
155
+
156
+ SyntaxError: /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/parser/ext/enscript.rb:120:
157
+ syntax error, unexpected keyword_end, expecting end-of-input
158
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/parser/rd/ext/block-verbatim.rb:25:in
159
+ `<top (required)>'
160
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/parser/rd/rd2rabbit-lib.rb:9:in `<top
161
+ (required)>'
162
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/parser/rd.rb:12:in `<top (required)>'
163
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/utils.rb:30:in `require_safe'
164
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/utils.rb:48:in `block (2 levels) in
165
+ require_files_under_directory_in_load_path'
166
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/utils.rb:43:in `glob'
167
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/utils.rb:43:in `block in
168
+ require_files_under_directory_in_load_path'
169
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/utils.rb:41:in `each'
170
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/utils.rb:41:in
171
+ `require_files_under_directory_in_load_path'
172
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/parser.rb:4:in `<top (required)>'
173
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/canvas.rb:8:in `<top (required)>'
174
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/command/rabbit.rb:48:in `run'
175
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/command/rabbit.rb:29:in `run'
176
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/task/slide.rb:238:in `rabbit'
177
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib/rabbit/task/slide.rb:100:in `block in define_run_task'
178
+ /var/lib/gems/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
179
+ Tasks: TOP => default => run
180
+ (See full trace by running task with --trace)
181
+
182
+ = 恐れることはない
183
+
184
+ SyntaxError:
185
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib
186
+ /rabbit/parser/ext/enscript.rb:120:
187
+ syntax error, unexpected keyword_end, expecting end-of-input
188
+
189
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib
190
+ /rabbit/utils.rb:48:
191
+ in `block (2 levels) in require_files_under_directory_in_load_path'
192
+
193
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib
194
+ /rabbit/utils.rb:43:in `glob'
195
+
196
+ /var/lib/gems/2.5.0/gems/rabbit-2.2.1/lib
197
+ /rabbit/utils.rb:43:
198
+ in `block in require_files_under_directory_in_load_path'
199
+
200
+ どこを見ればいいか書いてあるだけ
201
+
202
+ = エラーに遭遇した時に深掘りしてみる
203
+
204
+ * どういう経緯でエラーに\n
205
+ なったかが分かる
206
+ * 回避方法や解決方法が分かる\n
207
+ (('note:(当てずっぽうで色々試さなくて済む)'))
208
+ * ((*経緯を辿りやすい*))\n
209
+ ((*→コードがリーダブルな証拠*))
210
+
211
+ = 例3:画面に出ているメッセージ
212
+
213
+ Firefox のファイルを他のアプリケーションが使用しているため、
214
+ ブックマークと履歴のシステムが無効化されます。この問題は
215
+ セキュリティソフトが原因で生じることがあります。
216
+
217
+ # image
218
+ # src = images/error-message.png
219
+ # relative_width = 90
220
+
221
+ == プロパティー
222
+
223
+ : enable-title-on-image
224
+ false
225
+
226
+ = ソースコード内を検索する
227
+
228
+ https://searchfox.org/l10n
229
+ /source/ja/browser/chrome/browser/places/places.properties
230
+
231
+ ...
232
+ # LOCALIZATION NOTE (lockPrompt.text)
233
+ # %S will be replaced with the application name.
234
+ lockPrompt.text =%S のファイルを他のアプリケーションが
235
+ 使用しているため、...
236
+ ...
237
+
238
+ = 変数名や関数名などを辿っていく
239
+
240
+ https://searchfox.org/mozilla-central
241
+ /source/browser/components/BrowserGlue.jsm
242
+
243
+ /**
244
+ * Show the notificationBox for a locked places database.
245
+ */
246
+ _showPlacesLockedNotificationBox:
247
+ function BG__showPlacesLockedNotificationBox() {
248
+ ...
249
+ var text = placesBundle.formatStringFromName("lockPrompt.text", [
250
+ applicationName,
251
+ ]);
252
+ ...
253
+
254
+ = 目に見えるものを手がかりに深掘りしてみる
255
+
256
+ * どういう経緯で表示\n
257
+ されているかが分かる
258
+ * 回避方法や解決方法が分かる\n
259
+ (('note:(当てずっぽうで色々試さなくて済む)'))
260
+ * ((*経緯を辿りやすい*))\n
261
+ ((*→コードがリーダブルな証拠*))
262
+
263
+
264
+ = OSSのコードを読んで学ぶ
265
+
266
+ * OSSのコードは\n
267
+ リーダブルになるように\n
268
+ 気をつけて書かれることが多い
269
+ * × すごい技術力があるから\n
270
+   リーダブルに書けている
271
+ * ○ 並の技術力なので\n
272
+   リーダブルにしないと\n
273
+   やってられない
274
+
275
+
276
+ = 共有の仕方の例
277
+
278
+ * リーダブルコードの共有方法
279
+ * Wikiに書く(全チームで有効)
280
+ * コードで伝える(上級チーム向け)
281
+
282
+ = Wikiに書いて共有する
283
+
284
+ * Wikiもdiffを通知するように\n
285
+ するとなお良い\n
286
+ (('note:(RedmineとGitHub用はツールあり)'))
287
+ * 後で参照できる
288
+ * 更新もできる\n
289
+ (('note:(リーダブルコードの基準は変わることもある!)'))
290
+
291
+ = 実際のコードで共有する
292
+
293
+ * 上級チーム向け\n
294
+ (('note:(チームにコードを読む文化が根付いた後)'))
295
+ * リーダブルコードを\n
296
+ 真似てコミット
297
+ * →他の人:「またこの書き方だ」
298
+ * →真似する人増加→チームが合意
299
+ * →チームが合意→Wikiにまとめる
300
+
301
+ = コードを読む文化
302
+
303
+ * 新人にも真っ先に\n
304
+ その文化に馴染んでもらう
305
+ * 新人のスムーズな受け入れに有用
306
+ * 人の入れ替えがチームのリーダブル基準の見直しの機会になる
307
+
308
+ = 新人のスムーズな受け入れに有用
309
+
310
+ (('tag:center'))
311
+ 開発を通じて↓を共有できる\n
312
+
313
+ * チームが大事にしていること
314
+ * チームのリーダブル基準
315
+ * チームの開発スタイル
316
+
317
+ (('note:(ただし、上級チームになっていればだが。)'))
318
+
319
+ = 新人のスムーズな受け入れに有用
320
+
321
+ (('tag:center'))
322
+ チームが大事にしていることが\n
323
+ 開発を通じて共有される\n
324
+
325
+
326
+ * 新人に手取り足取り教えずに済む
327
+ * 開発速度低下を抑えられる
328
+
329
+ = リーダブル基準の見直しの機会に
330
+
331
+ (('tag:center'))
332
+ チームが大事にしていることが\n
333
+ 開発を通じて共有される\n
334
+
335
+
336
+ * 「もっとこっちの方が\n
337
+ リーダブルでは?」
338
+ * チームのリーダブル基準の\n
339
+ 見直しのよい機会
340
+
341
+
342
+ = これからやること
343
+
344
+ * この講座をチームでもやる
345
+ * 資料はすべて再利用可能
346
+ * 自分がコードを読み始める
347
+ * 自分が変更するコードの周辺から\n
348
+ リーダブルコードを探す
349
+ * 見つけたリーダブルなコードを\n
350
+ 他のメンバーに伝える
351
+
352
+
353
+ = 読みにくいコードに打ち克つ!
354
+
355
+ * × 読むコストが勿体ないから\n
356
+   読むのをやめる
357
+ * △ 「読みにくい」と指摘する
358
+ * ○ 読みやすいコードにしていく
359
+ * ○ 読みやすくする知見を\n
360
+   共有していく
361
+
362
+
363
+ = サポート
364
+
365
+ * 今日の資料はすべて再利用可能\n
366
+ (('note:https://github.com/clear-code/readable-code-workshop/tree/master/20221102a'))\n
367
+ (('note:( https://slide.rabbit-shocker.org/authors/Piro/ )'))
368
+ * 迷ったら読み返せる
369
+
370
+ = クリアコード
371
+
372
+ * クリアなコードが大切
373
+ * クリア == clear == 意図が明確
374
+ * クリアなコードはリーダブルコード
375
+
376
+ (('tag:center'))
377
+ みなさんのコーディングライフで\n
378
+ リーダブルコードが当たり前に\n
379
+ なることを応援します!
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-Piro-readable-code-workshop-2022-11-02a-conclusion
3
+ version: !ruby/object:Gem::Version
4
+ version: 2022.11.02
5
+ platform: ruby
6
+ authors:
7
+ - YUKI Hiroshi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-11-01 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: 2022-08-05開催のリーダブルコード演習のまとめと次のステップの説明。
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/error-message.png
53
+ - images/readable-code-reasonability.svg
54
+ - next-step.rab
55
+ - pdf/readable-code-workshop-2022-11-02a-conclusion-next-step.pdf
56
+ homepage: http://slide.rabbit-shocker.org/authors/Piro/readable-code-workshop-2022-11-02a-conclusion/
57
+ licenses:
58
+ - CC-BY-SA-4.0
59
+ metadata: {}
60
+ post_install_message:
61
+ rdoc_options: []
62
+ require_paths:
63
+ - lib
64
+ required_ruby_version: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ required_rubygems_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ requirements: []
75
+ rubyforge_project:
76
+ rubygems_version: 2.7.6
77
+ signing_key:
78
+ specification_version: 4
79
+ summary: 実践リーダブルコードのまとめ
80
+ test_files: []