最初は「動けばいい」と思っていた
Pythonでツールや自動化を作り始めたとき、
よく自分に言い聞かせていた言葉があります。
「まずは動けばいい」
間違いではありません。
ですが、この考え方には寿命があります。
とりあえず動いていたコード
実際に使っていたコードは、
こんな形でした。
def run():
files = os.listdir("data")
for f in files:
if f.endswith(".csv"):
rows = read_csv(f)
for r in rows:
if r["flag"] == "1":
r["value"] = int(r["value"]) + 10
write_csv(rows)
書いた当初は問題ありませんでした。
1回きりの処理だったからです。
少しずつ条件が増えていく
しばらく使っていると、
次のような要望が出てきました。
- 別フォルダにも対応したい
- 条件を切り替えたい
- 処理結果をログに残したい
この時点で、
コードは一気に触りづらくなりました。
限界を感じたポイント
一番つらかったのは、
- どこを直せばいいか分からない
- 触るのが怖い
- 動いている理由を説明できない
という状態になったことです。
「動いているけど、理解していない」
コードになっていました。
直すためにやったこと
やったことは、難しくありません。
- 処理の流れを書き出す
- 役割ごとに分ける
- 名前を付け直す
def load_target_files(path):
return [f for f in os.listdir(path) if f.endswith(".csv")]
def process_rows(rows):
for r in rows:
if r["flag"] == "1":
r["value"] = int(r["value"]) + 10
return rows
これだけで、
コードの見え方が大きく変わりました。
作って分かったこと
この経験で分かったのは、
- 「とりあえず動く」は長く使えない
- 説明できないコードは危ない
- 直せる形にするのが一番の近道
ということです。
おわりに
この話は、
「とりあえず動く」で書いたコードが
限界を迎えた瞬間を記録した実践ログです。
早めに立ち止まれたことが、
結果的には一番の改善でした。


コメント