SlideShare a Scribd company logo
1 of 118
Download to read offline
みなと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

レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場Hiroyuki Ohnaka
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05yamanekko
 
Drupal on ibm_cloud_20160630
Drupal on ibm_cloud_20160630Drupal on ibm_cloud_20160630
Drupal on ibm_cloud_20160630Yasushi 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 SnoWOmanWO 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. presentationRyuichi Ueda
 
120529 railsとか勉強会v2
120529 railsとか勉強会v2120529 railsとか勉強会v2
120529 railsとか勉強会v2Yoshiteru Toki
 

Similar to ごきげんRails (20)

レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場
 
Rubyのススメ
RubyのススメRubyのススメ
Rubyのススメ
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05
 
Drupal on ibm_cloud_20160630
Drupal on ibm_cloud_20160630Drupal on ibm_cloud_20160630
Drupal on ibm_cloud_20160630
 
エンタープライズソーシャルネットワークを成功させるためには
エンタープライズソーシャルネットワークを成功させるためにはエンタープライズソーシャルネットワークを成功させるためには
エンタープライズソーシャルネットワークを成功させるためには
 
グリーを支えるソーシャルコーディングのすべて
グリーを支えるソーシャルコーディングのすべてグリーを支えるソーシャルコーディングのすべて
グリーを支えるソーシャルコーディングのすべて
 
Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料
 
【B-3】 社内ソーシャルメディア開発トライ&エラー ~おれたちの4tate~ 原島法子氏/岩永義弘氏
【B-3】 社内ソーシャルメディア開発トライ&エラー ~おれたちの4tate~ 原島法子氏/岩永義弘氏【B-3】 社内ソーシャルメディア開発トライ&エラー ~おれたちの4tate~ 原島法子氏/岩永義弘氏
【B-3】 社内ソーシャルメディア開発トライ&エラー ~おれたちの4tate~ 原島法子氏/岩永義弘氏
 
CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanCMS / BLOG and SnoWOman
CMS / BLOG and SnoWOman
 
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
 
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
 
Bundler 2 の胎動
Bundler 2 の胎動Bundler 2 の胎動
Bundler 2 の胎動
 
Osc2012tokyo timing
Osc2012tokyo timingOsc2012tokyo timing
Osc2012tokyo timing
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
 
Railsで新規サービスを開発する際にやったこと
Railsで新規サービスを開発する際にやったことRailsで新規サービスを開発する際にやったこと
Railsで新規サービスを開発する際にやったこと
 
WordPress 高速化 Pro Tips: フロントエンドの最適化
WordPress 高速化 Pro Tips: フロントエンドの最適化WordPress 高速化 Pro Tips: フロントエンドの最適化
WordPress 高速化 Pro Tips: フロントエンドの最適化
 
Movable Type Data API Swiftアプリ作成事例
Movable Type Data API Swiftアプリ作成事例Movable Type Data API Swiftアプリ作成事例
Movable Type Data API Swiftアプリ作成事例
 
オープンソースカンファレンス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
 
120529 railsとか勉強会v2
120529 railsとか勉強会v2120529 railsとか勉強会v2
120529 railsとか勉強会v2
 

More from 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 DevelopmentYasuko Ohba
 
女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77Yasuko 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/5Yasuko 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 RubyYasuko Ohba
 
Sub Resources Rails Plug-in
Sub Resources Rails Plug-inSub Resources Rails Plug-in
Sub Resources Rails Plug-inYasuko 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 Kaigi2009Yasuko Ohba
 
テスト大嫌いっ娘のRSpec
テスト大嫌いっ娘のRSpecテスト大嫌いっ娘のRSpec
テスト大嫌いっ娘のRSpecYasuko 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/7Yasuko 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 07Yasuko Ohba
 

More from Yasuko Ohba (17)

Rubyによる開発プロジェクトをうまく回すには(2)
Rubyによる開発プロジェクトをうまく回すには(2)Rubyによる開発プロジェクトをうまく回すには(2)
Rubyによる開発プロジェクトをうまく回すには(2)
 
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
 
女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77
 
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
 
Shimane2010
Shimane2010Shimane2010
Shimane2010
 
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)
 
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
 
Sub Resources Rails Plug-in
Sub Resources Rails Plug-inSub Resources Rails Plug-in
Sub Resources Rails Plug-in
 
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
 
Raspbilly
RaspbillyRaspbilly
Raspbilly
 
テスト大嫌いっ娘のRSpec
テスト大嫌いっ娘のRSpecテスト大嫌いっ娘のRSpec
テスト大嫌いっ娘のRSpec
 
Shimane2008
Shimane2008Shimane2008
Shimane2008
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
 
image_upload Plugin 2007/12/7
image_upload Plugin 2007/12/7image_upload Plugin 2007/12/7
image_upload Plugin 2007/12/7
 
Ruby on Rails ステップアップ講座 - 大場寧子
Ruby on Rails ステップアップ講座 - 大場寧子Ruby on Rails ステップアップ講座 - 大場寧子
Ruby on Rails ステップアップ講座 - 大場寧子
 
Ruby on Rails 中級者を目指して - 大場寧子
Ruby on Rails 中級者を目指して - 大場寧子Ruby on Rails 中級者を目指して - 大場寧子
Ruby on Rails 中級者を目指して - 大場寧子
 
Bookscope 2007 09 07
Bookscope 2007 09 07Bookscope 2007 09 07
Bookscope 2007 09 07
 

Recently uploaded

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (8)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

ごきげん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日月曜日