効率性を向上させるPythonコードのリファクタリング:エラーチェックロジックの改善をした話

こんにちは。

野中やすおです。

今回の記事では、効率性を向上させるPythonコードのリファクタリングにおいてエラーチェックロジックを改善した話について書こうと思います。

今いる現場で自分がレビュー依頼をしていたPRについて、レビュアーがより良いコードを提案してくれたので自分への戒め?も込めて残しておきます。

エラーチェックロジック

当初のロジック

今回実装の対象となったコードは、CSVファイルをアップロードした際に、ユーザーの氏名とメールアドレスが一致しない場合は、一致しない行のエラーを404として投げるというエラーチェックロジックを実装していました。

エラーチェックロジックとして私は当初以下のような実装を行なっていました。

Pythonのnextメソッドを使用して二重ループにし、検索方法を線形探索にしていました。

Python documentation

Python インタプリタには数多くの関数と型が組み込まれており、いつでも利用できます。それらをここにアルファベット順に…

提案されたロジック

提案されたロジックは以下のようにユーザーのリストを辞書に変換することものでした。

これによって、メールアドレスからユーザーを探す処理が効率化されました。つまり、辞書を使用することで、検索方法は修正前の線形探索からハッシュ探索になりパフォーマンスも向上しました。

以上、エラーチェックロジックの改善の話でした。今後もより良いコードを書くように意識できればと思っています!