回答編集履歴
6
言語の標準ライブラリnoh
test
CHANGED
@@ -152,11 +152,19 @@
|
|
152
152
|
|
153
153
|
長期的に使うので、評価しやすいと思います。
|
154
154
|
|
155
|
-
|
156
|
-
|
157
155
|
ライブラリ作成は大変なので、小物を多く作るといいです。
|
158
156
|
|
157
|
+
|
158
|
+
|
159
|
+
また、RubyやJavaなど、普段使っている
|
160
|
+
|
159
|
-
|
161
|
+
**言語の標準ライブラリ**を学ぶのも、参考になると思います。
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
言語の開発元は、その言語がよく分かっているので、
|
166
|
+
|
167
|
+
クラスの分け方など、多くの場合で参考になる点が多いと思います。
|
160
168
|
|
161
169
|
|
162
170
|
|
5
サンプルコードに「// 処理」を追加
test
CHANGED
@@ -68,6 +68,8 @@
|
|
68
68
|
|
69
69
|
function add(str arg_a, str arg_b){
|
70
70
|
|
71
|
+
// 処理
|
72
|
+
|
71
73
|
return str result
|
72
74
|
|
73
75
|
}
|
@@ -93,6 +95,8 @@
|
|
93
95
|
```
|
94
96
|
|
95
97
|
function get_full_name(str first_name, str last_name){
|
98
|
+
|
99
|
+
// 処理
|
96
100
|
|
97
101
|
return str full_name
|
98
102
|
|
4
サンプルコードの「sum」を「add」に変更
test
CHANGED
@@ -66,7 +66,7 @@
|
|
66
66
|
|
67
67
|
```
|
68
68
|
|
69
|
-
function
|
69
|
+
function add(str arg_a, str arg_b){
|
70
70
|
|
71
71
|
return str result
|
72
72
|
|
3
「使う場所を探す必要」を加筆
test
CHANGED
@@ -85,6 +85,8 @@
|
|
85
85
|
でも、引数と返り値の型が文字列なので、計算ではないはずです。
|
86
86
|
|
87
87
|
中の実装を読むまで、何をやっているのか分からない関数です。
|
88
|
+
|
89
|
+
しかも場合によっては、読んでも分からなくて、使う場所を探す必要があったりして。
|
88
90
|
|
89
91
|
|
90
92
|
|
2
サンプルコードが分かりにくいと考え、差し替え
test
CHANGED
@@ -60,15 +60,15 @@
|
|
60
60
|
|
61
61
|
関数やメソッドの処理よりも、
|
62
62
|
|
63
|
-
**名前**や**引数**、**
|
63
|
+
**名前**や**引数**、**返り値**に注目します。
|
64
64
|
|
65
65
|
|
66
66
|
|
67
67
|
```
|
68
68
|
|
69
|
-
function sum(
|
69
|
+
function sum(str arg_a, str arg_b){
|
70
70
|
|
71
|
-
return
|
71
|
+
return str result
|
72
72
|
|
73
73
|
}
|
74
74
|
|
@@ -78,7 +78,31 @@
|
|
78
78
|
|
79
79
|
たとえば上記は、特定の言語を想定したものではない疑似コードですが、
|
80
80
|
|
81
|
+
関数名をパッと見て「引数の和を返すのかな?」と思ってしまうかもしれません。
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
でも、引数と返り値の型が文字列なので、計算ではないはずです。
|
86
|
+
|
87
|
+
中の実装を読むまで、何をやっているのか分からない関数です。
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
```
|
92
|
+
|
93
|
+
function get_full_name(str first_name, str last_name){
|
94
|
+
|
95
|
+
return str full_name
|
96
|
+
|
97
|
+
}
|
98
|
+
|
99
|
+
```
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
そこでこれなら、姓と名前を引数に取って、氏名を返す関数だと、
|
104
|
+
|
81
|
-
|
105
|
+
**実装を見なくても**想像がつきますね。
|
82
106
|
|
83
107
|
|
84
108
|
|
1
疎結合などの設計原則の話を加筆
test
CHANGED
@@ -82,7 +82,19 @@
|
|
82
82
|
|
83
83
|
|
84
84
|
|
85
|
+
実装を読まなくても使えると、使いやすいモジュールになります。
|
86
|
+
|
87
|
+
言語の標準ライブラリなどを使うときは、実装を読まないと思います。
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
**いかに読む量を減らせるか、覚える量を減らせるか**が設計力です。
|
92
|
+
|
93
|
+
**疎結合**とか**単一責務**などの**設計原則**も、それに沿っています。
|
94
|
+
|
95
|
+
|
96
|
+
|
85
|
-
この発展で、抽象クラスや(Javaの)**インターフェイス**に、
|
97
|
+
さらに、この発展で、抽象クラスや(Javaの)**インターフェイス**に、
|
86
98
|
|
87
99
|
注目することは有効だと思います。それらに実装はないけれど、
|
88
100
|
|