質問編集履歴

2

追記

2018/03/10 13:26

投稿

KazuhiroHatano
KazuhiroHatano

スコア7804

test CHANGED
File without changes
test CHANGED
@@ -4,8 +4,78 @@
4
4
 
5
5
 
6
6
 
7
- ```can...```は真偽値を返すことを期待しますし
7
+ can...は真偽値を返すことを期待しますし
8
8
 
9
- ```try...```だと処理できるなら実行することを期待します
9
+ try...だと処理できるなら実行することを期待します
10
10
 
11
11
  いまいちしっくりくる名前が思いつきません…
12
+
13
+
14
+
15
+ ---
16
+
17
+ 追記
18
+
19
+
20
+
21
+ 実物とはかなり違いますが、大まかには下記のようなことをやろうとしてます
22
+
23
+
24
+
25
+
26
+
27
+ ```php
28
+
29
+
30
+
31
+ class ClassRoom{
32
+
33
+ public function try_reserve($student_id,$curriculum){
34
+
35
+   //まずは生徒・教室・講師のいずれでもこの予約が問題ないかチェック
36
+
37
+   $student_obj=get_student_obj($student_id);
38
+
39
+ $student_obj->check_can_entry($this,$curriculum);
40
+
41
+ $this->check_can_reserve($curriculum);
42
+
43
+ $this->teacher->check_can_teach($student,$curriculum);
44
+
45
+
46
+
47
+ //いずれでも問題なければ予約に伴う処理をそれぞれ実行
48
+
49
+ $student_obj->entry($this,$curriculum);
50
+
51
+ $this->reserve($student,$curriculum);
52
+
53
+ $this->teacher->teach($student,$curriculum);
54
+
55
+ }
56
+
57
+ ....
58
+
59
+ }
60
+
61
+ ```
62
+
63
+
64
+
65
+ 最初の判定条件は簡単だったので、各インスタンスのプロパティを参照して
66
+
67
+ 判定する形にしてたのですが、度重なる仕様変更に対応した結果
68
+
69
+ 条件判定部分だけで300行、処理部分合わせて400行、
70
+
71
+ can,has,isとかのメソッドをそれなりに使ってこの行数、これはやばい
72
+
73
+ インスタンス毎に条件判定処理も実行処理も分けないとテストもまともにできない
74
+
75
+
76
+
77
+ 問題あったら例外スローするだけのメソッド?
78
+
79
+ そんなん書いたことない、名前どうしよう?
80
+
81
+ というような経緯です

1

追記

2018/03/10 13:26

投稿

KazuhiroHatano
KazuhiroHatano

スコア7804

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- 「ある処理が実行可能かを判定し、できないなら例外を投げる」
1
+ 「ある処理が実行可能かを判定し、できないならその理由をメッセージに含めた例外を投げる」
2
2
 
3
3
  だけのメソッドの名前はどうするのが良いでしょうか?
4
4