趣味でプログラミングすると抽象的な何かができる

自動生成エンジンのコアにあるテンプレートエンジンを設計しているんですが、インターフェースだらけです。

最初は紙面上でおおまかなモジュールのかたまりと、入出力をまとめていました。その後に具体的な要件を書き足していって、要件ごとに抽象化をしていったんですが、インターフェースだらけになりました。具象クラスが1個しかあり得ないならインターフェースを作らなくてもいいんじゃないか?と思うんですが「いや、いつ具象クラスが増えるか分からないし・・・」とか思ってインターフェースを切り出してしまってます。入れ替える事を前提に考えてしまうんですね。それで具象クラスを入れ替える方法としてDIかFactoryにしようとか思ってたり。Factoryそのものも入れ替えられるようにして・・・とかいくと、結局全ての登場クラスがインターフェースを持つ事になってたりします。

何かを入力として何かをして何かを出力するインターフェースとか(謎)。それは入力と処理と出力があるって定義しているようなもんで、抽象的すぎる。でもクセなのかなんなのか抽象化をしてるとあまりにも抽象的なインターフェース郡ができます。いつか必要に・・・ならないと思いつつもそういう設計をしてしまうのは性格なのかクセなのか・・・弊害が無いのでいいんですけど、第三者には実態のつかみにくい作りでしょうね。害が無いなら蜜結合の方が追いやすいと思った今日この頃です。

ローカルにHudsonとかMavenリポジトリとかSVNリポジトリがあるので開発環境としては快適そのものです(笑)ひとりで開発してるのにいらない気もしますが、JARを拾ってくる手間が大幅に軽減されるのでMavenだけは手放せません。そんなわけで休みの日の時間がある時はコツコツプログラミングしているのでした。休みの晴れた日にパソコンに向かってるのも不健康だなぁと思いつつ楽しいからいっか!と楽天的な私でした。