KATOエンジニヤリング開発日誌

「アウトプット無きエンジニアにインプットもチャンスも無い」の精神で書いています

Pythonスクリプトのリファクタリングを実施した

前回の記事でお伝えした通り、開発状況をGitHubに公開するようにしましたが、ソースコードは動けばいいというような感じでコーディングしていたので見映えがあまりよくありませんでした。

今回は既に運用している、「KABU+からCSVファイルを日次でダウンロードする」スクリプトのリファクタリングを行いました。

リファクタリングの内容

スクリプト種別にファイルをまとめる

リファクタリング前は「script」ディレクトリ配下にCSV取得スクリプトやデータベースINSERTのスクリプトといった全てのスクリプトが乱雑におかれていました。

今後、分析用のスクリプトといった別種のスクリプトが増えていくことを考え、スクリプトの種別毎にディレクトリを切ってまとめるようにしました。

CSVダウンロードの対象日付を指定できるようにする

CSV取得スクリプトは対象日付をスクリプトの実行日時としていたため、過去のCSVファイルを取得することができませんでした。

そのため、何らかのエラーでCSVファイルをダウンロードできなかった場合は当日中にスクリプトを手動で実行してあげる必要があり運用時に負担となることがありました。

今後はスクリプトの実行時に引数を指定してやり、引数の日時でCSVファイルをダウンロードするようにしました。また、これまで通り引数を指定しない場合にはスクリプト実行日時のCSVファイルをダウンロードするようにしています。

クラスを使う

今までPythonでクラスを使うことがなかったのですが、今後スクリプトの種類が増え、オブジェクト指向プログラミングの必要がでたときのために今のうちにクラス化できるものはクラスにすることにしました。

今回のCSV取得スクリプトの場合は、CSVファイルを取得・加工する一連の流れのところがクラス化できそうな感じがしたのでクラス化しました。

オブジェクト指向プログラミングは慣れていないので正しいかはわかりませんが、練習として今回のリファクタリングに含めました。

スクリプト

リファクタリング後のソースコードは下記から確認できます。

github.com

ちなみにリファクタリング前のソースコードは下記です。

github.com