gihyo.jp » NEWS & REPORT » レポート » RubyKaigi2008 スペシャル★レポート » RubyKaigi2008 1st day Photoレポート[随時更新]

RubyKaigi2008 スペシャル★レポート

RubyKaigi2008 1st day Photoレポート[随時更新]

Ruby《を》教えてるんじゃない、Ruby《で》教えてるんだってば

東大でプログラミングやコンピュータサイエンスを教えている増原さんによるセッションです。

アメリカの大学ではコンピュータサイエンスを選択する学生が2000年以降から減少傾向にあることをグラフで示し,これからはハッカーではない人に目を向けるべきと主張しました。

講義のプログラミング言語にRubyを選んだ理由として,次の項目を挙げました。

  • インストールが簡単
  • 日本語情報
  • 文法が簡単

ほかにもOcamlやScheme,JavaScriptなどの候補があったようですが,Lispの世界や関数プログラミングの世界で著名な人がRubyを選んだことにより,Rubyに決まりました。ただ,講義では,Rubyのクラスやブロック,イテレータなどのいわゆるRubyらしい機能は使っておらず,トップレベルでメソッドを定義し,forループを使うなどのシンプルな使い方をしているようです。

次に,「Rubyを採用してよかった点,悪い点」を挙げました。良い点には,次の項目をを挙げました。

  • 多倍長整数の変換ができる
  • リッチなライブラリがある
  • 簡単に扱える

また,計算量の比較を行うときに,Ruby自体の遅さがパフォーマンスの差を明確にしてくれる点で良かったと話し,会場の笑いを誘いました。

反対にRubyを使っててハマッた点として,「インデントしないことでend忘れが見つかりづらかった」「ローカルのライブラリをロードしたつもりがデフォルトライブラリだった」「二重引用符やインデントスペースが全角だった」など,初心者が陥りやすいポイントを挙げていきました。

画像
画像

成功するRuby教育のプラクティス(吉田裕美さん)

2000年に独立し,2005年から教育事業を開始した吉田裕美さんによるセッションです。

吉田さんは最初に,社内にRuby開発者を増やすには教育会社やコミュニティに頼る選択肢もあるが,「社内で教えること」が一番であると結論づけました。理由としては,社内の特徴を活かすことができ,勉強を行う文化が根付くというメリットにあるようです。また,教える人自身にも「講師役が実は一番勉強になる」などのメリットが存在します。

次に,実習に関するベストプラクティスについて紹介しました。実習をペアプログラミングで行うと考え込む時間が少なくなり実習時間が長くならないほか,一人で黙々と行うのに比べて盛り上がりやすいというメリットがあるそうです。また,TDD(テスト駆動開発)ベースの実習を勧めており,その際テストコードをあらかじめ用意して提供することがポイントとのことです。テストコードを用意することによってテスト単位で取り組めるようになるため,一つ一つの粒度が小さくなり,大きなソフト開発を体験させやすくなります。実際にTDDによる実習を受けた受講者から「ゲーム感覚で楽しい」という感想をもらったそうです。また,ほかの言語で書かれた良質の教材をうまく利用することをTipsとして挙げました。吉田さんは,書籍『なぜ,あなたはJavaでオブジェクト指向開発ができないのか』(技術評論社)のサンプルコードをRubyに置き換えて利用しているそうです。ちなみにサンプルコードは次のページからダウンロードできます。

最後にまとめとして,「教育も開発と同じようにチャレンジに溢れている」と,教育に対する熱い情熱を会場へ伝えていました。

画像
画像

RSpecによるRailsアプリケーションのBDD事例報告(Yugui(園田裕貴)さん)

書籍『初めてのRuby』(オライリー・ジャパン)の著者Yuguiさんが,過去に経験したRailsによる開発プロジェクトについて語りました。

Yuguiさんが入ったプロジェクトは,毎日バグが出続け,テストコードはおろかバージョン管理システムもない状態でした。すぐにSubversionとTracを導入しビルド,デプロイの自動化に取り組み,Seleniumによるテストをチーム内に浸透させました。ただ,それでもプロジェクトの状況は改善されなかったため,1ヵ月後に差し迫ったリリースに向けてCOMとASP.NETで構築されたシステムのリプレースを敢行することになりました。

リプレースでは,フレームワークにRailsを,テストと仕様記述にRspecを採用しました。これらを採用した理由として,YuguiさんがRubyやRailsのソースコードを読んでいて「何か問題があった場合はソースを調べて解決できる」という自信があったことにあります。

フェーズ1となる1ヵ月間でSeleniumの資産を活用しながらたった2人でシステムを作り上げました。そしてフェーズ2でメンバーを4人に増やし,カバレッジを上げることに専念した結果,Rspecのコードが全体の7割を占めるようになりました。そしてフェーズ3ではペアプログラミングやポストイットなど多くの方法を活用して,メンバー全員のRailsやRspec,BDD(振舞駆動開発)の概念を浸透させることに成功しました。

会場から「上司から『テストコードなんか書いてないで実装コードを書いて機能を追加しろ』と言われたと思うが,どうやって説得したのか」との質問がありましたが,Yuguiさんは(説得するのではなく)「基本的にお前は何もわからんのだから,黙ってろ!」と答えたそうで,会場は爆笑と拍手で埋め尽くされました。

画像
画像

Ruby技術者認定試験 模擬問題解説

CTCテクノロジー株式会社松田慎弥さんから,Ruby技術者認定試験の説明,模擬問題とその解説が行われました。模擬問題をいくつか解いたり,出題傾向などが分析されました(編集部)。

画像

著者プロフィール

角田直行(かくだなおゆき)

普段はお仕事でPHPやJavaを使ってWeb開発をしています。一部でセレブエンジニアとか言われてますが,全然セレブじゃありません。

コメント

コメントの記入

エンジニアマインド

エンジニアマインドがWebマガジンとしてリニューアル!

エンジニアマインド No.2 2008年6月号

あなたの「開発スタイル」は,今の仕事に合っていますか? 業務に合った開発スタイル構築法を紹介。

ピックアップ

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

疾走するネット・ダイナミズム

昨今のネットやWebをめぐるホットな話題に切り込み,関係者への取材をもとに独自の考察を加える企画です。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

n階層システム設計の考慮点

本連載では特にMicrosoft .NET Frameworkを用いたn階層システム開発において,各階層の設計時に注意すべき点について解説します。

疾走するネット・ダイナミズム

昨今のネットやWebをめぐるホットな話題に切り込み,関係者への取材をもとに独自の考察を加える企画です。

script.aculo.usを読み解く

script.aculo.usは,Web 2.0なサイトを簡単に作れるJavaScriptライブラリです。この連載では,script.aculo.usを読み解いていきます。

アジャイル開発者の習慣-acts_as_agile

本連載では,アジャイル開発者としての私自身の実践経験と,私が出会ったアジャイル開発者との交流から気づいたことを,アジャイル開発者の「習慣」という切り口から紹介します。

Mercurialではじめる分散構成管理

Mercurialは分散リポジトリ形式の構成管理ツールです。具体的な利用シチュエーションを設定しながら,構成管理について解説していきます。

WEB DESIGN WORKSHOP「正しいウェブデザイン」

ウェブプロダクションで行われる,効果的なウェブサイトの制作方法をステップ毎にレクチャー。サイトの目的の定義から,目的を達成する企画,公開後のフォローアップまで細かくプロセスを紹介します。

Webゆえに考える テキスト編集のテクニカルコンセプト

Webにおけるコピーや説明文をはじめとしたテキストの編集は,常に高い品質が要求されます。Web制作に関わる以上覚えておきたいテキスト編集の注意事項を,一から説明していきます。

Ubuntu Weekly Recipe

Ubuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • エンジニアマインド
  • 組込みプレス

最近のコメント