ruby 入門

28
楽楽楽楽楽楽楽楽楽楽 #9 Ruby 楽楽 2009/11/06 楽楽楽楽楽

Upload: rebekkah-clay

Post on 30-Dec-2015

30 views

Category:

Documents


0 download

DESCRIPTION

Ruby 入門. 2009/11/06  けーちゃん. はじめに. このセッションについて Ruby ってどんな言語? 言語仕様の紹介 使い方の雰囲気 自己紹介 けーちゃん COBOLer →オープン系へ. Ruby とは. まつもとゆきひろ (Matz) さんが開発 オブジェクト指向スクリプト言語 7 月の誕生石から命名 Ruby on Rails で爆発的に普及. Ruby の特徴. 純粋なオブジェクト指向言語 動的型付け 変数名でわかるスコープ 珍しいオブジェクト指向機能 ( Mixin 、特異メソッド) 演算子オーバーロード 例外処理 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Ruby 入門

楽しいアプリ制作の会 #9

Ruby 入門

2009/11/06 けーちゃん

Page 2: Ruby 入門

楽しいアプリ制作の会 #9

はじめに

• このセッションについて• Ruby ってどんな言語?• 言語仕様の紹介• 使い方の雰囲気

• 自己紹介• けーちゃん• COBOLer→ オープン系へ

Page 3: Ruby 入門

楽しいアプリ制作の会 #9

Ruby とは

• まつもとゆきひろ (Matz) さんが開発

• オブジェクト指向スクリプト言語

• 7 月の誕生石から命名

• Ruby on Rails で爆発的に普及

Page 4: Ruby 入門

楽しいアプリ制作の会 #9

Ruby の特徴

• 純粋なオブジェクト指向言語• 動的型付け• 変数名でわかるスコープ• 珍しいオブジェクト指向機能( Mixin 、特異メソッ

ド)

• 演算子オーバーロード• 例外処理• イテレータ• マルチスレッド• ガーベージコレクタ

Page 5: Ruby 入門

楽しいアプリ制作の会 #9

Ruby の使いどころ

• Web アプリケーション開発言語

• ちょっとしたデータ加工やシステム管理

• 教育用言語

• ゲームなど

Page 6: Ruby 入門

楽しいアプリ制作の会 #9

何はともあれ、まずは見て頂きましょう!

Page 7: Ruby 入門

楽しいアプリ制作の会 #9

Ruby のインストール (1)

• 本家http://www.ruby-lang.org/ja/downloads/

• ActiveScriptRuby http://www.artonx.org/data/asr/

• One-Click Ruby Installer for Windows http://rubyinstaller.org/

<Windows 版 >

Page 8: Ruby 入門

楽しいアプリ制作の会 #9

Ruby のインストール (2)

• ActiveScriptRuby

Page 9: Ruby 入門

楽しいアプリ制作の会 #9

さっそく試してみる

• 最初はやっぱりコマンドプロンプト

• 対話型で試せる irb

• GUI 開発環境 RDE(Ruby Development Environment) http://homepage2.nifty.com/sakazuki/rde/index.html

Page 10: Ruby 入門

楽しいアプリ制作の会 #9

RDE のインストール (1)

• まずはダウンロード

RDE 本体RDE 本体

リファレンス(ヘルプ版)

リファレンス(ヘルプ版)

Page 11: Ruby 入門

楽しいアプリ制作の会 #9

RDE のインストール (2)

• RDE の初期設定

Ruby 本体とリファレンスの位置を指定

Ruby 本体とリファレンスの位置を指定

Page 12: Ruby 入門

楽しいアプリ制作の会 #9

RDE のインストール (3)

• これで準備完了です

日本語メニュー日本語メニュー

リファレンスも日本語で!リファレンスも日本語で!

Page 13: Ruby 入門

楽しいアプリ制作の会 #9

雰囲気をつかんで頂いたところでちょっと硬いお話に戻ります!

Page 14: Ruby 入門

楽しいアプリ制作の会 #9

文法 (1/5) 基本の基本

• 大文字と小文字は区別します

• # から行末までがコメント

• 式は改行、またはセミコロンで区別

• リテラルの書き方 数値、文字列、配列、ハッシュ、正規表現

Page 15: Ruby 入門

楽しいアプリ制作の会 #9

文法 (2/5) 変数・定数

• 変数に型はありません

• 変数名で決まるスコープ

• 擬似変数  self/true/false/nil

Page 16: Ruby 入門

楽しいアプリ制作の会 #9

文法 (3/5) 演算子

• 演算子

• 自己代入、 ++ は使えません

• 演算子オーバーライド

Page 17: Ruby 入門

楽しいアプリ制作の会 #9

文法 (4/5) 条件分岐と繰り返し

• 条件分岐は “ if, elsif, else, end” と case

• 繰り返しは while, for, そしてイテレータ

• 例外処理は begin, rescue, ensure, end

Page 18: Ruby 入門

楽しいアプリ制作の会 #9

文法 (5/5) オブジェクト指向

• クラス定義と継承

• メソッド定義とブロック付き呼び出し

• モジュール定義と Mix-in

Page 19: Ruby 入門

楽しいアプリ制作の会 #9

ちょっと退屈でしたかね ^^;ではいよいよ実践です!

Page 20: Ruby 入門

楽しいアプリ制作の会 #9

実演その 1 ~コンソールアプリ

格言CSV格言CSV

仕様:

タメになる格言がたくさん入った CSV から、ランダムで 1 つ選んで表示する。

1, 格言その 1, 山田太郎2, 格言その 2, 鈴木卓三   :   :

Ruby

こけたら、立ちなはれ。(松下 幸之助)

※ ランダムに 1 件を表示

Page 21: Ruby 入門

楽しいアプリ制作の会 #9

実演その 2 ~ DB を使う (1)

DBI : Ruby からデータベースを利用する方法の 1つ

Ruby

DBI

SQLite3SQLite3

その他のDB

その他のDB

SQLite3 用のライブラリSQLite3 用のライブラリ

他の DB 用のライブラリ他の DB 用のライブラリ

SQLite3 用のドライバSQLite3 用のドライバ

他の DB 用のドライバ他の DB 用のドライバ

DB の種類に依存しない、抽象化されたアクセス

Page 22: Ruby 入門

楽しいアプリ制作の会 #9

実演その 2 ~ DB を使う (2)

仕様:

グルメデータベースから、指定されたジャンルのお店をランダムで 1 つ選んで表示する。

Ruby

<イタリアン> ローザネーラ

※ ランダムに  1 件を表示

ジャンル 店舗名 ・・・和食 寿司政 ・・・洋食 いくた ・・・

グルメDB

ジャンル指定

Page 23: Ruby 入門

楽しいアプリ制作の会 #9

実演その 3 ~ GUI も出来ます

Tk (ツールキット): GUI ライブラリ

Ruby

TclスクリプトTcl

スクリプトTk(GUI)

Ruby/TKRuby/TK

Perl

Python

Perl/TKPerl/TK

TKinterTKinter

Page 24: Ruby 入門

楽しいアプリ制作の会 #9

実演その 4 ~やっぱ Web(1)

クライアント

WEBrick

WEBページ

FileHandler

FileHandler

HTTPサーバ

• WEBrick で簡単に HTTPサーバ

Page 25: Ruby 入門

楽しいアプリ制作の会 #9

実演その 4 ~やっぱ Web(2)

• WEBrick でプログラムを実行• ERB (eRuby)

クライアント

WEBrick

ProcHandler

ProcHandler

HTTPサーバ

ERBHandler

ERBHandler

Ruby

ERB

Page 26: Ruby 入門

楽しいアプリ制作の会 #9

関連技術、情報源

• XML を読むなら REXML• Apache には mod_ruby• ライブラリ管理: RubyGems• 他の実装: YARV,JRuby, IronRuby, ・・・

• リファレンスマニュアルhttp://www.ruby-lang.org/ja/man/html/index.html

• るびまhttp://jp.rubyist.net/magazine/

Page 27: Ruby 入門

楽しいアプリ制作の会 #9

最後に・・・

• Ruby技術者認定試験制度 http://www.ruby-assn.org/ja/certification/examination.htm

• そして、お話は流行りの RoR へ!さわださん、よろしくです ^^

Page 28: Ruby 入門

ご静聴、ありがとうございました。