小規模WEBアプリケーションの効率的な開発の仕方の提案

プログラムを書かないとコンピューター上で実現できない。これは今現在、自明の理である。
私自身もコンストラクションソフトウェアで実現できない事を行うためにプログラミング言語を学んだ口である。


ここで一つ小話を・・・。

とあるWEBアプリケーションが作れるプログラム言語がある。
WEBアプリケーションを作る。
まとめられる機能はライブラリにする。
ライブラリ作りに熱中する。



ごめん、脱線・・・

とあるWEBアプリケーションが作れるプログラム言語がある。
WEBアプリケーションを作る。
まとめられる機能はライブラリにする。
イベントマップ等*1をする。
イベントマップに穴があってとある条件でボタンを押しても上手く機能しないところが出来てしまった。

WEBアプリケーションのようなボタン押して云々に特化しているようなものは様々なボタン押し条件があると思う。
この条件についてプログラマーがすべて把握するのは大変ではないかと思う。(その為にテスターがいるとか云々は置いておいて・・・)


ここで提案。
GUIのみのコードをWEB上にサイト上にアップロードして
そのサイトにアクセスしたユーザーがGUIのみのサイト上でボタンを押すと、

  • この条件でボタンが押されました というログを書き込むとか
  • ユーザーにこのボタンを押したら何をして欲しいかダイアログを表示してリクエストを送信してもらうとか
  • サーバーのログに状態遷移表(状態)とどのボタンが押されたか(遷移条件)を書き込んでもらうとか・・・
  • むしろユーザーからソースコードを送信してもらうとか!?

この状態や遷移条件とかを元に外部のイベント駆動系は完璧になり内部のプログラムを組む事に専念できるのではないかと感じた。この内部のプログラムは殆どライブラリ化されているので単純に書き下すだけで目的のものが開発できそうな気がするのだ。
クリックアンドプレイのように一つ一つのイベントが起こるたびに処理を指定するみたいな開発の方法はどうだろうか?
バグトラッカーのログを見て穴を埋めていくような開発手法だが状態遷移と遷移条件にしっかりと分けることが出来ると思えるようなソフトウェアならばやってみる価値はあるのかもしれないと考えた。
プログラマーが想定していない状態や条件が発生したら「この状態、および条件は想定していません とか 実装していません。」とか表示すれば事足りる。変な壊れたページが表示されるような事は極力なくなるのではないかと思った。


追記:むしろこれを応用してスタンドアローンアプリケーションのGUIのデザインやイベント駆動の条件をユーザーから送信してもらうとか!?統計学的に?一番ユーザーが良いと思えるようなGUIデザインや機能ができる気がするのだ。
これこそがユーザーが一番求めるソフトウェアだ!!!(プログラマー 手ー抜きすぎ!!!)*2


ごめん、何かいているか自分でも分けわかんない所があるけど眠いからということで。後から分かるように推敲するので・・・

*1:このボタンを押されたらDBにアクセスして別のページを表示するなど これらはライブラリが負担する所

*2:だが、プログラマーは機能実装のみに集中できるというメリットがある。