78:ソースコードの更新が確実に動作に反映される工夫をしよう

リリース作業中のトラブルシューティングなど、時間が限られている状況ではリリース先の環境を直接使って問題の原因を調査することがあります。 リリース中に見つかった不具合をその場で修正するなどということは絶対に避けるべきですが、その環境でしか収集できない情報や、修正対応しなければロールバックすらできない状況もごく稀にあるものです。 たとえば検証環境特有のデータ不整合が原因と想定される場合、開発環境で問題を再現させるための情報などをその場で収集するため、Pythonコードを直接書き換えてデバッグログを追加したり、調査結果を元に確認のためにコードを書き換えたりします。 しかし、追加したはずのデバッグログが出力されなかったらどうでしょう? 「ログを追加した関数には処理が来ていない」と考えるのではないでしょうか。

このような現象に遭遇したときは、基本的なところで間違えている可能性があります。

  • 似た名前の別のファイルを編集している

  • 修正した .py ファイルよりもタイムスタンプが新しい、修正前の .pyc ファイルが使われている

  • ファイルを修正したあとプロセスを再起動していない

  • アクセスしているサーバーが異なる

時間が限られている状況では、普段と異なる手順での作業を行うことによる緊張感もあり、ちょっとした見落としをしてしまったり、想定外の動作に惑わされたりします。

ベストプラクティス

つまづかないための工夫をしましょう。

目的とは別のファイルを編集してしまうことは意外とあります。 安全のために対象ファイルをバックアップ目的で複製して、間違えて複製したほうを編集していることもあります。 落ち着いて、現在編集しているファイルが想定どおりのパスのファイルかを確認しましょう。

cover

(中略)詳細は書籍 自走プログラマー をご参照ください