WebをAppライクに作成するという試み
やってみました。結果まぁ色々と困ることもあったりとかね。
普通MVCとかのFWによるWebシステムとかって, 処理部分と見た目部分は同一のシステムなんだろうけど, これをあえてHTML5的なクライアント部と処理を行うAPIサーバ部に分けて実装してみたらどうよ? っていう試みです。
まぁ単にvalue="<?=$value["name"]?>"とか書くのがいい加減嫌になってきた、って言うだけだったりangularとかのJSフレームワークでリッチなフロント作りたかったりとかいう思いも会ったんだけれども
利点
悪い点
- コード値とかは二重管理になる。まぁフロントとサーバとで別システムって発想だから当然だけど。
- 慣れてないと面倒臭い。従来のやり方とかに引きずられるとフロントとサーバの境界が曖昧になる。
- 複数のAPI組み合わせで機能の多様性は確保できる、って思ってたけど、トランザクションとかね。
課題
- コード値と表示値とかさ。表示値までセットにしてAPIで送ってやったほうがいいのか。
- {}か[]か。それが問題だ。json_encodeのオプションはもっと勉強しなくちゃならないなと。 ー APIのエラーって内容で返すべき?HTTPコードで返すべき?
- JSの異常系って普通どこまで処理するんだろうか(API通信系のサンプルコードとか見ても$.postでjson受けしてるのにJSONパースエラー考慮してないとかほとんどだし…)。
感想(まとめ)
アプリとかでAPIが必要ってなったら,普通のWebサイト側もAppっぽくAPI通信フロント機として実装するのがいいんじゃないかなぁと思う。アプリとかAPIの必要なしって場合にはどうだろうか、って言われると微妙。
今日日RIAなんて言葉もあまり聞かないくらいRIA当たり前の時代だし、そもそもAPI不要とかアプリ不要なんて100%断言できるって事はないような気もする。フロントを静的に作ってやるってのはある種の切り分けの問題で,精神的、作業的には結構楽になるって感じがした。APIテスト用のツールとかをしっかり揃えたらテスト環境もかなり楽になって違うんだろうけど。
ただやっぱりコード値の管理とかね。JSでどうやんの?継承とかも綺麗に書く方法とかもっと勉強しなきゃなあと。ただAngularはマジで便利でした。そんなお話。