東京Ruby会議01 その1(ライブラリ移植と機能拡張のためのパターンランゲージ)

色々興味深いセッションが多く、すべてをまとめたい気持ちはありますが
その中でも特に得るものが多かった2セッションについてまとめます。


1.それ Ruby でもやりたい - ライブラリ移植と機能拡張のためのパターンランゲージ
  SeaserプロジェクトのS2Daoという機能から、2WaySQLを移行した経験談
  Seaserプロジェクト
  t-wadaさんのブログ

2.Ruby 1.9.1リリースに向けて
  Ruby 1.9.1リリースに向けた1.9開発の現状報告および嘆願
  Yuguiさん

1.それ Ruby でもやりたい - ライブラリ移植と機能拡張のためのパターンランゲージ

 

 

 ポイント

 1.移植を試みる際は、多くを求めずまず動かすことに注力する
 2.TDDと黄金の回転
 3.移行したら、移行元に恩返し(フィードバック)する。

技術的な魅力

  まず、動的クエリ作成に向けて条件分岐でSQL文組み立てたり、SQLインジェクション攻撃から守るためににパラメータ化する技術は他にもある。

 

   

 この技術の魅力

 1.クエリ実行を確認した結果をそのままプログラムで使用できる <--ここがポイント
 2.JOIN、CASE文といったパラメータによって動的に変化する部分の可読性が高い。
 3.出力結果がSQLインジェクション対応を加味している

  ※t-wadaさんのスライドにて具体例がまとめられているので、ここでは割愛します
  こちら

所感

 技術的な魅力もさることながら、このセッションが一番すばらしいと感じたのは、実践的な「テストファースト」のアプローチが聞けた点。他の開発者と移行を試みると、あの時の「妥協」が後になって問題となるケースに遭遇します。実際、コミュニケーション不足にも起因して泣かす・泣かされる事も多い。このセッションは、移行の目的整理リスク回避、そして実践からフィードバックまでの一連が整理されていて、かなり実践的で有効な内容でした。


 正直、このセッションを聞けただけでもRubyKaigiに参加した価値があったと思います。


発表中に紹介のあった本

テストコードのない機能⇒Legacy-Code

Working Effectively With Legacy Code

Working Effectively With Legacy Code