素人とプロとの違いで最も大きいものの1つがエラーチェックの仕組みです。
何も考えないで作成すると、想定通りの正しいデータが流れる前提で動くノーエラーチェックのプログラムをつくりますが、プロはデータを扱うあらゆる箇所にエラー判定を設けます。
よく使う箇所は、
・文字の桁数
・入力された文字が数字が否か
・ファイルを読む場合、そこにファイルが存在するか
・データを更新する際は、必須項目が入っているか、キーが重複していないか
・データがゼロ件か否か
また、
・そもそもデータにアクセスする権限があるか
・ビジネスロジック上禁止されていないか(例えば、締切処理後に入力することを禁止する、他DBに更新後の数字の変更を禁止する、など)
・二重処理のチェック
・処理漏れをチェックする
・データの整合性(合計値など)が取れているか
なども使います。
上級者になると、
・データのフラグを更新直前に判定し、二重処理のトランザクションエラーを見抜く(通常は、レコードをはじめに1度だけ読み込み、手動または自動で項目を編集してから最後に更新する)
などの技も使います。
「エラーチェックは流れの中で1度だけ行う」のではなく、「可能性のある箇所は2度手間になってでも行う」(たとえば、入力時のチェックの他、更新前にも同じチェックをする、など)ことも重要です。
また、エラーにしても、
・強制停止する
・メッセージを出力して止める
・警告を発する
の種類があり、場合によってうまく使い分けないといけません。
プロはこの3つをうまく使い分け、かつ、エラーメッセージもどこでどういうエラーがあったのかがユーザーレベルでわかるようなメッセージ文面を考えます。
特に、合計値をチェックする、キー違反をチェックする、ファイルパスをチェックする、
などは、エラーになった値も一緒に表示する必要があります。
エラーを判定するのは、判定しないプログラムに比べて面倒ですが、ここに手をかけることで、後工程が楽になり、信頼性が違ってくるのです。
何も考えないで作成すると、想定通りの正しいデータが流れる前提で動くノーエラーチェックのプログラムをつくりますが、プロはデータを扱うあらゆる箇所にエラー判定を設けます。
よく使う箇所は、
・文字の桁数
・入力された文字が数字が否か
・ファイルを読む場合、そこにファイルが存在するか
・データを更新する際は、必須項目が入っているか、キーが重複していないか
・データがゼロ件か否か
また、
・そもそもデータにアクセスする権限があるか
・ビジネスロジック上禁止されていないか(例えば、締切処理後に入力することを禁止する、他DBに更新後の数字の変更を禁止する、など)
・二重処理のチェック
・処理漏れをチェックする
・データの整合性(合計値など)が取れているか
なども使います。
上級者になると、
・データのフラグを更新直前に判定し、二重処理のトランザクションエラーを見抜く(通常は、レコードをはじめに1度だけ読み込み、手動または自動で項目を編集してから最後に更新する)
などの技も使います。
「エラーチェックは流れの中で1度だけ行う」のではなく、「可能性のある箇所は2度手間になってでも行う」(たとえば、入力時のチェックの他、更新前にも同じチェックをする、など)ことも重要です。
また、エラーにしても、
・強制停止する
・メッセージを出力して止める
・警告を発する
の種類があり、場合によってうまく使い分けないといけません。
プロはこの3つをうまく使い分け、かつ、エラーメッセージもどこでどういうエラーがあったのかがユーザーレベルでわかるようなメッセージ文面を考えます。
特に、合計値をチェックする、キー違反をチェックする、ファイルパスをチェックする、
などは、エラーになった値も一緒に表示する必要があります。
エラーを判定するのは、判定しないプログラムに比べて面倒ですが、ここに手をかけることで、後工程が楽になり、信頼性が違ってくるのです。