skillup

技術ブログ

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

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

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

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

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

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

執筆者:


comment

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

関連記事

no image

テストコードの考え方

一般的なプログラマにとって日々の業務で何がいやかというと、 理不尽な納期 むちゃくちゃな仕様変更 頻発するバグ・不具合 であることは異論がないでしょう。仕様変更や納期などは自分で何とかしがたい部分もあ …

no image

コードの分割

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

no image

Webの高速化に関して

Webの高速化に関してメモ。 高速化って言っても幅広いんですけどね。自分が行なっている対策に関して。 一応LAMP環境を前提にしてます。 Contents1 一番大事なのは測定2 DB対策3 フロント …

no image

テストについて

本日は完全自分用です。私以外の人間が見ても意味不明かもです(汗) Contents1 大事だと思う考え方2 検索系2.1 未チェック時2.2 キーワード系 1:Nパターン(主にキーワードなど)2.3 …

no image

調査スキルについて

本日は実務でとても大切な不具合の発見方法について 通常のプログラマとして仕事をしておりますと、通常の実装よりは不具合時の調査のほうが難しいことが多々あります。 もちろんものによるんですが、経験のある人 …