teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

前回の追記を微修正

2015/11/13 03:16

投稿

argius
argius

スコア9396

answer CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  分岐が複雑になっている箇所は、具体的な処理の部分をメソッドに分けることで、見通しが良くなり、処理の流れが分かりやすくなるメリットがあります。
12
12
 
13
- ※追記:このif文全体が1画面に収まる30~50行程度であれば、そのままの方が見通しが良いので分割しない方が良いと思います。
13
+ ※追記:このif文全体が1画面に収まる30~50行程度であれば、そのままの方が見通しが良いので分割しない方が良いと思います。全部では無く、処理が長くてひとまとまりのところだけをメソッドに切り出して、1画面に収まればOKです。
14
14
  (Chironianさんにご指摘いただきました。)
15
15
 
16
16
  ```lang-java

3

Chironianさんのご指摘を反映

2015/11/13 03:16

投稿

argius
argius

スコア9396

answer CHANGED
@@ -9,6 +9,10 @@
9
9
  ・・・・・・
10
10
 
11
11
  分岐が複雑になっている箇所は、具体的な処理の部分をメソッドに分けることで、見通しが良くなり、処理の流れが分かりやすくなるメリットがあります。
12
+
13
+ ※追記:このif文全体が1画面に収まる30~50行程度であれば、そのままの方が見通しが良いので分割しない方が良いと思います。
14
+ (Chironianさんにご指摘いただきました。)
15
+
12
16
  ```lang-java
13
17
  if ( ... ) {
14
18
  while ( ... ) {

2

追記

2015/11/13 02:58

投稿

argius
argius

スコア9396

answer CHANGED
@@ -40,4 +40,13 @@
40
40
 
41
41
  まとめると、1度しか使わないメソッドは、必ずしも要るとは言えません。
42
42
  下手に分割するくらいならしないほうが良いです。
43
- 適切に分割されていれば、読みやすくなると思います。
43
+ 適切に分割されていれば、読みやすくなると思います。
44
+
45
+ ---
46
+
47
+ (追記)
48
+
49
+ 書き忘れましたが、
50
+ この辺の話は、リファクタリングとも関係してきますね。
51
+
52
+ [リファクタリング メソッド分割 - Google 検索](https://www.google.co.jp/search?as_q=%E3%83%AA%E3%83%95%E3%82%A1%E3%82%AF%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0+%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E5%88%86%E5%89%B2&num=100)

1

文の境目が分かりにくいので編集

2015/11/12 05:15

投稿

argius
argius

スコア9396

answer CHANGED
@@ -1,10 +1,12 @@
1
1
  個人の趣向や感覚、熟練度などによって違ってくるので一概には言えませんが、単純に一部の処理を切り取ってメソッドにしてしまっているために、却って読みにくくなっているコードはありますね。
2
2
 
3
+ ・・・・・・
3
4
 
4
5
  何度も使うメソッド、標準関数や標準APIを使う場合に、それらの中身をいちいち確認したりしないですよね?
5
6
  それと同じように、一度しか使わないメソッドも、適切に分割して作られたものなら読みやすくなるはずです。
6
7
  分割する際は、メソッド名も重要になります。
7
8
 
9
+ ・・・・・・
8
10
 
9
11
  分岐が複雑になっている箇所は、具体的な処理の部分をメソッドに分けることで、見通しが良くなり、処理の流れが分かりやすくなるメリットがあります。
10
12
  ```lang-java
@@ -22,16 +24,20 @@
22
24
  }
23
25
  ```
24
26
 
27
+ ・・・・・・
25
28
 
26
29
  Javaで言えば、`private`にしないで、デフォルトアクセスにして、かつ`static`にできるように分割することで、単体テストがしやすくなります。
27
30
  言い換えると、単体テストがしやすいようにメソッドを切り出すことが重要です。
28
31
  `private`にしないことについては異論があるかと思いますが、私は単体テストの利便性を取ります。
29
32
 
33
+ ・・・・・・
30
34
 
31
35
  メソッド呼び出しによるパフォーマンスへの影響は、皆無ではありませんが、一度だけ呼ばれるものならほとんど無視して良いものだと思います。
32
36
 
33
37
 
38
+ ---
34
39
 
40
+
35
41
  まとめると、1度しか使わないメソッドは、必ずしも要るとは言えません。
36
42
  下手に分割するくらいならしないほうが良いです。
37
43
  適切に分割されていれば、読みやすくなると思います。