SlideShare a Scribd company logo
みなとRuby会議01




               ごきげんRails
                   2012.6.2
                 大場寧子 @nay3




                                  株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                みなとRuby会議01
               開催おめでとうございます



                            株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               Yokohama
                              株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               Ruby on Rails


                              株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   Railsって?

               •
               RubyでWebアプリを作
               れるフレームワーク
               •
               簡単に作れる!
               •
               でも本当に簡単?
                                  株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               ちょっと難しい
                 かも...


                         株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               環境作りが
                 大変


                           株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               でも動きはじめたら
                勢いよく出来る


                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               ...慣れればね!


                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   今日の話題

               •
               RubyやRailsでごきげん
               になった話
               •
               Railsの魅力
               •
               Railsの勉強法
                               株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               自己紹介

                      株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               株式会社万葉
               Everyleaf Corp.
           女性メンバーいっぱいいますよ! :)


                                 株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               実装大好き

                       株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               実装やめないために
                会社作りました
                  (^^;

                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               RubyとRailsの
                 おかげです


                            株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                本が出ます
               (そのはずです)

                            株式会社万葉
2012年6月4日月曜日
みなとRuby会議01



                 たのしい開発
               スタートアップRuby




                            株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               Railsの魅力

                         株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               生産性
                     株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               とても高い!

                       株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               プログラマにとって
                気持ちイイ方向に
               「生産性が高い」

                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               「時間をかけるべき
                  こと」に
                時間をかけられる

                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               時間をかけるべきこと

          •    設計
          •    コミュニケーション・情報共有
          •    スペック/自動テストの充実

                              株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               時間を節約したいこと

               •定型的な作業
               •作業ミスとリカバリー
               •変更時の動作確認
               •コード内容の把握
                             株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   定型的な作業
           •   新しいモデルの作成
           •   新しいコントローラの作成
           •   データベーススキーマの更新
               → generator、マイグレーション


                                      株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   generator
               > rails g model User
               name:string email:string


               > rails g controller Users
               index show
                                        株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   generator

               •
               ひな形が簡単に得られる
               •
               あくまでもひな形で、邪魔
               にならないのがいいとこ
               ろ!
                                   株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               足り        やり
                    適切
               ない        すぎ


                             株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   マイグレーション
               •
               DBのスキーマ更新を、変更
               ごとにRubyコードとして
               保存
               •
               開発者間で変更をクールに
               シェアできる
                              株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                           change
               class CreateUsers < ActiveRecord::Migration
                def change
                 create_table :users do ¦t¦
                  t.string :name, :null => false
                  t.string :name_kana, :null => false
                  t.string :email, :null => false
                  t.string :password_hash
                  t.string :password_salt
                  t.timestamps
                 end
                end
               end                                    株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                  up & down
           class RemoveNameKanaInUsers <
           ActiveRecord::Migration
            def up
             remove_column :users, :name_kana
            end
            def down
             add_column :users, :name_kana, :string
            end
           end
                                                株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                マイグレーション
               •generatorで作成して
               •記述追加したりして
               •ローカル環境に当てて確認
                •> rake db:migrate
               •レポジトリにコミット
                                  株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                 某Rails似
               フレームワークで
                migration
               大変だった;;
                           株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                指差し確認
                 しないと
               マイグレート
               できない...orz
                           株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               コマンド成功しても
                  生成物に
                 問題が...orz

                            株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               足り        やり
                    適切
               ない        すぎ


                             株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   某migration
                   Bad Points
               •コード複雑、自動生成頼み
               •モデルクラスのコードとつよく依存
               •中央集権型なので、複数開発者の同
               時更新に弱い
               •
               操作体系が複雑でミスしやすい
                                 株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               Railsのmigration
                 Good Points
               •手書きできるレベルのコード
               • モデルクラスのコードと分離さ
               れている
               •
               複数開発者の同時更新に強い
               •
               操作体系がシンプル
                                株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               時間を節約したいこと

               •定型的な作業
               •作業ミスとリカバリー
               •変更時の動作確認
               •コード内容の把握
                             株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               作業ミスとリカバリー
               •
               比較的ミスしづらい
               •
               rails destroy で
               generateしたものを簡単
               に消せる
               •
               一貫性があって覚えやすい
                               株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               時間を節約したいこと

               •定型的な作業
               •作業ミスとリカバリー
               •変更時の動作確認
               •コード内容の把握
                             株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   変更時の動作確認


               •   スペック/テスト
               •   RSpec おすすめです!


                                 株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               RSpecの話

                        株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               自動テスト
               嫌いでした
                       株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               JUnitの頃...
                ※10年前?もっと?




                                 株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               テストが嫌いだった理由
               •
               プロダクトコードを変更したく
               なくなる(大量に落ちるから)
               •
               データ作りがハード
               •
               テストコード楽しくない
               •
               書いたテストは読む気がしない
               •
               テスト修正作業は最悪だ!
                              株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               プロダクトコードを
               変更したくなくなる

               •
               大量に落ちる→修正苦痛
               •
               変更に耐えるテスト/ス
               ペックが重要!!
                            株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                変更に耐える
               テスト/スペック
                 のコツ

                         株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                「関心事」に
               フォーカスする

                        株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               すべてを確認しない

               レイヤーを揃える

                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               •保存できる
               • 既存レコードなんか調べない!
               • 全カラムを調べたりしない!
               •返り値が20になる
               • 内部の変数の値とか調べない!
               •ステータスコード200を期待
               • セッション状態とか見ない!
               • インスタンス変数の値なんか調べない!
                                      株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   全部調べると

               •
               内部の変更に弱い
               •
               つまり、リファクタリングに弱
               くなる
               •
               コード読んでも意図不明
               •
               心配なら別のケースにする
                                株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                DRYにする
               (特にオブジェ
                クト生成)
                        株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               FactoryGirl

                            株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               Factory.create(:project)




                                       株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               テストが嫌いだった理由
               •
               プロダクトコードを変更したく
               なくなる(大量に落ちるから)
               •
               データ作りがハード
               •
               テストコード楽しくない
               •
               書いたテストは読む気がしない
               •
               テスト修正作業は最悪だ!
                              株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               FactoryGirl

                            株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               FactoryGirlは
               ActiveRecord
                の理解が必要

                             株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               テストが嫌いだった理由
               •
               プロダクトコードを変更したく
               なくなる(大量に落ちるから)
               •
               データ作りがハード
               •
               テストコード楽しくない
               •
               書いたテストは読む気がしない
               •
               テスト修正作業は最悪だ!
                              株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               assert_equal 20, obj.result

                検査してね、20のはずなん
               で、えーとそのobj.resultね
                                         株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               obj.result.should == 20

                  obj.result はー、
                   20になりまーす
                                     株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               RSpec
               楽しい
                       株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               結果を確認してるん
                じゃないんだ
               仕様を書いている
                  んだぜ
                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




          やる気が
           出る!

                     株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                いろいろ
               強力で快適!
                       株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               テストが嫌いだった理由
               •
               プロダクトコードを変更したく
               なくなる(大量に落ちるから)
               •
               データ作りがハード
               •
               テストコード楽しくない
               •
               書いたテストは読む気がしない
               •
               テスト修正作業は最悪だ!
                              株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                うまく書かれた
                RSpecコードは
               ドキュメントとして
                   読める
                           株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




          describe Project do


               describe "#close" do
                let(:proj) {Factory.create(:project, :closed => true)}


                context "when closed" do
                 it {expect{proj.close}.to raise_error}
                end


           end
          end




                                                              株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               テストが嫌いだった理由
               •
               プロダクトコードを変更したく
               なくなる(大量に落ちるから)
               •
               データ作りがハード
               •
               テストコード楽しくない
               •
               書いたテストは読む気がしない
               •
               テスト修正作業は最悪だ!
                              株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                テスト修正は
                 やっぱり
               楽しくない('w'
                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                修正箇所が減って
               意図がわかりやすい
                  のでマシ...

                           株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               時間を節約したいこと

               •定型的な作業
               •作業ミスとリカバリー
               •変更時の動作確認
               •コード内容の把握
                             株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   コード内容の把握

               •
               何がどこに書かれるべきか
               決まっている→探しやすい
               •
               Rubyはコード量が少ない
               ので読みやすい
                              株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                ...うまく
               書ければね!
                        株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               把握しやすい
               コードを書く
                 コツ
                       株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               Rubyらしい
               コードを書く
                        株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               each や for を多
               用していますか?


                             株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               map/collect
               使っていますか?


                            株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               user_names = []
               users.each do ¦u¦
                user_names << u.name
               end



               users.map(&:name)

                                           株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               良い名前をつける


                         株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               値をもらうことが目
                的のメソッドには
                  処理ではなく
                 返す値の名前を
                    つける
                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               calc_salary
                   より
                 salary
                            株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                 Q) 変数名と
               見分けがつかないの
                が心配なんですが

                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               A)変数のように見
               えるメソッド名こそ
                 Rubyらしい
               (変数なんて無いほ
                 うがいい!)
                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               railsのコードを
                ちょっと見て
               雰囲気つかむのも
                   おすすめ
                           株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               正しい場所に書く


                         株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               MVC?
                      株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               オブジェクト指向!


                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               誰の仕事にするか
                  考える

                         株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               適切なオブジェクト
                がなければ作る
               class NiceObject

               end
                                      株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   こういうのは
                    悪いサイン
               obj.name = params....
               obj.age = params...
               v = obj.prepare_some
               obj.prepare2(v)
               ...
               同じオブジェクトについての処理が続いている
                                           株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               オブジェクト側に
                移動しよう
               コントローラ                  モデル
               obj.name = params....   obj
               obj.age = params...
               v = obj.prepare_some
               obj.prepare2(v)
               ...

                                             株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                    移動すると
               コントローラ
               obj.do_some(params)
                  モデル
                   def do_some(attributes)
                    self.name = attributes...
                    self.age = attributes...
                    v = prepare_some
                    prepare2(v)
                    ...                       万葉
                                             株式会社
2012年6月4日月曜日
みなとRuby会議01




               objがモデルなら
                コールバックに
                 移動できる
                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   コールバック
               •before_validation
               •before_save
               •after_save
               •before_destroy
               •after_destroy
               •etc....
                                        株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               コントローラコードは
                こんなかんじに保つ
                                     一括代入
               @project = Project.new(params[:project])
               if @project.save
                 ...
               else
                 ...
               end


                                                    株式会社  万葉
2012年6月4日月曜日
みなとRuby会議01




                   params関係が
                     溢れたら
               •一括代入に乗るように、
                paramsの中身を整えて、代入
                メソッドを追加してやる
               attr_accessor :age
                                        株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                ロジックが溢れたら
               •コールバック
                (before_validationと
                before_saveが多い)に入れ
                る

               before_save :prepare_some
                                         株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   例外処理

               •
               気にしない
               •
               アクション内でがんばらず
               にあとでrescue_fromと
               かで調整がおすすめ
                               株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               コード内容の把握
                 最後のコツ
               スペックを書いて
                おくと動作を
               他人に伝えやすい
                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               時間を節約したいこと
               •定型的な作業
               •作業ミスとリカバリー
               • 変更時の動作確認
               • コード内容の把握

                Railsかわいい!
                                 株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               時間をかけるべきこと

        •      設計
        •      コミュニケーション・情報共有
        •      スペック/自動テストの充実

                              株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               Railsを使うだけ
               では解決しない

                           株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               気をつけていること
               •モデル層はクラス図を書く
               • URL設計は表にする
               • 必要物は全部レポジトリに
               •Wikiに概要や検討を残す
               •よく話し合う
               • レビューする
                                株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               Railsの勉強法

                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                アプリを
               作ってみよう
                       株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               興味のある
               ものを作る
                       株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               偏ってて
                OK
                      株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                 実現したい!
                  と強く思う

               方法を探す     試す
                調べる    身に付く!
                              株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               情報源
                     株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               書籍




                        株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                          API
               http://api.rubyonrails.org/




                                          株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   Rails Guide
               http://guides.rubyonrails.org/




                                             株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   RailsCasts
               http://railscasts.com/




                                        株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               英語の情報を
                避けない
                       株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




               コミュニティ/勉強会
               •地域Rubyコミュニティ
               • Yokohama.rb
               • Asakusa.rb
               • minami.rb
               • Okinawa.rb
               • Tokyu.rb etc
               •Rails勉強会@東京
                                    株式会社万葉
2012年6月4日月曜日
みなとRuby会議01




                   コードを読む
               •github




2012年6月4日月曜日
               •> rvm gemdir       株式会社万葉
みなとRuby会議01




               ごきげんに
               なろう! :)
                         株式会社万葉
2012年6月4日月曜日

More Related Content

Similar to ごきげんRails (20)

レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場
Hiroyuki Ohnaka
 
Rubyのススメ
RubyのススメRubyのススメ
Rubyのススメ
Daisuke Yamaguchi
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05
yamanekko
 
Drupal on ibm_cloud_20160630
Drupal on ibm_cloud_20160630Drupal on ibm_cloud_20160630
Drupal on ibm_cloud_20160630
Yasushi Osonoi
 
エンタープライズソーシャルネットワークを成功させるためには
エンタープライズソーシャルネットワークを成功させるためにはエンタープライズソーシャルネットワークを成功させるためには
エンタープライズソーシャルネットワークを成功させるためには
Kensuke Okamura
 
グリーを支えるソーシャルコーディングのすべて
グリーを支えるソーシャルコーディングのすべてグリーを支えるソーシャルコーディングのすべて
グリーを支えるソーシャルコーディングのすべて
Koichiro Ohba
 
Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料
Yoshihito Kuranuki
 
【B-3】 社内ソーシャルメディア開発トライ&エラー ~おれたちの4tate~ 原島法子氏/岩永義弘氏
【B-3】 社内ソーシャルメディア開発トライ&エラー ~おれたちの4tate~ 原島法子氏/岩永義弘氏【B-3】 社内ソーシャルメディア開発トライ&エラー ~おれたちの4tate~ 原島法子氏/岩永義弘氏
【B-3】 社内ソーシャルメディア開発トライ&エラー ~おれたちの4tate~ 原島法子氏/岩永義弘氏
Developers Summit
 
CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanCMS / BLOG and SnoWOman
CMS / BLOG and SnoWOman
WO Community
 
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
Yasuko Ohba
 
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
codeal
 
Bundler 2 の胎動
Bundler 2 の胎動Bundler 2 の胎動
Bundler 2 の胎動
Koichi ITO
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
 
Railsで新規サービスを開発する際にやったこと
Railsで新規サービスを開発する際にやったことRailsで新規サービスを開発する際にやったこと
Railsで新規サービスを開発する際にやったこと
Jyunichi Kuriyama
 
WordPress 高速化 Pro Tips: フロントエンドの最適化
WordPress 高速化 Pro Tips: フロントエンドの最適化WordPress 高速化 Pro Tips: フロントエンドの最適化
WordPress 高速化 Pro Tips: フロントエンドの最適化
masaaki komori
 
Movable Type Data API Swiftアプリ作成事例
Movable Type Data API Swiftアプリ作成事例Movable Type Data API Swiftアプリ作成事例
Movable Type Data API Swiftアプリ作成事例
FromF
 
オープンソースカンファレンス2012大分資料
オープンソースカンファレンス2012大分資料オープンソースカンファレンス2012大分資料
オープンソースカンファレンス2012大分資料
俊之 渡邊
 
OSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentationOSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentation
Ryuichi Ueda
 
120529 railsとか勉強会v2
120529 railsとか勉強会v2120529 railsとか勉強会v2
120529 railsとか勉強会v2
Yoshiteru Toki
 
レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場
Hiroyuki Ohnaka
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05
yamanekko
 
Drupal on ibm_cloud_20160630
Drupal on ibm_cloud_20160630Drupal on ibm_cloud_20160630
Drupal on ibm_cloud_20160630
Yasushi Osonoi
 
エンタープライズソーシャルネットワークを成功させるためには
エンタープライズソーシャルネットワークを成功させるためにはエンタープライズソーシャルネットワークを成功させるためには
エンタープライズソーシャルネットワークを成功させるためには
Kensuke Okamura
 
グリーを支えるソーシャルコーディングのすべて
グリーを支えるソーシャルコーディングのすべてグリーを支えるソーシャルコーディングのすべて
グリーを支えるソーシャルコーディングのすべて
Koichiro Ohba
 
Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料
Yoshihito Kuranuki
 
【B-3】 社内ソーシャルメディア開発トライ&エラー ~おれたちの4tate~ 原島法子氏/岩永義弘氏
【B-3】 社内ソーシャルメディア開発トライ&エラー ~おれたちの4tate~ 原島法子氏/岩永義弘氏【B-3】 社内ソーシャルメディア開発トライ&エラー ~おれたちの4tate~ 原島法子氏/岩永義弘氏
【B-3】 社内ソーシャルメディア開発トライ&エラー ~おれたちの4tate~ 原島法子氏/岩永義弘氏
Developers Summit
 
CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanCMS / BLOG and SnoWOman
CMS / BLOG and SnoWOman
WO Community
 
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
Yasuko Ohba
 
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
codeal
 
Bundler 2 の胎動
Bundler 2 の胎動Bundler 2 の胎動
Bundler 2 の胎動
Koichi ITO
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
 
Railsで新規サービスを開発する際にやったこと
Railsで新規サービスを開発する際にやったことRailsで新規サービスを開発する際にやったこと
Railsで新規サービスを開発する際にやったこと
Jyunichi Kuriyama
 
WordPress 高速化 Pro Tips: フロントエンドの最適化
WordPress 高速化 Pro Tips: フロントエンドの最適化WordPress 高速化 Pro Tips: フロントエンドの最適化
WordPress 高速化 Pro Tips: フロントエンドの最適化
masaaki komori
 
Movable Type Data API Swiftアプリ作成事例
Movable Type Data API Swiftアプリ作成事例Movable Type Data API Swiftアプリ作成事例
Movable Type Data API Swiftアプリ作成事例
FromF
 
オープンソースカンファレンス2012大分資料
オープンソースカンファレンス2012大分資料オープンソースカンファレンス2012大分資料
オープンソースカンファレンス2012大分資料
俊之 渡邊
 
OSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentationOSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentation
Ryuichi Ueda
 
120529 railsとか勉強会v2
120529 railsとか勉強会v2120529 railsとか勉強会v2
120529 railsとか勉強会v2
Yoshiteru Toki
 

More from Yasuko Ohba (17)

Rubyによる開発プロジェクトをうまく回すには(2)
Rubyによる開発プロジェクトをうまく回すには(2)Rubyによる開発プロジェクトをうまく回すには(2)
Rubyによる開発プロジェクトをうまく回すには(2)
Yasuko Ohba
 
TECH LAB PAAK 2015/06/24 Team Development
TECH LAB PAAK 2015/06/24 Team DevelopmentTECH LAB PAAK 2015/06/24 Team Development
TECH LAB PAAK 2015/06/24 Team Development
Yasuko Ohba
 
女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77
Yasuko Ohba
 
Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5
Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5
Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5
Yasuko Ohba
 
Shimane2010
Shimane2010Shimane2010
Shimane2010
Yasuko Ohba
 
Smell in Rails Apps (in Sapporo RubyKaigi03)
Smell in Rails Apps (in Sapporo RubyKaigi03)Smell in Rails Apps (in Sapporo RubyKaigi03)
Smell in Rails Apps (in Sapporo RubyKaigi03)
Yasuko Ohba
 
The Basis of Making DSL with Ruby
The Basis of Making DSL with RubyThe Basis of Making DSL with Ruby
The Basis of Making DSL with Ruby
Yasuko Ohba
 
Sub Resources Rails Plug-in
Sub Resources Rails Plug-inSub Resources Rails Plug-in
Sub Resources Rails Plug-in
Yasuko Ohba
 
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
Yasuko Ohba
 
Raspbilly
RaspbillyRaspbilly
Raspbilly
Yasuko Ohba
 
テスト大嫌いっ娘のRSpec
テスト大嫌いっ娘のRSpecテスト大嫌いっ娘のRSpec
テスト大嫌いっ娘のRSpec
Yasuko Ohba
 
Shimane2008
Shimane2008Shimane2008
Shimane2008
Yasuko Ohba
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
Yasuko Ohba
 
image_upload Plugin 2007/12/7
image_upload Plugin 2007/12/7image_upload Plugin 2007/12/7
image_upload Plugin 2007/12/7
Yasuko Ohba
 
Ruby on Rails ステップアップ講座 - 大場寧子
Ruby on Rails ステップアップ講座 - 大場寧子Ruby on Rails ステップアップ講座 - 大場寧子
Ruby on Rails ステップアップ講座 - 大場寧子
Yasuko Ohba
 
Ruby on Rails 中級者を目指して - 大場寧子
Ruby on Rails 中級者を目指して - 大場寧子Ruby on Rails 中級者を目指して - 大場寧子
Ruby on Rails 中級者を目指して - 大場寧子
Yasuko Ohba
 
Bookscope 2007 09 07
Bookscope 2007 09 07Bookscope 2007 09 07
Bookscope 2007 09 07
Yasuko Ohba
 
Rubyによる開発プロジェクトをうまく回すには(2)
Rubyによる開発プロジェクトをうまく回すには(2)Rubyによる開発プロジェクトをうまく回すには(2)
Rubyによる開発プロジェクトをうまく回すには(2)
Yasuko Ohba
 
TECH LAB PAAK 2015/06/24 Team Development
TECH LAB PAAK 2015/06/24 Team DevelopmentTECH LAB PAAK 2015/06/24 Team Development
TECH LAB PAAK 2015/06/24 Team Development
Yasuko Ohba
 
女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77
Yasuko Ohba
 
Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5
Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5
Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5
Yasuko Ohba
 
Smell in Rails Apps (in Sapporo RubyKaigi03)
Smell in Rails Apps (in Sapporo RubyKaigi03)Smell in Rails Apps (in Sapporo RubyKaigi03)
Smell in Rails Apps (in Sapporo RubyKaigi03)
Yasuko Ohba
 
The Basis of Making DSL with Ruby
The Basis of Making DSL with RubyThe Basis of Making DSL with Ruby
The Basis of Making DSL with Ruby
Yasuko Ohba
 
Sub Resources Rails Plug-in
Sub Resources Rails Plug-inSub Resources Rails Plug-in
Sub Resources Rails Plug-in
Yasuko Ohba
 
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
Yasuko Ohba
 
テスト大嫌いっ娘のRSpec
テスト大嫌いっ娘のRSpecテスト大嫌いっ娘のRSpec
テスト大嫌いっ娘のRSpec
Yasuko Ohba
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
Yasuko Ohba
 
image_upload Plugin 2007/12/7
image_upload Plugin 2007/12/7image_upload Plugin 2007/12/7
image_upload Plugin 2007/12/7
Yasuko Ohba
 
Ruby on Rails ステップアップ講座 - 大場寧子
Ruby on Rails ステップアップ講座 - 大場寧子Ruby on Rails ステップアップ講座 - 大場寧子
Ruby on Rails ステップアップ講座 - 大場寧子
Yasuko Ohba
 
Ruby on Rails 中級者を目指して - 大場寧子
Ruby on Rails 中級者を目指して - 大場寧子Ruby on Rails 中級者を目指して - 大場寧子
Ruby on Rails 中級者を目指して - 大場寧子
Yasuko Ohba
 
Bookscope 2007 09 07
Bookscope 2007 09 07Bookscope 2007 09 07
Bookscope 2007 09 07
Yasuko Ohba
 

Recently uploaded (8)

生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
suzukiyu1
 
学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示
学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示
学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示
Toyo University
 
JaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdf
JaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdfJaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdf
JaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdf
MaiKaneko4
 
20250327_IoTLT_vol121_______________.pdf
20250327_IoTLT_vol121_______________.pdf20250327_IoTLT_vol121_______________.pdf
20250327_IoTLT_vol121_______________.pdf
Ayachika Kitazaki
 
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
Sojitz Tech-Innovation USA
 
ダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptx
ダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptxダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptx
ダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptx
ssuserfcafd1
 
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアルLoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
CRI Japan, Inc.
 
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
生成AIとビジネス戦略 正しく恐れ正しく活用するために 東海国立大学機構技術発表会 & 岐阜地域産学官連携交流会 2025 講演資料
suzukiyu1
 
学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示
学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示
学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示
Toyo University
 
JaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdf
JaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdfJaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdf
JaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdf
MaiKaneko4
 
20250327_IoTLT_vol121_______________.pdf
20250327_IoTLT_vol121_______________.pdf20250327_IoTLT_vol121_______________.pdf
20250327_IoTLT_vol121_______________.pdf
Ayachika Kitazaki
 
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
【STech I USA】2025.3.21 MWC 2025フィードバック ~通信が作る未来のトレンド~(2025.3.21)
Sojitz Tech-Innovation USA
 
ダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptx
ダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptxダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptx
ダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptx
ssuserfcafd1
 
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアルLoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
CRI Japan, Inc.
 

ごきげんRails

  • 1. みなとRuby会議01 ごきげんRails 2012.6.2 大場寧子 @nay3 株式会社万葉 2012年6月4日月曜日
  • 2. みなとRuby会議01 みなとRuby会議01 開催おめでとうございます 株式会社万葉 2012年6月4日月曜日
  • 3. みなとRuby会議01 Yokohama 株式会社万葉 2012年6月4日月曜日
  • 4. みなとRuby会議01 Ruby on Rails 株式会社万葉 2012年6月4日月曜日
  • 5. みなとRuby会議01 Railsって? • RubyでWebアプリを作 れるフレームワーク • 簡単に作れる! • でも本当に簡単? 株式会社万葉 2012年6月4日月曜日
  • 6. みなとRuby会議01 ちょっと難しい かも... 株式会社万葉 2012年6月4日月曜日
  • 7. みなとRuby会議01 環境作りが 大変 株式会社万葉 2012年6月4日月曜日
  • 8. みなとRuby会議01 でも動きはじめたら 勢いよく出来る 株式会社万葉 2012年6月4日月曜日
  • 9. みなとRuby会議01 ...慣れればね! 株式会社万葉 2012年6月4日月曜日
  • 10. みなとRuby会議01 今日の話題 • RubyやRailsでごきげん になった話 • Railsの魅力 • Railsの勉強法 株式会社万葉 2012年6月4日月曜日
  • 11. みなとRuby会議01 自己紹介 株式会社万葉 2012年6月4日月曜日
  • 12. みなとRuby会議01 株式会社万葉 Everyleaf Corp. 女性メンバーいっぱいいますよ! :) 株式会社万葉 2012年6月4日月曜日
  • 13. みなとRuby会議01 実装大好き 株式会社万葉 2012年6月4日月曜日
  • 14. みなとRuby会議01 実装やめないために 会社作りました (^^; 株式会社万葉 2012年6月4日月曜日
  • 15. みなとRuby会議01 RubyとRailsの おかげです 株式会社万葉 2012年6月4日月曜日
  • 16. みなとRuby会議01 本が出ます (そのはずです) 株式会社万葉 2012年6月4日月曜日
  • 17. みなとRuby会議01 たのしい開発 スタートアップRuby 株式会社万葉 2012年6月4日月曜日
  • 18. みなとRuby会議01 Railsの魅力 株式会社万葉 2012年6月4日月曜日
  • 19. みなとRuby会議01 生産性 株式会社万葉 2012年6月4日月曜日
  • 20. みなとRuby会議01 とても高い! 株式会社万葉 2012年6月4日月曜日
  • 21. みなとRuby会議01 プログラマにとって 気持ちイイ方向に 「生産性が高い」 株式会社万葉 2012年6月4日月曜日
  • 22. みなとRuby会議01 「時間をかけるべき こと」に 時間をかけられる 株式会社万葉 2012年6月4日月曜日
  • 23. みなとRuby会議01 時間をかけるべきこと • 設計 • コミュニケーション・情報共有 • スペック/自動テストの充実 株式会社万葉 2012年6月4日月曜日
  • 24. みなとRuby会議01 時間を節約したいこと •定型的な作業 •作業ミスとリカバリー •変更時の動作確認 •コード内容の把握 株式会社万葉 2012年6月4日月曜日
  • 25. みなとRuby会議01 定型的な作業 • 新しいモデルの作成 • 新しいコントローラの作成 • データベーススキーマの更新 → generator、マイグレーション 株式会社万葉 2012年6月4日月曜日
  • 26. みなとRuby会議01 generator > rails g model User name:string email:string > rails g controller Users index show 株式会社万葉 2012年6月4日月曜日
  • 27. みなとRuby会議01 generator • ひな形が簡単に得られる • あくまでもひな形で、邪魔 にならないのがいいとこ ろ! 株式会社万葉 2012年6月4日月曜日
  • 28. みなとRuby会議01 足り やり 適切 ない すぎ 株式会社万葉 2012年6月4日月曜日
  • 29. みなとRuby会議01 マイグレーション • DBのスキーマ更新を、変更 ごとにRubyコードとして 保存 • 開発者間で変更をクールに シェアできる 株式会社万葉 2012年6月4日月曜日
  • 30. みなとRuby会議01 change class CreateUsers < ActiveRecord::Migration def change create_table :users do ¦t¦ t.string :name, :null => false t.string :name_kana, :null => false t.string :email, :null => false t.string :password_hash t.string :password_salt t.timestamps end end end 株式会社万葉 2012年6月4日月曜日
  • 31. みなとRuby会議01 up & down class RemoveNameKanaInUsers < ActiveRecord::Migration def up remove_column :users, :name_kana end def down add_column :users, :name_kana, :string end end 株式会社万葉 2012年6月4日月曜日
  • 32. みなとRuby会議01 マイグレーション •generatorで作成して •記述追加したりして •ローカル環境に当てて確認 •> rake db:migrate •レポジトリにコミット 株式会社万葉 2012年6月4日月曜日
  • 33. みなとRuby会議01 某Rails似 フレームワークで migration 大変だった;; 株式会社万葉 2012年6月4日月曜日
  • 34. みなとRuby会議01 指差し確認 しないと マイグレート できない...orz 株式会社万葉 2012年6月4日月曜日
  • 35. みなとRuby会議01 コマンド成功しても 生成物に 問題が...orz 株式会社万葉 2012年6月4日月曜日
  • 36. みなとRuby会議01 足り やり 適切 ない すぎ 株式会社万葉 2012年6月4日月曜日
  • 37. みなとRuby会議01 某migration Bad Points •コード複雑、自動生成頼み •モデルクラスのコードとつよく依存 •中央集権型なので、複数開発者の同 時更新に弱い • 操作体系が複雑でミスしやすい 株式会社万葉 2012年6月4日月曜日
  • 38. みなとRuby会議01 Railsのmigration Good Points •手書きできるレベルのコード • モデルクラスのコードと分離さ れている • 複数開発者の同時更新に強い • 操作体系がシンプル 株式会社万葉 2012年6月4日月曜日
  • 39. みなとRuby会議01 時間を節約したいこと •定型的な作業 •作業ミスとリカバリー •変更時の動作確認 •コード内容の把握 株式会社万葉 2012年6月4日月曜日
  • 40. みなとRuby会議01 作業ミスとリカバリー • 比較的ミスしづらい • rails destroy で generateしたものを簡単 に消せる • 一貫性があって覚えやすい 株式会社万葉 2012年6月4日月曜日
  • 41. みなとRuby会議01 時間を節約したいこと •定型的な作業 •作業ミスとリカバリー •変更時の動作確認 •コード内容の把握 株式会社万葉 2012年6月4日月曜日
  • 42. みなとRuby会議01 変更時の動作確認 • スペック/テスト • RSpec おすすめです! 株式会社万葉 2012年6月4日月曜日
  • 43. みなとRuby会議01 RSpecの話 株式会社万葉 2012年6月4日月曜日
  • 44. みなとRuby会議01 自動テスト 嫌いでした 株式会社万葉 2012年6月4日月曜日
  • 45. みなとRuby会議01 JUnitの頃... ※10年前?もっと? 株式会社万葉 2012年6月4日月曜日
  • 46. みなとRuby会議01 テストが嫌いだった理由 • プロダクトコードを変更したく なくなる(大量に落ちるから) • データ作りがハード • テストコード楽しくない • 書いたテストは読む気がしない • テスト修正作業は最悪だ! 株式会社万葉 2012年6月4日月曜日
  • 47. みなとRuby会議01 プロダクトコードを 変更したくなくなる • 大量に落ちる→修正苦痛 • 変更に耐えるテスト/ス ペックが重要!! 株式会社万葉 2012年6月4日月曜日
  • 48. みなとRuby会議01 変更に耐える テスト/スペック のコツ 株式会社万葉 2012年6月4日月曜日
  • 49. みなとRuby会議01 「関心事」に フォーカスする 株式会社万葉 2012年6月4日月曜日
  • 50. みなとRuby会議01 すべてを確認しない レイヤーを揃える 株式会社万葉 2012年6月4日月曜日
  • 51. みなとRuby会議01 •保存できる • 既存レコードなんか調べない! • 全カラムを調べたりしない! •返り値が20になる • 内部の変数の値とか調べない! •ステータスコード200を期待 • セッション状態とか見ない! • インスタンス変数の値なんか調べない! 株式会社万葉 2012年6月4日月曜日
  • 52. みなとRuby会議01 全部調べると • 内部の変更に弱い • つまり、リファクタリングに弱 くなる • コード読んでも意図不明 • 心配なら別のケースにする 株式会社万葉 2012年6月4日月曜日
  • 53. みなとRuby会議01 DRYにする (特にオブジェ クト生成) 株式会社万葉 2012年6月4日月曜日
  • 54. みなとRuby会議01 FactoryGirl 株式会社万葉 2012年6月4日月曜日
  • 55. みなとRuby会議01 Factory.create(:project) 株式会社万葉 2012年6月4日月曜日
  • 56. みなとRuby会議01 テストが嫌いだった理由 • プロダクトコードを変更したく なくなる(大量に落ちるから) • データ作りがハード • テストコード楽しくない • 書いたテストは読む気がしない • テスト修正作業は最悪だ! 株式会社万葉 2012年6月4日月曜日
  • 57. みなとRuby会議01 FactoryGirl 株式会社万葉 2012年6月4日月曜日
  • 58. みなとRuby会議01 FactoryGirlは ActiveRecord の理解が必要 株式会社万葉 2012年6月4日月曜日
  • 59. みなとRuby会議01 テストが嫌いだった理由 • プロダクトコードを変更したく なくなる(大量に落ちるから) • データ作りがハード • テストコード楽しくない • 書いたテストは読む気がしない • テスト修正作業は最悪だ! 株式会社万葉 2012年6月4日月曜日
  • 60. みなとRuby会議01 assert_equal 20, obj.result 検査してね、20のはずなん で、えーとそのobj.resultね 株式会社万葉 2012年6月4日月曜日
  • 61. みなとRuby会議01 obj.result.should == 20 obj.result はー、 20になりまーす 株式会社万葉 2012年6月4日月曜日
  • 62. みなとRuby会議01 RSpec 楽しい 株式会社万葉 2012年6月4日月曜日
  • 63. みなとRuby会議01 結果を確認してるん じゃないんだ 仕様を書いている んだぜ 株式会社万葉 2012年6月4日月曜日
  • 64. みなとRuby会議01 やる気が 出る! 株式会社万葉 2012年6月4日月曜日
  • 65. みなとRuby会議01 いろいろ 強力で快適! 株式会社万葉 2012年6月4日月曜日
  • 66. みなとRuby会議01 テストが嫌いだった理由 • プロダクトコードを変更したく なくなる(大量に落ちるから) • データ作りがハード • テストコード楽しくない • 書いたテストは読む気がしない • テスト修正作業は最悪だ! 株式会社万葉 2012年6月4日月曜日
  • 67. みなとRuby会議01 うまく書かれた RSpecコードは ドキュメントとして 読める 株式会社万葉 2012年6月4日月曜日
  • 68. みなとRuby会議01 describe Project do describe "#close" do let(:proj) {Factory.create(:project, :closed => true)} context "when closed" do it {expect{proj.close}.to raise_error} end end end 株式会社万葉 2012年6月4日月曜日
  • 69. みなとRuby会議01 テストが嫌いだった理由 • プロダクトコードを変更したく なくなる(大量に落ちるから) • データ作りがハード • テストコード楽しくない • 書いたテストは読む気がしない • テスト修正作業は最悪だ! 株式会社万葉 2012年6月4日月曜日
  • 70. みなとRuby会議01 テスト修正は やっぱり 楽しくない('w' 株式会社万葉 2012年6月4日月曜日
  • 71. みなとRuby会議01 修正箇所が減って 意図がわかりやすい のでマシ... 株式会社万葉 2012年6月4日月曜日
  • 72. みなとRuby会議01 時間を節約したいこと •定型的な作業 •作業ミスとリカバリー •変更時の動作確認 •コード内容の把握 株式会社万葉 2012年6月4日月曜日
  • 73. みなとRuby会議01 コード内容の把握 • 何がどこに書かれるべきか 決まっている→探しやすい • Rubyはコード量が少ない ので読みやすい 株式会社万葉 2012年6月4日月曜日
  • 74. みなとRuby会議01 ...うまく 書ければね! 株式会社万葉 2012年6月4日月曜日
  • 75. みなとRuby会議01 把握しやすい コードを書く コツ 株式会社万葉 2012年6月4日月曜日
  • 76. みなとRuby会議01 Rubyらしい コードを書く 株式会社万葉 2012年6月4日月曜日
  • 77. みなとRuby会議01 each や for を多 用していますか? 株式会社万葉 2012年6月4日月曜日
  • 78. みなとRuby会議01 map/collect 使っていますか? 株式会社万葉 2012年6月4日月曜日
  • 79. みなとRuby会議01 user_names = [] users.each do ¦u¦ user_names << u.name end users.map(&:name) 株式会社万葉 2012年6月4日月曜日
  • 80. みなとRuby会議01 良い名前をつける 株式会社万葉 2012年6月4日月曜日
  • 81. みなとRuby会議01 値をもらうことが目 的のメソッドには 処理ではなく 返す値の名前を つける 株式会社万葉 2012年6月4日月曜日
  • 82. みなとRuby会議01 calc_salary より salary 株式会社万葉 2012年6月4日月曜日
  • 83. みなとRuby会議01 Q) 変数名と 見分けがつかないの が心配なんですが 株式会社万葉 2012年6月4日月曜日
  • 84. みなとRuby会議01 A)変数のように見 えるメソッド名こそ Rubyらしい (変数なんて無いほ うがいい!) 株式会社万葉 2012年6月4日月曜日
  • 85. みなとRuby会議01 railsのコードを ちょっと見て 雰囲気つかむのも おすすめ 株式会社万葉 2012年6月4日月曜日
  • 86. みなとRuby会議01 正しい場所に書く 株式会社万葉 2012年6月4日月曜日
  • 87. みなとRuby会議01 MVC? 株式会社万葉 2012年6月4日月曜日
  • 88. みなとRuby会議01 オブジェクト指向! 株式会社万葉 2012年6月4日月曜日
  • 89. みなとRuby会議01 誰の仕事にするか 考える 株式会社万葉 2012年6月4日月曜日
  • 90. みなとRuby会議01 適切なオブジェクト がなければ作る class NiceObject end 株式会社万葉 2012年6月4日月曜日
  • 91. みなとRuby会議01 こういうのは 悪いサイン obj.name = params.... obj.age = params... v = obj.prepare_some obj.prepare2(v) ... 同じオブジェクトについての処理が続いている 株式会社万葉 2012年6月4日月曜日
  • 92. みなとRuby会議01 オブジェクト側に 移動しよう コントローラ モデル obj.name = params.... obj obj.age = params... v = obj.prepare_some obj.prepare2(v) ... 株式会社万葉 2012年6月4日月曜日
  • 93. みなとRuby会議01 移動すると コントローラ obj.do_some(params) モデル def do_some(attributes) self.name = attributes... self.age = attributes... v = prepare_some prepare2(v) ... 万葉 株式会社 2012年6月4日月曜日
  • 94. みなとRuby会議01 objがモデルなら コールバックに 移動できる 株式会社万葉 2012年6月4日月曜日
  • 95. みなとRuby会議01 コールバック •before_validation •before_save •after_save •before_destroy •after_destroy •etc.... 株式会社万葉 2012年6月4日月曜日
  • 96. みなとRuby会議01 コントローラコードは こんなかんじに保つ 一括代入 @project = Project.new(params[:project]) if @project.save ... else ... end 株式会社 万葉 2012年6月4日月曜日
  • 97. みなとRuby会議01 params関係が 溢れたら •一括代入に乗るように、 paramsの中身を整えて、代入 メソッドを追加してやる attr_accessor :age 株式会社万葉 2012年6月4日月曜日
  • 98. みなとRuby会議01 ロジックが溢れたら •コールバック (before_validationと before_saveが多い)に入れ る before_save :prepare_some 株式会社万葉 2012年6月4日月曜日
  • 99. みなとRuby会議01 例外処理 • 気にしない • アクション内でがんばらず にあとでrescue_fromと かで調整がおすすめ 株式会社万葉 2012年6月4日月曜日
  • 100. みなとRuby会議01 コード内容の把握 最後のコツ スペックを書いて おくと動作を 他人に伝えやすい 株式会社万葉 2012年6月4日月曜日
  • 101. みなとRuby会議01 時間を節約したいこと •定型的な作業 •作業ミスとリカバリー • 変更時の動作確認 • コード内容の把握 Railsかわいい! 株式会社万葉 2012年6月4日月曜日
  • 102. みなとRuby会議01 時間をかけるべきこと • 設計 • コミュニケーション・情報共有 • スペック/自動テストの充実 株式会社万葉 2012年6月4日月曜日
  • 103. みなとRuby会議01 Railsを使うだけ では解決しない 株式会社万葉 2012年6月4日月曜日
  • 104. みなとRuby会議01 気をつけていること •モデル層はクラス図を書く • URL設計は表にする • 必要物は全部レポジトリに •Wikiに概要や検討を残す •よく話し合う • レビューする 株式会社万葉 2012年6月4日月曜日
  • 105. みなとRuby会議01 Railsの勉強法 株式会社万葉 2012年6月4日月曜日
  • 106. みなとRuby会議01 アプリを 作ってみよう 株式会社万葉 2012年6月4日月曜日
  • 107. みなとRuby会議01 興味のある ものを作る 株式会社万葉 2012年6月4日月曜日
  • 108. みなとRuby会議01 偏ってて OK 株式会社万葉 2012年6月4日月曜日
  • 109. みなとRuby会議01 実現したい! と強く思う 方法を探す 試す 調べる 身に付く! 株式会社万葉 2012年6月4日月曜日
  • 110. みなとRuby会議01 情報源 株式会社万葉 2012年6月4日月曜日
  • 111. みなとRuby会議01 書籍 株式会社万葉 2012年6月4日月曜日
  • 112. みなとRuby会議01 API http://api.rubyonrails.org/ 株式会社万葉 2012年6月4日月曜日
  • 113. みなとRuby会議01 Rails Guide http://guides.rubyonrails.org/ 株式会社万葉 2012年6月4日月曜日
  • 114. みなとRuby会議01 RailsCasts http://railscasts.com/ 株式会社万葉 2012年6月4日月曜日
  • 115. みなとRuby会議01 英語の情報を 避けない 株式会社万葉 2012年6月4日月曜日
  • 116. みなとRuby会議01 コミュニティ/勉強会 •地域Rubyコミュニティ • Yokohama.rb • Asakusa.rb • minami.rb • Okinawa.rb • Tokyu.rb etc •Rails勉強会@東京 株式会社万葉 2012年6月4日月曜日
  • 117. みなとRuby会議01 コードを読む •github 2012年6月4日月曜日 •> rvm gemdir 株式会社万葉
  • 118. みなとRuby会議01 ごきげんに なろう! :) 株式会社万葉 2012年6月4日月曜日