Successfully reported this slideshow.
みなとRuby会議01               ごきげんRails                   2012.6.2                 大場寧子 @nay3                                 ...
みなと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アプリを作               れるフレームワーク               •...
みなとRuby会議01               ちょっと難しい                 かも...                         株式会社万葉2012年6月4日月曜日
みなとRuby会議01               環境作りが                 大変                           株式会社万葉2012年6月4日月曜日
みなとRuby会議01               でも動きはじめたら                勢いよく出来る                          株式会社万葉2012年6月4日月曜日
みなとRuby会議01               ...慣れればね!                          株式会社万葉2012年6月4日月曜日
みなとRuby会議01                   今日の話題               •               RubyやRailsでごきげん               になった話               •     ...
みなとRuby会議01               自己紹介                      株式会社万葉2012年6月4日月曜日
みなとRuby会議01               株式会社万葉               Everyleaf Corp.           女性メンバーいっぱいいますよ! :)                               ...
みなと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               時間をかけるべきこと          •    設計          •    コミュニケーション・情報共有          •    スペック/自動テストの充実            ...
みなとRuby会議01               時間を節約したいこと               •定型的な作業               •作業ミスとリカバリー               •変更時の動作確認              ...
みなとRuby会議01                   定型的な作業           •   新しいモデルの作成           •   新しいコントローラの作成           •   データベーススキーマの更新       ...
みなとRuby会議01                   generator               > rails g model User               name:string email:string         ...
みなとRuby会議01                   generator               •               ひな形が簡単に得られる               •               あくまでもひな形で、...
みなとRuby会議01               足り        やり                    適切               ない        すぎ                             株式会社万葉...
みなとRuby会議01                   マイグレーション               •               DBのスキーマ更新を、変更               ごとにRubyコードとして            ...
みなとRuby会議01                           change               class CreateUsers < ActiveRecord::Migration                def ...
みなとRuby会議01                  up & down           class RemoveNameKanaInUsers <           ActiveRecord::Migration          ...
みなとRuby会議01                マイグレーション               •generatorで作成して               •記述追加したりして               •ローカル環境に当てて確認    ...
みなとRuby会議01                 某Rails似               フレームワークで                migration               大変だった;;                 ...
みなとRuby会議01                指差し確認                 しないと               マイグレート               できない...orz                       ...
みなとRuby会議01               コマンド成功しても                  生成物に                 問題が...orz                            株式会社万葉2012年...
みなとRuby会議01               足り        やり                    適切               ない        すぎ                             株式会社万葉...
みなとRuby会議01                   某migration                   Bad Points               •コード複雑、自動生成頼み               •モデルクラスのコー...
みなとRuby会議01               Railsのmigration                 Good Points               •手書きできるレベルのコード               • モデルクラスの...
みなとRuby会議01               時間を節約したいこと               •定型的な作業               •作業ミスとリカバリー               •変更時の動作確認              ...
みなとRuby会議01               作業ミスとリカバリー               •               比較的ミスしづらい               •               rails destroy で...
みなとRuby会議01               時間を節約したいこと               •定型的な作業               •作業ミスとリカバリー               •変更時の動作確認              ...
みなとRuby会議01                   変更時の動作確認               •   スペック/テスト               •   RSpec おすすめです!                         ...
みなとRuby会議01               RSpecの話                        株式会社万葉2012年6月4日月曜日
みなとRuby会議01               自動テスト               嫌いでした                       株式会社万葉2012年6月4日月曜日
みなとRuby会議01               JUnitの頃...                ※10年前?もっと?                                 株式会社万葉2012年6月4日月曜日
みなとRuby会議01               テストが嫌いだった理由               •               プロダクトコードを変更したく               なくなる(大量に落ちるから)           ...
みなとRuby会議01               プロダクトコードを               変更したくなくなる               •               大量に落ちる→修正苦痛               •     ...
みなとRuby会議01                変更に耐える               テスト/スペック                 のコツ                         株式会社万葉2012年6月4日月曜日
みなとRuby会議01                「関心事」に               フォーカスする                        株式会社万葉2012年6月4日月曜日
みなとRuby会議01               すべてを確認しない               レイヤーを揃える                          株式会社万葉2012年6月4日月曜日
みなとRuby会議01               •保存できる               • 既存レコードなんか調べない!               • 全カラムを調べたりしない!               •返り値が20になる    ...
みなとRuby会議01                   全部調べると               •               内部の変更に弱い               •               つまり、リファクタリングに弱  ...
みなとRuby会議01                DRYにする               (特にオブジェ                クト生成)                        株式会社万葉2012年6月4日月曜日
みなとRuby会議01               FactoryGirl                            株式会社万葉2012年6月4日月曜日
みなとRuby会議01               Factory.create(:project)                                       株式会社万葉2012年6月4日月曜日
みなとRuby会議01               テストが嫌いだった理由               •               プロダクトコードを変更したく               なくなる(大量に落ちるから)           ...
みなとRuby会議01               FactoryGirl                            株式会社万葉2012年6月4日月曜日
みなとRuby会議01               FactoryGirlは               ActiveRecord                の理解が必要                             株式会社万葉...
みなとRuby会議01               テストが嫌いだった理由               •               プロダクトコードを変更したく               なくなる(大量に落ちるから)           ...
みなとRuby会議01               assert_equal 20, obj.result                検査してね、20のはずなん               で、えーとそのobj.resultね       ...
みなとRuby会議01               obj.result.should == 20                  obj.result はー、                   20になりまーす              ...
みなとRuby会議01               RSpec               楽しい                       株式会社万葉2012年6月4日月曜日
みなとRuby会議01               結果を確認してるん                じゃないんだ               仕様を書いている                  んだぜ                     ...
みなとRuby会議01          やる気が           出る!                     株式会社万葉2012年6月4日月曜日
みなとRuby会議01                いろいろ               強力で快適!                       株式会社万葉2012年6月4日月曜日
みなとRuby会議01               テストが嫌いだった理由               •               プロダクトコードを変更したく               なくなる(大量に落ちるから)           ...
みなとRuby会議01                うまく書かれた                RSpecコードは               ドキュメントとして                   読める                 ...
みなとRuby会議01          describe Project do               describe "#close" do                let(:proj) {Factory.create(:pro...
みなとRuby会議01               テストが嫌いだった理由               •               プロダクトコードを変更したく               なくなる(大量に落ちるから)           ...
みなとRuby会議01                テスト修正は                 やっぱり               楽しくない(w                          株式会社万葉2012年6月4日月曜日
みなとRuby会議01                修正箇所が減って               意図がわかりやすい                  のでマシ...                           株式会社万葉2012年...
みなとRuby会議01               時間を節約したいこと               •定型的な作業               •作業ミスとリカバリー               •変更時の動作確認              ...
みなとRuby会議01                   コード内容の把握               •               何がどこに書かれるべきか               決まっている→探しやすい              ...
みなと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             ...
みなとRuby会議01               良い名前をつける                         株式会社万葉2012年6月4日月曜日
みなとRuby会議01               値をもらうことが目                的のメソッドには                  処理ではなく                 返す値の名前を               ...
みなとRuby会議01               calc_salary                   より                 salary                            株式会社万葉2012年6月...
みなとRuby会議01                 Q) 変数名と               見分けがつかないの                が心配なんですが                          株式会社万葉2012年6月...
みなとRuby会議01               A)変数のように見               えるメソッド名こそ                 Rubyらしい               (変数なんて無いほ               ...
みなとRuby会議01               railsのコードを                ちょっと見て               雰囲気つかむのも                   おすすめ                  ...
みなと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               ...
みなとRuby会議01                   こういうのは                    悪いサイン               obj.name = params....               obj.age = ...
みなとRuby会議01               オブジェクト側に                移動しよう               コントローラ                  モデル               obj.name =...
みなとRuby会議01                    移動すると               コントローラ               obj.do_some(params)                  モデル          ...
みなとRuby会議01               objがモデルなら                コールバックに                 移動できる                          株式会社万葉2012年6月4日月曜日
みなとRuby会議01                   コールバック               •before_validation               •before_save               •after_save...
みなとRuby会議01               コントローラコードは                こんなかんじに保つ                                     一括代入               @proj...
みなとRuby会議01                   params関係が                     溢れたら               •一括代入に乗るように、                paramsの中身を整えて、代...
みなとRuby会議01                ロジックが溢れたら               •コールバック                (before_validationと                before_saveが多...
みなとRuby会議01                   例外処理               •               気にしない               •               アクション内でがんばらず         ...
みなとRuby会議01               コード内容の把握                 最後のコツ               スペックを書いて                おくと動作を               他人に伝えや...
みなとRuby会議01               時間を節約したいこと               •定型的な作業               •作業ミスとリカバリー               • 変更時の動作確認             ...
みなとRuby会議01               時間をかけるべきこと        •      設計        •      コミュニケーション・情報共有        •      スペック/自動テストの充実            ...
みなとRuby会議01               Railsを使うだけ               では解決しない                           株式会社万葉2012年6月4日月曜日
みなとRuby会議01               気をつけていること               •モデル層はクラス図を書く               • URL設計は表にする               • 必要物は全部レポジトリに   ...
みなとRuby会議01               Railsの勉強法                          株式会社万葉2012年6月4日月曜日
みなとRuby会議01                アプリを               作ってみよう                       株式会社万葉2012年6月4日月曜日
みなとRuby会議01               興味のある               ものを作る                       株式会社万葉2012年6月4日月曜日
みなとRuby会議01               偏ってて                OK                      株式会社万葉2012年6月4日月曜日
みなとRuby会議01                 実現したい!                  と強く思う               方法を探す     試す                調べる    身に付く!          ...
みなとRuby会議01               情報源                     株式会社万葉2012年6月4日月曜日
みなとRuby会議01               書籍                        株式会社万葉2012年6月4日月曜日
みなとRuby会議01                          API               http://api.rubyonrails.org/                                        ...
みなとRuby会議01                   Rails Guide               http://guides.rubyonrails.org/                                    ...
みなとRuby会議01                   RailsCasts               http://railscasts.com/                                        株式会社万...
みなとRuby会議01               英語の情報を                避けない                       株式会社万葉2012年6月4日月曜日
みなとRuby会議01               コミュニティ/勉強会               •地域Rubyコミュニティ               • Yokohama.rb               • Asakusa.rb   ...
みなとRuby会議01                   コードを読む               •github2012年6月4日月曜日               •> rvm gemdir       株式会社万葉
みなとRuby会議01               ごきげんに               なろう! :)                         株式会社万葉2012年6月4日月曜日
Upcoming SlideShare
Loading in …5
×

ごきげんRails

7,935 views

Published on

Presentation for MinatoRubyKaigi01, talking about Ruby on Rails. Written in Japanese.

Published in: Technology
  • Be the first to comment

ごきげんRails

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

×