55
Rails開発ツールガイド 2007.09.29 Ruby勉強会@札幌#5 Ruby札幌 前田智樹([email protected] ) 1 2007年9月30日日曜日

070929 Ruby勉強会#5 Rails開発ツールガイド

Embed Size (px)

Citation preview

Page 1: 070929 Ruby勉強会#5 Rails開発ツールガイド

Rails開発ツールガイド

2007.09.29 Ruby勉強会@札幌#5Ruby札幌 前田智樹([email protected])

12007年9月30日日曜日

Page 2: 070929 Ruby勉強会#5 Rails開発ツールガイド

今日の内容自己紹介

2

試行錯誤ツール

デバッグツール

その他のツール

マニュアル

実装ツール

22007年9月30日日曜日

Page 3: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

自己紹介株式会社アンタス

Webアプリケーション・Webサービスの設計・開発・運用保守を中心に幅広くやっています。納品物にRubyやRailsを利用したものがいくつかあります。前田智樹エンジニアをしています。RubyやRailsの開発者でも何でもありませんが、Rubyは1999年から愛用してます。ここ1年ぐらい仕事は全部Rubyです。7月に3万行強のRailsを利用したプロジェクトを納品。元気に稼働中(`・!・´) v

Javaはもう忘れました。 PHPは全く知りません。RubyKaigi2006と2007に行ってきました。

3

32007年9月30日日曜日

Page 4: 070929 Ruby勉強会#5 Rails開発ツールガイド

マニュアル

4

試行錯誤ツール

デバッグツール

その他のツール

マニュアル

実装ツール

42007年9月30日日曜日

Page 5: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

マニュアル重要!大抵のことはマニュアル読めば解決

最も信頼性が高い

マニュアルはPCさえあれば見られる

5

52007年9月30日日曜日

Page 6: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

マニュアルを見る手段Webで見る

6

ローカルに保存した静的HTMLで見るコマンドラインツールで見る

"全文検索ができる"常に最新の情報#ネット接続が必要

62007年9月30日日曜日

Page 7: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

マニュアルを見る手段Webで見る

7

ローカルに保存した静的HTMLで見るコマンドラインツールで見る

"全文検索ができる"常に最新の情報#ネット接続が必要

72007年9月30日日曜日

Page 8: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

Webで見る$Ruby編Ruby

本家(http://www.ruby-lang.org/ja/man/)

rdoc(http://www.ruby-doc.org/)

Programming Ruby 第1版もあり

8

82007年9月30日日曜日

Page 9: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

Webで見る$Rails編Rails本家(http://api.rubyonrails.org/)

http://railsmanual.com/いろいろなバージョンのマニュアルあり翻訳プロジェクト(http://techno.hippy.jp/

apidoc/)Rails南蛮通事(http://www.ey-office.com/

tsuuji/)翻訳ブックマークサイト

9

92007年9月30日日曜日

Page 10: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

Webで見る$その他編DevBoiいろいろなマニュアルがFirefoxのサイドバーから見られるようになるFirefox Plugin

HTMLJavaScriptCSSprototype.jsあんまり使わないけど一応RubyとかRails

もあり10

102007年9月30日日曜日

Page 11: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

マニュアルを見る手段Webで見る

11

ローカルに保存した静的HTMLで見るコマンドラインツールで見る

"全文検索ができる"常に最新の情報#ネット接続が必要

112007年9月30日日曜日

Page 12: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

マニュアルを見る手段Webで見る

12

ローカルに保存した静的HTMLで見るコマンドラインツールで見る

"全文検索ができる"常に最新の情報#ネット接続が必要

122007年9月30日日曜日

Page 13: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

ローカルHTML$Ruby編Ruby本家(http://www.ruby-lang.org/ja/man/)

静的HTML版Windows HTML Help版

13

132007年9月30日日曜日

Page 14: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

ローカルHTML$Rails編Rails

gem_serverコマンドラインから起動してhttp://

localhost:8088/へアクセス

14

$ gem_server[2007-09-29 04:18:52] INFO WEBrick 1.3.1[2007-09-29 04:18:52] INFO ruby 1.8.6 (2007-03-13) [powerpc-darwin8.9.0][2007-09-29 04:18:52] INFO WEBrick::HTTPServer#start: pid=9013 port=8808

142007年9月30日日曜日

Page 15: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

マニュアルを見る手段Webで見る

15

ローカルに保存した静的HTMLで見るコマンドラインツールで見る

"全文検索ができる"常に最新の情報#ネット接続が必要

152007年9月30日日曜日

Page 16: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

マニュアルを見る手段Webで見る

16

ローカルに保存した静的HTMLで見るコマンドラインツールで見る

"全文検索ができる"常に最新の情報#ネット接続が必要

162007年9月30日日曜日

Page 17: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

コマンドラインツールri

Ruby1.8標準英語

refe(りふぇ)

標準では入っていないgem install refe -y でインストール日本語

17

172007年9月30日日曜日

Page 18: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

コマンドラインツールri

Ruby1.8標準英語

refe(りふぇ)

標準では入っていないgem install refe -y でインストール日本語

18

182007年9月30日日曜日

Page 19: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

riの使い方

19

クラスメソッドはピリオド、インスタンスメソッドはシャープで指定

$ri -h % riのヘルプを表示$ri -c % riでマニュアルを見られるクラスの一覧$ri ActiveRecord::Base &ActiveRecord::Baseクラスの概要やメソッド一覧$ri ActiveRecord::Base.find &ActiveRecord::Base.findメソッドのマニュアル$ri ActiveRecord::Base#save &ActiveRecord::Base#saveメソッドのマニュアル

192007年9月30日日曜日

Page 20: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

コマンドラインツールri

Ruby1.8標準英語

refe(りふぇ)

標準では入っていないgem install refe -y でインストール日本語

20

202007年9月30日日曜日

Page 21: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

コマンドラインツールri

Ruby1.8標準英語

refe(りふぇ)

標準では入っていないgem install refe -y でインストール日本語

21

212007年9月30日日曜日

Page 22: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

refeの使い方

22

riと同様、クラスメソッドはピリオド、インスタンスメソッドはシャープで指定

$refe -h % refeのヘルプを表示$refe -a % refeでマニュアルを見られるクラス一覧$refe Array &Arrayクラスの概要とかメソッド一覧$refe Array.[] &Array.[]メソッドのマニュアル$ri Array#[] &Array#[]メソッドのマニュアル

222007年9月30日日曜日

Page 23: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

マニュアルを見る手段Webで見る

23

ローカルに保存した静的HTMLで見るコマンドラインツールで見る

"全文検索ができる"常に最新の情報#ネット接続が必要

232007年9月30日日曜日

Page 24: 070929 Ruby勉強会#5 Rails開発ツールガイド

マニュアル

24

試行錯誤ツール

デバッグツール

その他のツール

マニュアル

実装ツール

242007年9月30日日曜日

Page 25: 070929 Ruby勉強会#5 Rails開発ツールガイド

試行錯誤ツール

25

試行錯誤ツール

デバッグツール

その他のツール

マニュアル

実装ツール

252007年9月30日日曜日

Page 26: 070929 Ruby勉強会#5 Rails開発ツールガイド

試行錯誤ツールirbInteractiveなRuby入力したプログラムを逐次実行して結果を表示してくれるscript/console (Railsの場合)Rails環境を読み込んだirbRailsで独自に拡張された機能や、Rails内に自分で作成したクラスも利用可能

262007年9月30日日曜日

Page 27: 070929 Ruby勉強会#5 Rails開発ツールガイド

ちょっと横道

272007年9月30日日曜日

Page 28: 070929 Ruby勉強会#5 Rails開発ツールガイド

運用でも役に立つscript/console

script/consoleがないと

id name client_type image_path1 foo 1 /hoge/aaa/1.jpg2 bar 2 /hoge/bbb/2.jpg3 baz 1 /hoge/aaa/3.jpg

下記のようなテーブルにおいて、client_typeが1の画像だけを/tmp/zzzの下に集めてきてください。

Clients.find(:all, :conditions=>”client_type=1”).each {|c| `mv #{c.image_path} /tmp/zzz`}

SQLだけでは処理が難しいものもサクッとDBだけで用事が済まない場合SQLで書くのは大変な場合(複雑な正規表現とか)

282007年9月30日日曜日

Page 29: 070929 Ruby勉強会#5 Rails開発ツールガイド

横道しゅーりょー

292007年9月30日日曜日

Page 30: 070929 Ruby勉強会#5 Rails開発ツールガイド

試行錯誤ツール

30

試行錯誤ツール

デバッグツール

その他のツール

マニュアル

実装ツール

302007年9月30日日曜日

Page 31: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツール

31

試行錯誤ツール

デバッグツール

その他のツール

マニュアル

実装ツール

312007年9月30日日曜日

Page 32: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツールloggerobj.class とか obj.inspect<%=debug obj %>ruby-debugFireFoxLive HTTP HeadersWeb DeveloperFirebug

322007年9月30日日曜日

Page 33: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツールloggerobj.class とか obj.inspect<%=debug obj %>ruby-debugFireFoxLive HTTP HeadersWeb DeveloperFirebug

332007年9月30日日曜日

Page 34: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

logger

RailsのModelおよびController内から何の準備も無しに “logger” という変数名で利用可能出力すべきもの

obj.class (objのクラス名)

obj.inspect (objの中身)

obj.methods.join(“¥n”) (objのメソッド一覧)34

<あるコントローラー内のコード>@todos = Todo.find(:all, :order => “priority”)logger.debug(“todos=” + @todos.inspect)

342007年9月30日日曜日

Page 35: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツールloggerobj.class とか obj.inspect<%=debug obj %>ruby-debugFireFoxLive HTTP HeadersWeb DeveloperFirebug

352007年9月30日日曜日

Page 36: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツールloggerobj.class とか obj.inspect<%=debug obj %>ruby-debugFireFoxLive HTTP HeadersWeb DeveloperFirebug

362007年9月30日日曜日

Page 37: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

<%= debug obj %>

37

<あるビュー(rhtml)内のコード><%=debug @todos %><% for todo in @todos %><%= todo.description %><% end %>

RailsのView内から何の準備も無しに “debug”

というメソッド名で利用可能オブジェクトがYAML形式に整形されて表示

372007年9月30日日曜日

Page 38: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツールloggerobj.class とか obj.inspect<%=debug obj %>ruby-debugFireFoxLive HTTP HeadersWeb DeveloperFirebug

382007年9月30日日曜日

Page 39: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツールloggerobj.class とか obj.inspect<%=debug obj %>ruby-debugFireFoxLive HTTP HeadersWeb DeveloperFirebug

392007年9月30日日曜日

Page 40: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

ruby-debugいわゆるデバッガ標準では入っていないのでgemでインストール

40

$sudo gem install ruby-debug -y

402007年9月30日日曜日

Page 41: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

ruby-debug 使い方

41

ソースコード内に “debugger” と書くと、そこで処理が止まって、デバッガに制御が移るステップ実行、ソースコードの表示、ブレークポイントの追加や削除などが可能Rails本体(ActiveRecordとか)の挙動を調べたいときなどに便利RailsだけじゃなくどんなRubyスクリプトでも利用可能

412007年9月30日日曜日

Page 42: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツールloggerobj.class とか obj.inspect<%=debug obj %>ruby-debugFireFoxLive HTTP HeadersWeb DeveloperFirebug

422007年9月30日日曜日

Page 43: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツールloggerobj.class とか obj.inspect<%=debug obj %>ruby-debugFireFoxLive HTTP HeadersWeb DeveloperFirebug

432007年9月30日日曜日

Page 44: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

Firefox: Live HTTP Headerブラウザがサーバーとやり取りするHTTP

ヘッダを表示、保存、編集して再生することができる Firefox Extension

AJAXによる通信やFlashからのHTTP通信も表示可能

44

442007年9月30日日曜日

Page 45: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツールloggerobj.class とか obj.inspect<%=debug obj %>ruby-debugFireFoxLive HTTP HeadersWeb DeveloperFirebug

452007年9月30日日曜日

Page 46: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツールloggerobj.class とか obj.inspect<%=debug obj %>ruby-debugFireFoxLive HTTP HeadersWeb DeveloperFirebug

462007年9月30日日曜日

Page 47: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

Firefox: Web Developer名前の通り、Web開発者を支援する機能がてんこ盛りのFirefox Extension

Formの詳細(POST先URLや、各要素のnameなど)を見たり、hiddenの内容を書き換えたりdivやテーブルに枠をつけたり、idやclassを表示したりDOM操作後のHTMLソースを表示したり

47

472007年9月30日日曜日

Page 48: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツールloggerobj.class とか obj.inspect<%=debug obj %>ruby-debugFireFoxLive HTTP HeadersWeb DeveloperFirebug

482007年9月30日日曜日

Page 49: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツールloggerobj.class とか obj.inspect<%=debug obj %>ruby-debugFireFoxLive HTTP HeadersWeb DeveloperFirebug

492007年9月30日日曜日

Page 50: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

Firefox: FirebugWeb Developerと同じくWeb開発者向け機能てんこ盛りのFirefox Extension

HTML内のある要素にどのCSSファイルのどの記述が適用されているかがわかるJavaScriptにブレークポイントはってステップ実行

50

502007年9月30日日曜日

Page 51: 070929 Ruby勉強会#5 Rails開発ツールガイド

デバッグツール

51

試行錯誤ツール

デバッグツール

その他のツール

マニュアル

実装ツール

512007年9月30日日曜日

Page 52: 070929 Ruby勉強会#5 Rails開発ツールガイド

その他のツール

52

試行錯誤ツール

デバッグツール

その他のツール

マニュアル

実装ツール

522007年9月30日日曜日

Page 53: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

その他のツールrake

rake --tasks rake で実行できるタスク一覧rake stats ソースコードの行数rake test:recent10分以内に変更があったUnitTestファイルを実行rake test:uncommittedコミットされてないMode/Controllerのテストを実行

53

532007年9月30日日曜日

Page 54: 070929 Ruby勉強会#5 Rails開発ツールガイド

その他のツール

54

試行錯誤ツール

デバッグツール

その他のツール

マニュアル

実装ツール

542007年9月30日日曜日

Page 55: 070929 Ruby勉強会#5 Rails開発ツールガイド

/ 55

まとめいろいろなツールを駆使して、もっともっと効率よく開発しましょう!

55

552007年9月30日日曜日