わざわざ残す必要もないことを整理とか気にせずに吐き出していく。そんな空間。

WebをAppライクに作成するという試み

やってみました。結果まぁ色々と困ることもあったりとかね。

普通MVCとかのFWによるWebシステムとかって, 処理部分と見た目部分は同一のシステムなんだろうけど, これをあえてHTML5的なクライアント部と処理を行うAPIサーバ部に分けて実装してみたらどうよ? っていう試みです。

まぁ単にvalue="<?=$value["name"]?>"とか書くのがいい加減嫌になってきた、って言うだけだったりangularとかのJSフレームワークでリッチなフロント作りたかったりとかいう思いも会ったんだけれども

利点

  • 機能分割が簡単。機能=APIとして提供されるので何かと捗る。
  • API仕様がひとつの区切りになる。画面の変更と機能の変更は独立。
  • テストとかが簡単?

悪い点

  • コード値とかは二重管理になる。まぁフロントとサーバとで別システムって発想だから当然だけど。
  • 慣れてないと面倒臭い。従来のやり方とかに引きずられるとフロントとサーバの境界が曖昧になる。
  • 複数のAPI組み合わせで機能の多様性は確保できる、って思ってたけど、トランザクションとかね。

課題

  • コード値と表示値とかさ。表示値までセットにしてAPIで送ってやったほうがいいのか。
  • {}か[]か。それが問題だ。json_encodeのオプションはもっと勉強しなくちゃならないなと。 ー APIのエラーって内容で返すべき?HTTPコードで返すべき?
  • JSの異常系って普通どこまで処理するんだろうか(API通信系のサンプルコードとか見ても$.postでjson受けしてるのにJSONパースエラー考慮してないとかほとんどだし…)。

感想(まとめ)

 アプリとかでAPIが必要ってなったら,普通のWebサイト側もAppっぽくAPI通信フロント機として実装するのがいいんじゃないかなぁと思う。アプリとかAPIの必要なしって場合にはどうだろうか、って言われると微妙。

 今日日RIAなんて言葉もあまり聞かないくらいRIA当たり前の時代だし、そもそもAPI不要とかアプリ不要なんて100%断言できるって事はないような気もする。フロントを静的に作ってやるってのはある種の切り分けの問題で,精神的、作業的には結構楽になるって感じがした。APIテスト用のツールとかをしっかり揃えたらテスト環境もかなり楽になって違うんだろうけど。

 ただやっぱりコード値の管理とかね。JSでどうやんの?継承とかも綺麗に書く方法とかもっと勉強しなきゃなあと。ただAngularはマジで便利でした。そんなお話。