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

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: 492b5615d1af6b0fa07b0aba5769332c63a5a7a84d047d54ee0fc97375599764
4
+ data.tar.gz: 79ff2f059fb41e35e6dc10755dbd8591470d96a5f0daefe30eb5474218ae4dd1
5
+ SHA512:
6
+ metadata.gz: 95fa2b2ec2b5b40501f2b17101e88c45235166eaff2a1774fb5f25ff413a0336b086d1fa3d036796737424b1585e5eb77b13168b8572df0b6a7f69fc80c3a022
7
+ data.tar.gz: 4788f8e124a180efc583c0715a348531e6519dd00d4b8b46c6067911653e74b5d668fb13deb41fee059aec7dcbc85cc91099f4f1d9b4283b94e61aa6e615a2d7
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ implementation.rab
data/README.rd ADDED
@@ -0,0 +1,32 @@
1
+ = リーダブルコード演習 - 課題の実装の進め方
2
+
3
+ 2022-08-04開催のリーダブルコード演習で実装する課題の概要と進め方の説明。
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-kou-readable-code-workshop-2022-08-04-implementation
28
+
29
+ === 表示
30
+
31
+ rabbit rabbit-slide-kou-readable-code-workshop-2022-08-04-implementation.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,22 @@
1
+ ---
2
+ id: readable-code-workshop-2022-11-02a-implementation
3
+ base_name: how-to-proceed
4
+ tags:
5
+ - rabbit
6
+ - readable-code
7
+ presentation_date: 2022-11-02
8
+ version: 2022.11.02
9
+ licenses:
10
+ - CC-BY-SA-4.0
11
+ slideshare_id: readable-code-workshop-2022-11-02a-implementation
12
+ speaker_deck_id:
13
+ ustream_id:
14
+ vimeo_id:
15
+ youtube_id:
16
+ author:
17
+ markup_language: :rd
18
+ name: YUKI Hiroshi
19
+ email: yuki@clear-code.com
20
+ rubygems_user: Piro
21
+ slideshare_user: pirooutsiderreflex
22
+ speaker_deck_user: piroor
@@ -0,0 +1,140 @@
1
+ = 課題の実装の進め方
2
+
3
+ : author
4
+ 結城洋志
5
+ : institution
6
+ 株式会社クリアコード
7
+ : content-source
8
+ 実践リーダブルコード
9
+ : date
10
+ 2022-11-02
11
+ : allotted-time
12
+ 10m
13
+ : theme
14
+ clear-code
15
+
16
+ = 実装の目的
17
+
18
+ * 課題の仕様を理解する
19
+ * 「読まれることを意識して\n
20
+  書かれたコード」を用意する
21
+ * ((*リーダブルなコード*))を書こう!
22
+
23
+ (('note:(後半戦への布石)'))
24
+
25
+ = 目的じゃないこと
26
+
27
+ * テクニックをたくさん覚える
28
+ * 難しいプログラムを実装する
29
+ * プログラムを速く実装する
30
+ * 高性能なプログラムを実装する
31
+ * 奇抜な方法で目立つ
32
+
33
+ = 課題の傾向
34
+
35
+ * 技術的に難しいことは\n
36
+ 意図的に避けている
37
+ * 段階的に改良していく
38
+ * 時間内で実装しきれない分量
39
+ * ((*すべて実装する必要はない!*))
40
+
41
+ = メモを書く
42
+
43
+ * 工夫したことはissueに書く
44
+ * 1つのissueに1つの工夫でOK
45
+ * メモに含めること
46
+ * 実際のコードのURLか\n
47
+ コード片(差分)
48
+ * リーダブルな理由
49
+
50
+ = メモ例
51
+
52
+ # _
53
+ タイトル: 統一されたスタイル ← リーダブルな書き方の名前
54
+
55
+ ↓本文↓
56
+ --
57
+ URL: https://github.com/kou/.../commit/eb02be
58
+
59
+ コード:
60
+ ```
61
+ @@ -64,7 +64,7 @@ void add_term_to_TermList(...) {
62
+ void open_TermList(TermList *list, char *path) {
63
+ FILE *fp;
64
+ /* ファイルを開く */
65
+ - if ((fp = fopen(path , "r")) == NULL){
66
+ + if ((fp = fopen(path , "r")) == NULL) {
67
+ fprintf (stderr, "ファイルが開けません\n");
68
+ fclose(fp);
69
+ exit(EXIT_FAILURE);
70
+ ```
71
+
72
+ 理由:
73
+ ファイル内でスタイルを統一しているので読みやすくなっている。
74
+
75
+ = リーダブルコードとは
76
+
77
+ * 読む人基準
78
+ * 「読む人」が読みやすいなら\n
79
+ リーダブル
80
+ * 読む人の視点を意識してみて
81
+ * どんな人が読む?
82
+ * どんな前提知識がある?
83
+
84
+ = リーダブルにするヒント
85
+
86
+ * 要件が増えて、それまでと\n
87
+ ((*前提が変わった*))とき
88
+ * 新しい要件に\n
89
+ 惰性ややっつけで対応すると\n
90
+ リーダブルでなくなりやすい
91
+
92
+ = リーダブルにするヒント
93
+
94
+ * × とりあえず\n
95
+   こう書き足したら動く
96
+ * ○ 新しい要件に基づいて\n
97
+   コードを見直し、\n
98
+   適切な書き方に改める
99
+ * 「どうだったらリーダブルか」\n
100
+ をその都度考え直してみよう
101
+
102
+
103
+
104
+ = 実装に困ったら1
105
+
106
+ * 講師に相談
107
+ * 講師は((*答えを教えない*))
108
+ * 一緒に考えてくれる
109
+ * 答えを教えない理由
110
+ * 参加者が考える機会を奪わないため
111
+ * 一緒に考えると新しい視点が増える
112
+
113
+ = 実装に困ったら2
114
+
115
+ * 他の人に相談
116
+ * 答えを教えてもよい
117
+ * 一緒に考えてもよい
118
+ * 条件
119
+ * 答えを教えるときは理由も伝える\n
120
+ (('note:(教える参加者が考える機会になる!)'))
121
+ * 聞く人は理由も聞く\n
122
+ (('note:(考え方を知ると新しい視点でコードを読める!)'))
123
+
124
+ = 実装開始
125
+
126
+ * 仕様
127
+ * task.md
128
+ * 練習
129
+ * 講師がtask.mdを読んで説明
130
+ * 仕様1を各自で実装
131
+ * 実装できたらチューターに声掛け\n
132
+ →仕様2以降実装
133
+
134
+ = ここまでの説明
135
+
136
+ 腑に落ちましたか?
137
+
138
+ = 開始
139
+
140
+ 12:15まで
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-Piro-readable-code-workshop-2022-11-02a-implementation
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-04開催のリーダブルコード演習で実装する課題の概要と進め方の説明。
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
+ - implementation.rab
53
+ - pdf/readable-code-workshop-2022-11-02a-implementation-how-to-proceed.pdf
54
+ homepage: http://slide.rabbit-shocker.org/authors/Piro/readable-code-workshop-2022-11-02a-implementation/
55
+ licenses:
56
+ - CC-BY-SA-4.0
57
+ metadata: {}
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubyforge_project:
74
+ rubygems_version: 2.7.6
75
+ signing_key:
76
+ specification_version: 4
77
+ summary: リーダブルコード演習 - 課題の実装の進め方
78
+ test_files: []