【感想】第24回Ruby/Rails勉強会@関西
第24回Ruby/Rails勉強会@関西へ行ってきた感想を書く。
【1】REST思想が解決しようとするもの
moriqさんの講演。
REST思想をアーキテクチャの観点から非常に丁寧に深く解説してくれて、かなり概念が整理された。
Webシステムの特徴のひとつは、デプロイが独立していること。
つまり、クライアントのVerUpは、サーバーは無関係であること。
Railsの弱点は、デプロイにあると思う。
おそらく、JRubyがそれを解決してくれるはず。
REST思想のモチベーションは、セッションを汚さないこと。
できるだけ、画面の状態は、URLが指し示すリソースで持つ。
GET、POSTだけでなく、HTTPメソッドにあるPUT、DELETEを使って、セッションで保持しなくてもいいようにする。
少なくとも、注文ボタンの2度押し問題は、POSTメソッドでなく、PUTメソッドを使えば解決できる。
PUTメソッドは冪等の性質を持つので、1回以上の操作後の結果は全て同じだから。
しかし、ストヤンが指摘したように、RESTで全ての問題が解決するわけではない。
戻るボタン対応は、RESTでは、戻る遷移専用のURLを作る必要がある。
それは面倒で根本的な解決ではない。
戻るボタン対応は、結局、Continuationつまり、継続サーバーを使わないと解決できないと思う。
継続の概念があれば、画面操作がログインチェックで中断されても、スタックに保持した操作で画面を復元できる。
正常処理ならいつでも操作の途中から開始できる。
REST思想と継続サーバーの概念は全く別だ、と帰路の電車でストヤンが力説してくれた。
ストヤンが言うには、TCP/IPプロトコルそのものが限界にあり、SCTPみたいなプロトコルが必要じゃないかと指摘した。
僕はその意見が絶対正しいと思っていない。
REST思想はまだ不十分だけれども、無駄なセッション管理をなくす方向でWebアプリを単純化しようとしている。
Webアプリがステートレスである限り、その方向性は性能も考えると正しいと思っている。
【2】Railsとアジャイル開発
かわばたさんの講演。
Railsで構築したSNSと、現場でのアジャイル開発のお話。
Tagawaさんが、Railsのテスト駆動開発では、フェイクしたモックオブジェクトを使って開発することはないのか?という質問をしていた。
Railsに限らず、最近のシステム開発は、モジュール単位にプログラマをアサインして分業化するやり方ではなく、機能単位でプログラマが担当する。
つまり、1機能に必要なモジュールをプログラマが全て作る。セル生産のイメージに近い。
その意味では、プログラマの責任が大きくなっている。
プログラマはアーキテクトでもある。
【3】FlexとRubyの意外と親しい関係
FlexUG大阪のhirossyさんの講演。
Ruby関西の人は殆ど、Flexを知らなかったらしい。
デモでは、Webカメラで写した画面を触るとポッと反応するアプリをする予定だった。
興味深かったのは、RubyAMF の話。
動画などの情報をAMF3(Action Message Format 3 )という直列化されたバイナリ形式でサーバーとクライアントをやり取りする。
この時、クライアントはFlex、サーバーはRubyで、そのインターフェイスをAMF3であるアーキテクチャ。
この形式ならば、Flexクライアントは、サーバーのAPIをコールするだけで欲しい情報を取得できる。
ストヤンが話すには、FlexはAjaxよりも良い。
理由は、Flexの方がはるかにリッチなUIを作りやすく、更に、動画などのストリーム情報も加工や表示がやりやすいから。
更に帰路の電車でストヤンから、Flexは元々Flashから来たからデザイナーがプログラミングできる。
リッチなクライアントUIはデザイナーに任した方が、いいものが作れるよ、と。
確かに、Ajaxを使った場合、Viewをデザイナーもプログラマも触ることが多い。
だから、デザインをマージする時など、ソース管理がどうしても面倒になる時がある。
個人的には、ユーザ向けWebアプリはAjax、バックエンドの業務アプリはFlexかAirが現在はベストなWebシステムじゃないかと思う。
今回は色んな発表が聞けて楽しかった。
| 固定リンク
「プログラミング」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのモジュールシステムは複雑性をより増している(2022.09.10)
- Javaはなぜ関数型言語になろうとしているのか(2022.09.02)
- Javaのラムダ式の考え方(2022.08.10)
- Javaはオブジェクト指向言語ではなく関数型言語だった~「[増補改訂]関数プログラミング実践入門」はお勧めの本だ(2022.08.06)
「コミュニティ」カテゴリの記事
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- 『世界一流エンジニアの思考法』が学べる環境を手に入れてかつ継続する方法の感想 #devboost(2023.12.10)
- 第25回東京Redmine勉強会の感想 #redminet(2023.11.05)
- パターンカタログよりもモンスターカタログの方が面白いね #jasstkansai(2023.06.24)
- デブサミ2023の感想(2023.02.11)
コメント
Gomeeeen, my mistake. The protocol was SCTP, not STCP: http://www-128.ibm.com/developerworks/linux/library/l-sctp/?ca=dgr-lnxw01SCTP
投稿: Stoyan Zhekov | 2008/03/16 01:58
ストヤン、Thanks!
直しました。
投稿: あきぴー | 2008/03/19 00:47