見出し画像

DS職の副専攻シリーズ Python編 #2: 何もしないバッチ処理のアプリケーション

#programming #python #batch #design_pattern #layered_architecture #DS職の副専攻シリーズ

この記事では,何もしない空のバッチ処理のアプリケーションの構成例を通じて,Pythonにおけるバッチ処理プロジェクトの構成の僕なりのベストプラクティスを紹介します.

今回紹介する構成例に合わせて開発をおこなうことで,仕様変更に強く,チームで開発ができ,バグの追跡がしやすいプロジェクトを作ることが出来ます.

「データを取り出して,加工して,格納する」というシンプルな処理は,データの業務を行うにあたって,幾度となく繰り返される基本的な処理です.今回はこのバッチ処理のプロジェクトについて,様々な言語で用いられるレイヤードアーキテクチャという考え方に沿った,仕様変更や機能追加に柔軟なプロジェクトの作り方のアイディアを身につけましょう.

降り注ぐ仕様変更の矢

よしできたぞ!

if __name__ == "__main__":
    input_df = pd.read_csv("data.csv")
    output_df = input_df.pipe(
        ...
    ).pipe(
        ...
    )
    output_df.to_csv("result.csv")

最初は簡単な処理だと思い,全ての処理をmainに書き並べていました.ところが現実には,開発運用している最中にも様々な仕様変更や改善提案が降りかかることになります.

???「あ,ごめん,入力データだけど,xxxのDBを参照してもらえる??,あと出力はここに」

😢「書き直しじゃん...」

??? 「あ,この変形処理の部分の開発てつだおうか?」

😢「あ,今そこいじってる..」

??? 「なんかバッチ落ちるっぽいんだよね」

😢「なぜだ...」

日常業務においてこういった手間や作業に振り回されて,本質的な改善提案に時間が裂けない,といったことはないでしょうか?往々に指定そういった些末な課題の数々は,よく設計されたプロジェクトでは大幅に軽減されます.

それではプロジェクトの構成例を見てみましょう.


プロジェクトの構成

ここから先は

11,902字 / 3画像 / 1ファイル

¥ 300

この記事が気に入ったらサポートをしてみませんか?