印象深かった点などを書き出して、忘れないようにしておく。
- 2日目
- 3日目
[EN] Controller Testing: You're Doing It Wrong
そもそもロジックのテストをコントローラのテストで行う状態がおかしい
http://rubykaigi.org/2014/presentation/S-JonathanMukai-Heidt
コントローラは宣言的に書く
- コントローラのテストですべきこと
- 認証回り
- リソースの存在
- Responder responseの形式
宣言的テスト
shared_examples_for
subject { get :action }
it { ... }
等を使って簡潔に書く。
[JA] Non-Linear Pattern Matching against Unfree Data Types in Ruby (Egison Pattern Matching in Ruby)
http://rubykaigi.org/2014/presentation/S-SatoshiEgi
実際にポーカーの役を判定するパターンマッチングなど面白い内容だった。パフォーマンスについて疑問視する声もあったが、それについてはややフワッとした回答の印象。
Egison
データ分解と分岐に主眼を置いた?パターンマッチング指向の新しいプログラミング言語。
ポーカーや麻雀の役など複雑なパターンマッチングを読みやすい構文でに書ける。(というが、僕の頭にはパターンマッチング構文そのものが難解に思えたが)
egision gem
https://github.com/egison/egison-ruby
RubyでEgisonのパターンマッチングを行えるgem。
[JA] Hypermedia: the Missing Element to Building Adaptable Web APIs in Rails
http://rubykaigi.org/2014/presentation/S-ToruKawamura
APIの変更でクライアントが壊れるのを防ぐ
Model.to_json
- 内部の仕様が露出する
- 密結合で壊れやすい
これからすることをクライアントに選ばせる
- できることを提示する
Hypermedia
たとえばHTML
実はHTMLもAPIとして使える・・・が冗長だったり、パースが面倒だったりででできればJSONでやりたい
そこで Hypermicrodata gem
https://github.com/tkawa/hypermicrodata
HTML -> JSON 変換を行う
利用手順
- リソース設計
- 状態遷移図
- データの種類を決定 https://schema.org/
- Microdataを使ってHTMLテンプレートを書く
WebアプリとWebAPIを分けて考えない
この考え方のメリット
- DRY
- リンク・フォームを忘れない
- 制約
[JA] "Gem of this Week" - building culture and making gem
http://rubykaigi.org/2014/presentation/S-TakumiMiura
ドリコム社内でgemを作る文化を作った話。
Keep Agility
- 技術的負債をコントロールする
共通化
- ビジネスロジックも例外ではない
- ソシャゲにありがちな処理のgemを作る
- プライベートなgem serverを立てる https://github.com/geminabox/geminabox
やったこと
- 重複したコードの切り出し
- アナウンス、呼びかけ
- Gem作り文化
- 今週のgem
- private gem server公開支援ツール
アップデートの滞っているもの
プライベートなGemもありGemfileの公開はできないので、それっぽいものを自作。
古いGemを使い続けているプロジェクトをランキングする(ワースト)ランキングが面白い。
2日目につづく。