大学の研究室における	
  
 Ruby活用事例紹介	



        2012年7月7日	
  
	
  木村有祐 吉井英人 福田大志	
  
自己紹介	
M1	
  木村 有祐 (きむら ゆうすけ)	
     Twi+erID	
  @stpsnp	
  
M1	
  吉井 英人 (よしい ひでと)	
      Twi+erID	
  @hide_yoshii	
  
M2	
  福田 大志 (ふくだ ひろし)	
      Twi+erID	
  @Fukuda_H	
  

  (1) 大学3年生までの授業でC言語を学習
        (A) 名簿管理プログラム
        (B) コンパイラ作成   etc...

  (2) 授業でオブジェクト指向言語(Java)を学習

  (3) 大学4年生からRubyとRuby on Railsを学習
        (A) TwitterBot
        (B) LastNote(グループウェア)
        (C) 研究用プロトタイプ                                       2
Rubyとの歩み	
           C言語を学習(2008/4~2011/3)	
2011/4	
   Ruby:TwitterBotの作成	

2011/6	
   Rails:LastNoteの開発に参加開始	


           研究室内での勉強会(蔵書管理など)	


           新人研修課題作成を担当
2012/4	
     Ruby:TwitterBotの作成
             Rails:商品管理プログラムの作成	

2012/7     Ruby会議での発表	
(現在)                                  3
Twi+erBot	
(1) 研究室に配属された4年生の新人研修の1つ

(2) Rubyにはじめて触れる

(3) オブジェクト指向がよく
    わからない状態でスタート

(4) Cと比較して,記述が楽
      (A) 厳密な型宣言がない
      (B) 直感的に記述できる
          etc...
(5) 思いのほか早くBotが動いた
      ・・・プログラミングが楽しい!

                            4
研究室で開発しているもの	
研究グループメンバ(先生 + 学生6人)
(1) LastNote
  グループウェア研究のためのテストベッド
  文書管理,名簿管理 etc..
(2) デスクトップブックマーク(DTB)
  仕事の途中状態を保存し復元再開するツール
   (A)デスクトップ状態をブックマークのように記録
   (B) ブラウザで見ていたページも再現
(3) 周期性と関連性を扱うカレンダ
  ある仕事における作業の周期と関連を表現するカレンダ
   (A) タスク登録方式(過去のタスクを参照,複製)
   (B) タスクの予報機能
   (C) 関連タスクの一括登録機能
                               5
LastNote(実際の画面)	




                    6
LastNoteの開発	
  (1) 約2週間に1回の開発打合せ	

        新機能やバグ修正について議論

  (2) Redmineを使ったチケット管理

  (3) Gitを使ったバージョン管理

  (4) 約2カ月に1度のリリース

V3.1 リリース	
               V3.2 リリース	

・・・	
        2週間	
 2週間	
 2週間	
 2週間	

                 2か月	
                   7
Redmineを使った開発	




                  8
新人研修課題(2012年度)	
TwitterBot(Ruby) + 商品管理プログラム(Rails)



「RailsによるアジャイルWebアプリケーション開発」を使用

           本書のチュートリアルに従い
           開発を進める

           (1) カタログ機能
           (2) カート機能
                 +
           (3) amazonから書籍情報の取得機能

                                      9
新人研修課題の感想	
  
      4年生の感想(分からない点)
 (1) ルーティング
  (作ったページが表示できない)



                                  ?	
 (2) ActiveRecordが定義するメソッド
  (自分では定義していない)

 (3) format.html,format.jsonの挙動
  (どんなことをやっているの?)                 ;ω;	
 (4) scaffold
  (どこまで作ってくれるの?)

 (5) MVC
  (どこに何を書けばいいの?)
                                          10
ほんとは簡単じゃない?	
  Rails	
                               コードを書かなくても,
「rails new」と「scaffold」
                               とりあえず動くものが作れる!
簡単!!  ここまでは…

これ以降,覚えることがいっぱい!!	

 MVC,CoC,OO,DB, ORM,HTML,CoffeeScript,SCSS,
 gem, Bundler, rvm,cucumber,git etc…	

 こんなにやるのは大変!!!	

 参考:Ruby on Railsが簡単というのは嘘 30 to 30
 http://toyoshi.hatenablog.com/entry/2012/03/09/143753	
                                                           11
Railsバージョンアップは大変	
LastNote

Rails1 	
   Rails2	
   Rails3(現在3.0.10) 	
   Rails3.2



   案外楽!	
         結構大変!	
               現在移行中	


 Railsのバージョンを追いかけるのは大変	
 (1) Ruby1.9 文字コード
 (2) 昔動いていたプラグインが動かない(全文検索)
 (3) 対応が終わったら,もう次が…	

 Rails4が夏にリリース?	
                                                        12
先輩からの教え!	
<乃村研べきべからず集>

 第一条 モデルの作成は慎重にするべし!

 第二条 テストしやすいコードを心がけるべし!

 第三条 国際化は多国語未対応でも使うべし!

 第四条 ビジネスロジックはモデルに書くべし!

 第五条 安易な継承をするべからず!

                          13
まとめ	
(1) とっつきやすいRuby! でも,難しいRails!!

  Ruby            Rails

         大きな壁	

(2) 結構まじめに開発してます
  2週間に1回の打合せ
  勉強会なども!


(3) 困ってます
  Railsのバージョンアップは大変!!

                                 14

nomlab_okayamaruby_slide

  • 1.
    大学の研究室における   Ruby活用事例紹介 2012年7月7日    木村有祐 吉井英人 福田大志  
  • 2.
    自己紹介 M1  木村 有祐(きむら ゆうすけ)   Twi+erID  @stpsnp   M1  吉井 英人 (よしい ひでと)   Twi+erID  @hide_yoshii   M2  福田 大志 (ふくだ ひろし)   Twi+erID  @Fukuda_H   (1) 大学3年生までの授業でC言語を学習 (A) 名簿管理プログラム (B) コンパイラ作成 etc... (2) 授業でオブジェクト指向言語(Java)を学習 (3) 大学4年生からRubyとRuby on Railsを学習 (A) TwitterBot (B) LastNote(グループウェア) (C) 研究用プロトタイプ 2
  • 3.
    Rubyとの歩み C言語を学習(2008/4~2011/3) 2011/4 Ruby:TwitterBotの作成 2011/6 Rails:LastNoteの開発に参加開始 研究室内での勉強会(蔵書管理など) 新人研修課題作成を担当 2012/4   Ruby:TwitterBotの作成   Rails:商品管理プログラムの作成 2012/7 Ruby会議での発表 (現在) 3
  • 4.
    Twi+erBot (1) 研究室に配属された4年生の新人研修の1つ (2) Rubyにはじめて触れる (3)オブジェクト指向がよく わからない状態でスタート (4) Cと比較して,記述が楽 (A) 厳密な型宣言がない (B) 直感的に記述できる etc... (5) 思いのほか早くBotが動いた ・・・プログラミングが楽しい! 4
  • 5.
    研究室で開発しているもの 研究グループメンバ(先生 + 学生6人) (1)LastNote   グループウェア研究のためのテストベッド   文書管理,名簿管理 etc.. (2) デスクトップブックマーク(DTB)   仕事の途中状態を保存し復元再開するツール    (A)デスクトップ状態をブックマークのように記録    (B) ブラウザで見ていたページも再現 (3) 周期性と関連性を扱うカレンダ   ある仕事における作業の周期と関連を表現するカレンダ    (A) タスク登録方式(過去のタスクを参照,複製)    (B) タスクの予報機能    (C) 関連タスクの一括登録機能 5
  • 6.
  • 7.
    LastNoteの開発 (1)約2週間に1回の開発打合せ 新機能やバグ修正について議論 (2) Redmineを使ったチケット管理 (3) Gitを使ったバージョン管理 (4) 約2カ月に1度のリリース V3.1 リリース V3.2 リリース ・・・ 2週間 2週間 2週間 2週間 2か月 7
  • 8.
  • 9.
    新人研修課題(2012年度) TwitterBot(Ruby) + 商品管理プログラム(Rails) 「RailsによるアジャイルWebアプリケーション開発」を使用 本書のチュートリアルに従い 開発を進める (1) カタログ機能 (2) カート機能 + (3) amazonから書籍情報の取得機能 9
  • 10.
    新人研修課題の感想   4年生の感想(分からない点)  (1) ルーティング   (作ったページが表示できない) ?  (2) ActiveRecordが定義するメソッド   (自分では定義していない)  (3) format.html,format.jsonの挙動   (どんなことをやっているの?) ;ω;  (4) scaffold   (どこまで作ってくれるの?)  (5) MVC   (どこに何を書けばいいの?) 10
  • 11.
    ほんとは簡単じゃない?  Rails コードを書かなくても, 「rails new」と「scaffold」 とりあえず動くものが作れる! 簡単!!  ここまでは… これ以降,覚えることがいっぱい!! MVC,CoC,OO,DB, ORM,HTML,CoffeeScript,SCSS, gem, Bundler, rvm,cucumber,git etc… こんなにやるのは大変!!! 参考:Ruby on Railsが簡単というのは嘘 30 to 30 http://toyoshi.hatenablog.com/entry/2012/03/09/143753 11
  • 12.
    Railsバージョンアップは大変 LastNote Rails1  Rails2 Rails3(現在3.0.10) Rails3.2 案外楽! 結構大変! 現在移行中 Railsのバージョンを追いかけるのは大変 (1) Ruby1.9 文字コード (2) 昔動いていたプラグインが動かない(全文検索) (3) 対応が終わったら,もう次が… Rails4が夏にリリース? 12
  • 13.
    先輩からの教え! <乃村研べきべからず集> 第一条 モデルの作成は慎重にするべし! 第二条 テストしやすいコードを心がけるべし! 第三条 国際化は多国語未対応でも使うべし! 第四条 ビジネスロジックはモデルに書くべし! 第五条 安易な継承をするべからず! 13
  • 14.
    まとめ (1) とっつきやすいRuby! でも,難しいRails!! Ruby Rails 大きな壁 (2) 結構まじめに開発してます   2週間に1回の打合せ   勉強会なども! (3) 困ってます   Railsのバージョンアップは大変!! 14