回答編集履歴

6

言語の標準ライブラリnoh

2017/12/21 17:03

投稿

LLman
LLman

スコア5592

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

サンプルコードに「// 処理」を追加

2017/12/21 17:03

投稿

LLman
LLman

スコア5592

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」に変更

2017/12/21 16:48

投稿

LLman
LLman

スコア5592

test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
  ```
68
68
 
69
- function sum(str arg_a, str arg_b){
69
+ function add(str arg_a, str arg_b){
70
70
 
71
71
  return str result
72
72
 

3

「使う場所を探す必要」を加筆

2017/12/21 16:43

投稿

LLman
LLman

スコア5592

test CHANGED
@@ -85,6 +85,8 @@
85
85
  でも、引数と返り値の型が文字列なので、計算ではないはずです。
86
86
 
87
87
  中の実装を読むまで、何をやっているのか分からない関数です。
88
+
89
+ しかも場合によっては、読んでも分からなくて、使う場所を探す必要があったりして。
88
90
 
89
91
 
90
92
 

2

サンプルコードが分かりにくいと考え、差し替え

2017/12/21 13:28

投稿

LLman
LLman

スコア5592

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(int arg_a, int arg_b){
69
+ function sum(str arg_a, str arg_b){
70
70
 
71
- return int result
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

疎結合などの設計原則の話を加筆

2017/12/21 13:25

投稿

LLman
LLman

スコア5592

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