skillup

技術ブログ

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

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

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

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

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

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

執筆者:


comment

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

関連記事

no image

トークン認証に関して

Contents1 トークンでの認証2 Laravelでのtoken トークンでの認証 APIアプリケーションを作る場合、認証方式としてはクッキーとセッションを利用したものよりもトークンを使った認証方 …

no image

データ構造の基礎知識 中編 ハッシュ

前回の続きです。 前回は配列、連結リストについて学習したので今回はハッシュについて学習します。 Contents1 ハッシュとは?1.1 メリット1.2 デメリット ハッシュとは? key-value …

no image

ドメイン決定&業務フローとの対応確認

Contents1 ドメイン決定2 業務フローとの対応2.1 実際の業務とエンティティ、画面の遷移2.2 ドメインのCRUD分析 ドメイン決定 業務フローを抽出し、エンティティを抽出した段階で次にドメ …

no image

サロゲートキーと主キーに関して

今までも何度か触れたサロゲートキーと主キーに関して。 今までの参考リンク 論理設計のグレーノウハウ サロゲートキー サロゲートキーに関して 主にシステム設計的な考察が多かったので、今回はユースケースか …

no image

基本設計書(シーケンス図)

基本設計書で気をつけるポイントなど。 要件が決まっており、処理の遷移や流れなどを知る時に、便利なのがシーケンス図だと思います。 アジャイルでもざっくり処理の流れを書いておけば、認識合わせに大分役立つは …

アーカイブ