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

回答編集履歴

2

追伸の為

2015/11/04 15:28

投稿

退会済みユーザー
answer CHANGED
@@ -34,4 +34,12 @@
34
34
 
35
35
  どこでチェックするべきなのか?を考える事により、実は1度で良い処理を2度書いてしまったり、抜けもれが発生しにくくなります。
36
36
  例えば、ユーザーが入力した値を、その後加工して、加工後の結果をDB登録するのであれば、DB登録前でしかチェックしようがないですよね。
37
- この場合は、ユーザーが入力する時に想定されるエラーチェックを事前にしておき、さらにDB登録前に加工後のエラーチェックをするというロジックであれば、抜けもれを防げますよね。
37
+ この場合は、ユーザーが入力する時に想定されるエラーチェックを事前にしておき、さらにDB登録前に加工後のエラーチェックをするというロジックであれば、抜けもれを防げますよね。
38
+
39
+ ところで、質問者さんが記述されているロジックですが、このロジックそのものも、関数化できそうですね。
40
+ 名前でなくても、そもそも暗号化してデータベースへ格納する行為は同じなので、
41
+ 登録用関数に、それぞれのチェック関数を組み込んで、標準化出来ますよね。
42
+ 記述されているロジックであれば、入力時の想定されるエラーチェック1、DBからあらかじめ登録されている名前を取得際の、DB接続エラーや、そもそもDBにあった場合のチェック処理2、取得した名前を暗号化する際に考えられるチェック処理3と細かくチェックしていきます。
43
+ そこで素通りしてしまう事の怖さを考えると、その都度チェックするが、一番ですね。
44
+ 色々開発していかれると分かりますが、素通りしてしまうと、一体どこのエラーであるのか、切り分けが出来ず、バグがバグを呼ぶ原因となります。
45
+ 自分を守るという意味においても、都度チェックを細かく細かくするというのを心がけるべきかと思いますね。

1

追記の為

2015/11/04 15:28

投稿

退会済みユーザー
answer CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  >あまり何度もエラーチェックするのは美しくない
20
20
 
21
- というのは、関数化出来ていないから美しくないのであって、エラーチェックは、イレギュラーケースも含め考えられるエラーを二重にも三重にもするべきものです。
21
+ というのは、関数化出来ていないから美しくないのであって、エラーチェックは、イレギュラーケースも含め考えられるエラーを二重にも三重にもチェックするべきものです。
22
22
  そして、関数化してあるチェック処理を呼び出すだけだからこそ、バグに強い強固なプログラムが出来ます。
23
23
 
24
24
  エラーに限らず、チェック処理の基本は、関数化し、基本boolean型で戻り値を返す。
@@ -27,4 +27,11 @@
27
27
 
28
28
  上記の関数を呼び出して使う。
29
29
 
30
- このような流れとなります。
30
+ このような流れとなります。
31
+
32
+ また、どこでこのチェック処理をやるべきなのか?を考えながら書いて見てください。
33
+ 例えば、入力した直後の方が良いのか、それともDBの仕様として全体に対してチェックするべき物なのか?
34
+
35
+ どこでチェックするべきなのか?を考える事により、実は1度で良い処理を2度書いてしまったり、抜けもれが発生しにくくなります。
36
+ 例えば、ユーザーが入力した値を、その後加工して、加工後の結果をDB登録するのであれば、DB登録前でしかチェックしようがないですよね。
37
+ この場合は、ユーザーが入力する時に想定されるエラーチェックを事前にしておき、さらにDB登録前に加工後のエラーチェックをするというロジックであれば、抜けもれを防げますよね。