先日、第5回目のRESTful#とは勉強会を開催しました。
年度末なので忙しい方が多かったのではないかと思いますが、参加してくれた皆様、ありがとうございます。
私自身も割と疲れ果てていて(ヽ´ω`) 、集中最後まで持って~ と願いながら参加しましたが、開始してみると逆に元気になりました!

21cafeさんの素敵過ぎるオフィスをお借りし、
可愛すぎる管理人のえりーさんのサポートを頂きながらの開催でした。ありがとうございます。
(geechsさんはエンジニアの方もオシャレ!!!!)

21cafe


tigerやったこと tiger

最初は毎度おなじみの「Webを支える技術」の読書会です。

@tkawaさんが出題してくれる課題を考えながらべき等性に関して考えながら輪読しました。

この章で学ぶことは

web

コレですね。

べき等性ってなんやねん?と最初読んだ時思いましたが、
ある操作を何回行っても結果が同じことを意味する数学用語だそうで、
Wikipediaでは「エレベータを呼ぶボタンも冪等である(エレベータが到着するまで何度押しても効果は変わらない)が、人によってはそうでないかのように(エレベータが早く到着することを期待して)何度も押してしまう。」などの例が書いておりクスッとしました。

うちや他の班で

DELETEがべき等性???
1回目と2回目で返ってくるステータスコードが違うのに???

ということが話題になりましたが、

@tkawaさんAnswerでは

だそうです。

他に@tkawaさんのお題

グループで考えてみよう

べき等性と安全性 (p.101)

「安全」と「べき等」の概念は理解できましたか? とくに「べき等」を噛み砕いて言うと? 本文の例のほかに「べき等」な例を挙げてみましょう。

よく使うRubyのメソッド(他の言語でもOK)がべき等かどうか考えてみましょう。

べき等だと何がメリットなのでしょうか?

うちの班で「FBのいいね!ボタンはべき等性では??」

という話が出たのですが、多分「いいね!」はどんなに押してもカウントが増えず1「いいね!」にしかならないから浮かんだと思うのですが、
実際には「いいね!」をもう一度押すと「いいね!を取り消す」に変わるのでした。

やっぱりよく使うサービスには皆興味があって

「いいね!」を押下するたびに×-1を実行しているのではないか。

など話になりましたが、

こうでした。

ワークショップの時間でも

スターのところが注目されています。

さて、そう!ワークショップです。
今回は実践もやってみようと思い、GithubのGistを課題に選んで、どこがRESTfulかそうじゃないか、を調べてみることにしました。

注目するポイント

どういう画面があるでしょうか? それによってリソースを見つけることができます。
画面=URL(をGETしたもの)=リソース
そのURLはどんな名前でどういう形をしているでしょうか?
それぞれの画面にはどんなリンクやフォームがあるでしょうか? フォームのメソッドは?
ここはRESTfulだ、ここはRESTfulじゃない、と思うところはどこでしょうか? どうすればよりRESTfulにできるでしょうか?

個人的にGithubはスーパーDeveloper集団が作っている!というイメージですが、
さてどんな感じでしょうか?

今回のワークショップで出た意見

これはわかりやすい。
名詞のgist.github.com/discoveryにしたら良いかもですね。

logout専用画面が出てきます。
これはうちの班でも話題になりました。

えっ
なんと

賞金もらえるのでは open_mouth

Githubのバグを見つけてBug Reportを出した話

と思って調べたけど、決定的なものは見つかりませんでした。

しかしこんなサービス見つけました smile

OSSのバグを直して賞金がゲットできるBountysource

こういうサービスでOSSに貢献するの良いですね。
私もいつかOSSにPR投げてみたい pray


それから、GistのURLの話。

例えば私の昔書いた自己紹介Gistは

「gist.github.com/shokola/7867071」というURLです。

最後の7867071はユニークで、例え「shokola」の部分を削除しても正しいGistにリダイレクトされる。
何故かと言うと、こんな記事もあるように

[新機能] Gist の URL にユーザー名が入るようになりました

「以前は、URLにユーザ名は入ってなかったという(仕様変更した)歴史的経緯があるからでは。」という話など聞けました。
(ちなみにgithubユーザ名変えても以前のが出てくるので、古いユーザ名を記憶してくれているようです)


tigerやってみて tiger

・・・えーとですね sweat_smile
個人的にはワークショップやって始めて前半の読書会の内容が繋がって!
「えっもしかしてPUT、DLETEのときって常にべき等性か意識しないといけないの!?なんと!!!それは大変 astonished !!!」などと間抜けにも気が付きました(おそっ!!!!!)

なのでこんな鈍い座学が座学で終わってしまうタイプには実践本当に大事です‥ sweat_smile

そんな感じで今回も楽しくて勉強になりました。

個人的な感想かもしれませんが(もしかして独りよがりだったりして)、
RESTful勉強会はいつも楽しい。
今日の回はいまいちだったわ‥ weary なんてことがありません。
それは講師や参加された皆様が熱心でフレンドリーであるおかげです。

次回も実践やりましょう!

課題何にしよう muscle !!