回答編集履歴
5
修正
answer
CHANGED
|
@@ -182,6 +182,7 @@
|
|
|
182
182
|
*/
|
|
183
183
|
}
|
|
184
184
|
```
|
|
185
|
+
|
|
185
186
|
3:
|
|
186
187
|
```php
|
|
187
188
|
if(!$test){
|
|
@@ -196,6 +197,9 @@
|
|
|
196
197
|
|
|
197
198
|
*/
|
|
198
199
|
```
|
|
200
|
+
正常な場合のみにフォーカスを当てがちでですが、異常な方がプログラムとしては大事です。
|
|
201
|
+
先に異常なほうを書きましょう。正常なほうは後回しでも問題ないです。
|
|
202
|
+
|
|
199
203
|
入力チェックの処理を外だしして関数呼び出してメインの処理はエラーメッセージの有無だけにしたほうがスッキリします。
|
|
200
204
|
「本筋の処理と直接関係がないのなら外出し」「同じようなコードは変数で分岐かけて共通化」が基本です。
|
|
201
205
|
|
4
修正
answer
CHANGED
|
@@ -149,7 +149,8 @@
|
|
|
149
149
|
どっちも必須チェックくらいにとどめるべき。
|
|
150
150
|
|
|
151
151
|
5.ifのスコープが長すぎる
|
|
152
|
-
フォーマットかけたらよく分かると思います。特に
|
|
152
|
+
フォーマットかけたらよく分かると思います。特に短い方が後に来るコードは読みづらいです。
|
|
153
|
+
可読性が低く、それはメンテナンス性の低下も招きます。
|
|
153
154
|
elseを使うにしても以下のどちらが読みやすいか考えてみてください。
|
|
154
155
|
1:
|
|
155
156
|
```php
|
3
修正
answer
CHANGED
|
@@ -196,4 +196,19 @@
|
|
|
196
196
|
*/
|
|
197
197
|
```
|
|
198
198
|
入力チェックの処理を外だしして関数呼び出してメインの処理はエラーメッセージの有無だけにしたほうがスッキリします。
|
|
199
|
-
「本筋の処理と直接関係がないのなら外出し」「同じようなコードは変数で分岐かけて共通化」が基本です。
|
|
199
|
+
「本筋の処理と直接関係がないのなら外出し」「同じようなコードは変数で分岐かけて共通化」が基本です。
|
|
200
|
+
|
|
201
|
+
6:PDOExceptionほぼ握りつぶしてる
|
|
202
|
+
```php
|
|
203
|
+
} catch (PDOException $e) {
|
|
204
|
+
$errorMessage = header("Location: 500.php");
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
何のために例外捕捉するようにしたのか。これでは何か異常を検知したときに原因を調べられない。
|
|
208
|
+
セキュリティ観点から画面に出力する必要はないので、せめてログに出力してください。オブジェクトなので$eをjson_encode()かけたものでもいいから。
|
|
209
|
+
- [本当にあった怖い(Javaアンチパターンの)話:例外の抹殺](https://qiita.com/Shrimpman/items/56bfbfc44454e3096da5#no3-%E4%BE%8B%E5%A4%96%E3%81%AE%E6%8A%B9%E6%AE%BA)
|
|
210
|
+
- [「知らない」では怖い例外処理](https://www.techscore.com/blog/2016/12/23/%E3%80%8C%E7%9F%A5%E3%82%89%E3%81%AA%E3%81%84%E3%80%8D%E3%81%A7%E3%81%AF%E6%80%96%E3%81%84%E4%BE%8B%E5%A4%96%E5%87%A6%E7%90%86/)
|
|
211
|
+
- [
|
|
212
|
+
例外処理について](https://donow.jp/skillup/?p=291)
|
|
213
|
+
|
|
214
|
+
※Javaの記事ばかりですが考え方は同じ。握りつぶしちゃダメです。何のための例外をキャッチさせてるのか考えましょう。
|
2
修正
answer
CHANGED
|
@@ -150,5 +150,50 @@
|
|
|
150
150
|
|
|
151
151
|
5.ifのスコープが長すぎる
|
|
152
152
|
フォーマットかけたらよく分かると思います。特にelseが長いのは致命的です。可読性が低く、それはメンテナンス性の低下も招きます。
|
|
153
|
+
elseを使うにしても以下のどちらが読みやすいか考えてみてください。
|
|
154
|
+
1:
|
|
155
|
+
```php
|
|
156
|
+
if($test){
|
|
157
|
+
/*
|
|
158
|
+
|
|
159
|
+
長い処理
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
*/
|
|
165
|
+
}else{
|
|
166
|
+
echo 'error!';
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
2:
|
|
170
|
+
```php
|
|
171
|
+
if(!$test){
|
|
172
|
+
echo 'error!';
|
|
173
|
+
}else{
|
|
174
|
+
/*
|
|
175
|
+
|
|
176
|
+
長い処理
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
*/
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
3:
|
|
185
|
+
```php
|
|
186
|
+
if(!$test){
|
|
187
|
+
die('error!'); //関数ならここでreturn
|
|
188
|
+
}
|
|
189
|
+
/*
|
|
190
|
+
|
|
191
|
+
長い処理
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
*/
|
|
197
|
+
```
|
|
153
198
|
入力チェックの処理を外だしして関数呼び出してメインの処理はエラーメッセージの有無だけにしたほうがスッキリします。
|
|
154
199
|
「本筋の処理と直接関係がないのなら外出し」「同じようなコードは変数で分岐かけて共通化」が基本です。
|
1
修正
answer
CHANGED
|
@@ -146,4 +146,9 @@
|
|
|
146
146
|
|
|
147
147
|
4.というかこれはログイン画面ですよね。
|
|
148
148
|
パスワード何桁とかわざわざチェックするのは悪意あるユーザーのヒントになります。
|
|
149
|
-
どっちも必須チェックくらいにとどめるべき。
|
|
149
|
+
どっちも必須チェックくらいにとどめるべき。
|
|
150
|
+
|
|
151
|
+
5.ifのスコープが長すぎる
|
|
152
|
+
フォーマットかけたらよく分かると思います。特にelseが長いのは致命的です。可読性が低く、それはメンテナンス性の低下も招きます。
|
|
153
|
+
入力チェックの処理を外だしして関数呼び出してメインの処理はエラーメッセージの有無だけにしたほうがスッキリします。
|
|
154
|
+
「本筋の処理と直接関係がないのなら外出し」「同じようなコードは変数で分岐かけて共通化」が基本です。
|