Toshiyuki Kawanishi Blog


2009
3 . 11

レガシーとの闘争 (?): Python 2.x → 3.0

本日、Python Code Reading 08 に参加してきました。前々から、参加してみたかったのですが、いろいろ重なって参加できなかったので、今回が初参加。とても良かったです。皆様ありがとうございました。手書きですがメモを取ってきたので、内容については近いうちにまとめたいと思います。

さて、本題とは関係ないのですが、What''s New In Python 3.0 というドキュメントに記載されている「Python 2.x から 3.0 への移植戦略」を今回のCode Readingで聞いている時に、ごく個人的な気付きがありました。

「おお、これってレガシー戦略に似ている」

このドキュメントには、Python 2.x から 3.0 への移植は、始めにテストを書くことから始まり、自動変換を経て、最後に手作業で頑張るという戦略が提示されています。テストを書いたり頑張ったりというのがレガシーコードとの対決に似ているなぁということです。

# ちなみに、何度も書いていますが「Working Effectively with Legacy Codeにおけるレガシーコードの定義はテストのないコード」です。

やはり優れたテストを導入することが勝敗のカギのようですね。WEwLCではあまり触れられていないように思いますが、Pythonに限らずプラットフォームのバージョンアップって、レガシー界の一大テーマかもしれないですね。今後も深めていきたいテーマが見つかりました。

Djangoなども数年かけて3.0へ移行していく予定とのこと。これから世界中でレガシーとの闘争が始まる.......