生成されたファイルとバージョンアップ

ソースコードをジェネレータで生成するのは、非常に便利な時もあるんだけど、環境のバージョンアップ時にdeprecatedあるいはもうサポートされないソースコードを生成しちゃっていた場合、ジェネレータを活用すればするほど、修正する箇所も増えちゃいます。

その修正箇所が自分の知らないコードだと、どう対応していいのかさっぱりわからずバージョンアップに対応できなーい!なんてことに陥ります。じゃあ自分の知っているコードを生成するだけに収めればいいじゃん?ってなっちゃったら生成なんてしなくていいじゃん、って話になっちゃう。それは残念。

で、rubyに限った話じゃないんだけど、動的な言語がいいなーと思うのは、静的にソースコードとして生成しなくても動的に生成できるのでこういうジェネレータとバージョンアップの話に付き合う回数が減るってことかなと。ついでに言うと一般的に言う動的言語以外の言語だって動的な機能を備えている場合があるから、動的言語以外がダメっていうつもりはないっす。

何でこんなこと言ってるのかと言えば、Railsのアプリでジェネレータ使いまくったアプリをバージョンアップさせようとしていて苦労してるから。でも今思えば、ジェネレータを使った時には生成されたコードを読んで勉強したんで未熟だったの一言です。勉強させていただきました。Rubyだろうが何だろうが、生成しないで済むなら避けた方が、メンテナンス対象は少なければ少ない方がいい、そんなことを実感しました。