タケユー・ウェブ日報

Ruby on Rails や Flutter といったWeb・モバイルアプリ技術を武器にお客様のビジネス立ち上げを支援する、タケユー・ウェブ株式会社の技術ブログです。

RubyKaigi 2014 個人的メモ(1日目)

印象深かった点などを書き出して、忘れないようにしておく。

[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

http://www.egison.org/

データ分解と分岐に主眼を置いた?パターンマッチング指向の新しいプログラミング言語

ポーカーや麻雀の役など複雑なパターンマッチングを読みやすい構文でに書ける。(というが、僕の頭にはパターンマッチング構文そのものが難解に思えたが)

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の変更でクライアントが壊れるのを防ぐ

  • 機械的に処理できること
  • クライアントとAPI疎結合にする

Model.to_json

  • 内部の仕様が露出する
  • 密結合で壊れやすい

これからすることをクライアントに選ばせる

  • できることを提示する

Hypermedia

たとえばHTML

  1. ワークフローを含む(リンク、フォーム)
  2. Microdata ・・・ クローラーに意味を伝える

実はHTMLもAPIとして使える・・・が冗長だったり、パースが面倒だったりででできればJSONでやりたい

そこで Hypermicrodata gem

https://github.com/tkawa/hypermicrodata

HTML -> JSON 変換を行う

利用手順

  1. リソース設計
  2. 状態遷移図
  3. データの種類を決定 https://schema.org/
  4. 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

  • 技術的負債をコントロールする

共通化

やったこと

  1. 重複したコードの切り出し
  2. アナウンス、呼びかけ
  3. Gem作り文化
  4. 今週のgem
  5. private gem server公開支援ツール

アップデートの滞っているもの

https://gemnasium.com/

プライベートなGemもありGemfileの公開はできないので、それっぽいものを自作。

古いGemを使い続けているプロジェクトをランキングする(ワースト)ランキングが面白い。

2日目につづく。