2008-06-22 日本Ruby会議2008 2nd day メインセッションAM1 rubykaigi2008 後から書き直すのが面倒なので、講演を聞きながら取ったメモを直接載せておきます。時間帯別にエントリを分けました。 メインセッション 2008/6/22(日) 9:00-12:00 拡張ライブラリの書き方講座 (artonさん) C言語によるRuby拡張ライブラリの書き方。速すぎてあまりついていけなかった。 Rubyのライブラリを書くには、Rubyのソースコードを理解できる必要がある。 一次情報: ruby.h, intern.h, rubyio.h, rubysig.h, version.h, st.h 要求される技術 ポインタ、ソースコードリーディング、セキュアコーディング 作ったライブラリの配布 setup.rb (青木さん作)、gem, binary (MSI, apt, dmg) デモ: extrails によるgemの作成 何を拡張ライブラリで書くか? ×テキスト処理、ネットワーク処理、ファイル操作 ○アドレス操作、割り込み操作、ネイティブAPI呼び出し デモ: GCを可視化 さらに仕事に使うRuby (ごとけんさん) 業務への活用事例 開発案件に入る割り込みをどう処理するか? 顧客との連絡ツール:Hiki 顧客と同じものを見る、カスタマイズしたアップローダー、ITSプラグイン 案件管理ツール (内部用): Redmie all-in-one: issue tracker, repository browser, wik, カレンダー 安定した開発、分かりやすいUI、Webベースの管理、(Railsのサンプルとして) 問題点: 日本語ファイル名がUTF-8である必要がある 伝票管理: BTS影舞 Kagemai 簡単で十分な機能、単純なワークフローに適合 イントラアプリ (RSS非対応) 向けRSSフィーダの自作 Mechanize: 自動化されたWebのエージェント Hpricot: スクレイピング Fastladder: Railsベースのフィードリーダ erbを偲んで(関将俊さん) 代表作は <%=h %> MVC原理主義者 vs. Webアプリ業界に流入した普通の人 原理主義者にとってはSmalltalkのアレ 普通の人: view=テンプレート、デザイナとプログラマの分業 → 本当? GUIにおけるview 最初は、コードの中に全部書く 座標とか色とかかくのは面倒、異質なコードが入り込む 部品の記述をコードを外へ → テンプレートと呼ぶ 2つの世界: コードとテンプレート、独立しているが単体では存在できない viewとは テンプレートではなく、View Object 実行環境+テンプレート なぜ使う? → その方が楽だから/分業のためではない ERB way Rubyを文書に埋め込む Rubyアプリの中に埋め込む