skillup

技術ブログ

ドキュメント作成 プログラミング全般

バッチスクリプトで気をつけたい点

投稿日:2018年4月22日 更新日:

実務でバッチ処理を作る際に気をつけるべきと思ったこと。

  • 基本的にエラーをいかに捉えていかにログに吐くかを最初に考える。まずはエラーありき。失敗するもの、想定した値がこない、あるいは値がないを前提としてシステムを組むべき。
  • テスト用のオプションは非常に自分を助けるので、必ず作った方が良い。コストを上回ること多し。ソースに書いてコメントアウトだと、いちいちなおすぐのが面倒以上に、忘れてそのまま・・・というリスクがあり。
  • 絶対必要なオプションはCSVなら行指定、DBコンバート系ならid指定など。一々DBを見に行かずに設定できるコストは非常に大切。
  • 頻出エラーはDB非接続、DB更新処理失敗、ファイル非存在、配列のインデックス非存在、値未定義。など
  • 異常があった場合はメールで知らせるほか、ストレージ的な場所にログを格納するのがありかも。
  • トランザクション単位は基本的には1レコード単位で。
  • ログレベルの設定とかは外部ファイルや引数などで動的に変えられた方が便利かも。処理件数に比例して多くなるログの量(例えばSQLなど)などは検索効率性なども考えること。
  • 基本的にログを見たら処理の成否や状態が全てわかるようにしておくこと。後から記録がない場合、処理を追うことができない。
  • ただ冗長なだけでも後で苦しむことになるので、どう検索したら発見しやすいかログを吐くときに考える。
  • ログはタイプに分けて複数吐くなどして分けたほうがいいかも。大量に吐かれるとおうのだけでも大変。
  • 毎時で値を更新するようなバッチの場合、値のクリア(あった値を空にする事)を忘れがちなので、初期値を忘れないようにする事。

-ドキュメント作成, プログラミング全般
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

オブジェクト指向 プレゼンテーション層

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。 本日はプレゼンテーション層、いわゆるMVCのViewにあたる部分。 Contents1 プレゼンテーション層の考え方1.1 要点1. …

no image

コードの分割

今回はリーダブルコードの8章。コードの分割について。 ポイントとしては1行に情報を詰め込みすぎているような場合は分割して、意味がわかりやすい区切りにまとめよう、といったことでしょうか。つまりは「困難は …

no image

オブジェクト指向について その3

今回は場合分けによる変更コストとオブジェクト指向のメリットについてです。 例えば給付金が発生して、その金額を死亡時、退職時、通常時で場合分けするとき、if-elseで書けば下記のようになります。 [c …

no image

ユーザーに見せるエラーメッセージに関する考察

プログラムで難しいことの3つは テスト ログ エラーハンドリング とかいてきましたが、ユーザー側に見せるエラーメッセージについて考察して見ました。 Contents1 ログとエラーメッセージの違い2 …

no image

オブジェクト指向 アプリケーション層に関して

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。 本日は主にアプリケーション層(以下AP層)。MVCモデルでいうところのコントローラーに近い?)の考え方について。 Contents1 …

アーカイブ