はとのーと

エジソンノート(アイデア、思い付き、メモ)として使っています。誰かの役に立つかもしれないので公開しています。

Webアプリを各機能を持った複数コマンドで構成する

思い付きのメモ。

たとえばWebアプリを作成するとき、まず特定の条件で一覧を表示し、次に一覧の中の特定の行をクリックすることで詳細画面が表示するような処理がある。

このような処理はWebアプリとしてそのまま作成するより、それぞれの動作をするコマンドとして作成し、Webアプリはそのコマンドを使用すると構造がすっきりしてメンテナンスも楽になるのではないだろうか?

たとえば2019/7/31発行の請求書から選んで印刷する場合

一覧表示

$ seikyu-list 20190731

ID 宛先  請求額
3  A商店 70000
7  B建設 150000
8  C設備 50000

請求書印刷

$ seikyu-print 7

printing: B建設 150000

これらのコマンドを使用してWebアプリを作成する。

それぞれのコマンドは --json オプションで出力をJSON形式で出力できるようにするとWebアプリ内部から呼び出しやすくなる。

(2019-07-17追記)

コマンドの代わりに上記のコマンドの役割をするようなプレーンなオブジェクトまたはコントローラを作成するとWebアプリで使いやすくなると思う。 そのようなコントローラにURIを与えるとWeb APIになる。