Presentation is loading. Please wait.

Presentation is loading. Please wait.

吉田和弘 株式会社ミッタシステム http://www.mitta-sys.jp/ Rubyのすすめ 吉田和弘 株式会社ミッタシステム http://www.mitta-sys.jp/

Similar presentations


Presentation on theme: "吉田和弘 株式会社ミッタシステム http://www.mitta-sys.jp/ Rubyのすすめ 吉田和弘 株式会社ミッタシステム http://www.mitta-sys.jp/"— Presentation transcript:

1 吉田和弘 株式会社ミッタシステム http://www.mitta-sys.jp/
Rubyのすすめ 吉田和弘 株式会社ミッタシステム

2 Rubyist Magazineで紹介 「RubyOnRailsを使ってみる」連載中

3 ライド・オン・Rails ソフトバンク(SBCr)から発売中 with babie さん 400ページ

4 WEB+DB PRESS WEB+DB PRESS 連載中 with 高橋さん

5 Railsとの出会い きっかけ Rubyで書き直す 昔Perlで書いたCGI 仕様拡張 どうしよう…
cgi.rb, Mysql/Ruby, eRuby 大きくなると保守たいへん

6 Ruby on Rails いきなりしっくりきた テンプレートはeRubyで記述 ActiveRecord SQLで書いてもいい

7 Ruby on Rails 開発事例

8 Rails 開発事例 託児施設 入退室管理・請求書発行 携帯メール連絡網 etc.

9 託児施設 入退室管理・請求書発行

10 託児施設(1) 入退室管理 ActiveRecord Apollo (Delphi VCL) GUIのテストをある程度自動化できた

11 託児施設(2) 月次請求書発行 Excel Win32OLE Apollo Excelのテストを自動化できた

12 託児施設(3) リモートメンテナンス Capistrano mysql … (backup) svn up rake db:migrate
デプロイ(配置)ツール

13 毎朝svn up タッチパネル DB Excel PC 松山 svn repos 高松

14 携帯メール連絡網

15

16 Rails入門

17 Railsの構成 ActionController ActionView: eRuby ActiveRecord (Model): DSL
ActiveResource (RESTful) capistrano: デプロイツール

18 Model *..* User 登録関係 購読関係 管理権限 出席番号 既読・出欠確認 *..* Room Topic 配信関係 *..*

19 Model *..1 User 1..* Membership Subscription *..1 *..1 Room Topic
Publication 1..* *..1

20 ドメイン特化言語(DSL) class Topic < ActiveRecord::Base
has_many :subscriptions has_many :users, :through => :subscriptions class Subscription < ActiveRecord::Base belongs_to :topic

21 アジャイルな仕組み テスト駆動開発(TDD) migration plugin 全てRubyで記述できる テスト環境DB
Fixtures: テストデータ migration DBスキーマをバージョン管理 plugin 配布:subversionで公開するだけ 全てRubyで記述できる

22 サーバ構成 Webrick, Lighttpd , Apache, mongrel
Pound, mod_proxy, FastCGI, mongrel_cluster DB: MySQL, PostgreSQL, Firebird, Oracle, …

23 開発風景 script/generate model Blog vi db/migrate/… rake db:migrate
script/generate controller … vi test/… rake test vi app/…

24 Ruby入門

25 最近のRuby Ruby on Rails YARV -> RubyVM (Ruby 1.9) Ruby 1.8.6-p36
JRuby, IronRuby, etc. Ruby会議2007

26 Rubyの特徴 スクリプト言語 オブジェクト指向言語 動的言語

27 スクリプト言語 インタプリタ 実行時にも構文解析できる 文法要素の多くが値を持つ トップレベルがある require eval 制御構文も式
最初から式を書ける

28 オブジェクト指向言語 統一データモデル 全ての値はObject Mix-in 特異メソッド/クラス 1+1 1.+(1)
一本筋の通った。統一感のある。

29 動的言語 リフレクション 動的なメソッド呼び出し オープンクラス 全ては実行文 クラス情報を実行時に操作できる send
method_missing オープンクラス いつでも/どこでも 再定義できる 全ては実行文

30 クラスとインスタンス class C def hello(name) "Hello from #{name}" end
obj = C.new puts obj.hello("kaz") # Hello from kaz

31 インスタンス変数 class C def initialize(name) @name = name end def hello
"Hello from obj = C.new("kaz") puts obj.hello # Hello from kaz

32 モジュールとmix-in module M def hello "Hello from #{@name}" end class C
def initialize(name) @name = name include M

33 継承 class B < C def bye end obj = B.new("kaz") obj.hello obj.bye

34 特異メソッド obj = C.new("kaz") def obj.bye end obj.bye

35 まとめ オブジェクトモデル モジュールのmix-inによる柔軟な継承 オブジェクト固有のメソッド(特異メソッド)

36 Thank you


Download ppt "吉田和弘 株式会社ミッタシステム http://www.mitta-sys.jp/ Rubyのすすめ 吉田和弘 株式会社ミッタシステム http://www.mitta-sys.jp/"

Similar presentations


Ads by Google