Entries

スポンサーサイト

カテゴリ:スポンサー広告
更新日:--------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

フレームワークを作ったっていいじゃない

カテゴリ:コンピューター
更新日:2015-02-23

> 現代の業務SI開発はフレームワークの奴隷なのではないか説 - UXエンジニアになりたい人のブログ
> フレームワークとアプリケーションの境目 - @kyanny's blog

読んでいて、共通して気になることが2つある。
ひとつは、「フレームワークに乗っかることが正義」
もうひとつは、「フレームワークを作るという選択肢はない」

そして、これらの問題提起は、「フレームワークの枠組みを超えそうな時、どうするればいいの?」ということなんだと思う。

アプリケーションがフレームワークの枠組みを超える時、1つめの正義からすれば、フレームワークにコミットしていくのが正当だろう。
だけど、それは気が引ける。そして、オレオレフレームワークは薦めない。

これはひどく消極的な話に見える。
けど、たぶんそうではない。
おそらくはリソース(主に時間か)を、フレームワークよりアプリケーションに配分したいんじゃないのか?


なんか、「知の高速道路とその先の渋滞」って話を思い出すな。
もはやレールはない。
目の前の世界は自ら切り開いていくしか無い。
ようこそ、泥臭い世界へ!

考えられる手段は2つ。
ひとつは、フレームワークの枠内に収まるようにアプリケーションを調整する。
フレームワークが求めないことはやらない。あるいは、やれるようになるまで待つ。

これを選択すると、奴隷感が増すのだと思う。
できないから、我慢しなくちゃいけないからだ。
しかし、アプリケーションの目的に対して、より本質的な理解ができるようになる。
作るためより、使うための開発になるといったほうがいいだろうか。
Excelでやっちゃう、というのはこれに近い。

もうひとつは、フレームワークに対する比重を増やす。
やり方は、さらにいろいろ考えられる。
裏ワザを使う。
リプレースする。
Pull Requestを送る。
フレームワークを開発する。
etc...

裏ワザってのは、フレームワークのバージョンアップに追随できない使い方のことね。
場合によっては、アドオン開発も含まれるだろう。

リプレースは、今までは一般的だった。
SI的というか、納品して終わり、というやつは、これでもいい。
裏ワザってのも、リプレースまで、だましだまし使うという意味合いがあると思う。

でもこれは、欠点が大きくなってきている。
従来のシステム開発は、ハードウェアスペックが貧弱だったから、ハードウェアの交換に合わせて、定期的にリプレースできた。
しかし今や、サーバーだってクラウドで、クライアントだって随時更新が必要になる。
そうしてハードウェアが定期的に一括で更新されなくなった時、ソフトウェアはどうすればいいか?

ある時期に一括して更新ができないとなると、リプレース・コストは無視できない。
置き換えるためには、従来の機能を「作り直さなければいけない」。
新しい仕組み(フレームワーク)を導入すれば、その使い方に習熟するコスト(時間)も必要になる。
同じものを作りなおすという無駄もあり、開発は長期化する。

業務SIにおいてもサービス化の流れはある。リプレースという選択は容易に取れなくなるだろう。

私は、フレームワークを作ってもいいと思ってるんだよね。
Backbone/Marionetteを使っているけど、自作していたのが辛くなってきた時に構想に近いものがあったので取り入れることにしただけでもある。

フルスタックでないとフレームワークでない、というのはRailsの成功の功罪に思える。

フルスタック型のフレームワーク・ソフトウェアは、ロックインされすぎちゃって、後々辛くなりそうなのがイヤなんだよね。
RailsやAngularJSを選択しなかった理由でもある。

例えば「仕様書を書けばプログラムが自動生成される」なんて話を聞くと、ほとんどのプログラマが嫌な感じを持つと思うんだけど、それに似ている。
フレームワーク・ソフトウェアは違う、なんてことある?

メーカーロックインは避けたがるのに、OSSならいいの?
確かに開発には参加できるけど、じゃあPull Requestを送るだろうか。


たんに古い人間なのかもしれないとも思う。
それでも、作りたいアプリケーションのためにアーキテクトするのは、開発者の誉れじゃなかろうか。
スポンサーサイト

Appendix

プロフィール

いむら@fintopo いむら@fintopo

フリーのシステムエンジニア兼プログラマです。趣味はガーデニングとカメラ。2017年4月にα7IIを買いました。フルサイズ一眼初心者です。

このページのQRコード

季節暦

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。