アーカイブ

‘Ruby’ カテゴリーのアーカイブ

『Everyday Rails – RSpecによるRailsテスト入門』のベータ版を公開しました。

2014 年 2 月 7 日 件のコメント
本日、私たちEverydayRails日本語版翻訳チームは『Everyday Rails – RSpecによるRailsテスト入門』のベータ版を公開しました。

20140109075137

本書はAaron Sumner氏のblogである Everyday Rails Blogの内容に基づく6つの章と本書の為に書き下ろした6つの章、本書の為のサンプルRailsアプリケーションで構成されています。

本書の日本語版翻訳チームのメンバーも本書でRSpecを学んでおり、オススメの良書です。 テストの有用性や便利なツールを説明しながら、実際のところのメリット・デメリットが書かれていて実践的な内容になっています。 著者のAaron氏はサンプルアプリケーションを使ってテストの組み込み方を説明しながら、それでもまずは自分自身のアプリケーションに対してテストを書いてみる事の重要性を説いています。

Railsアプリケーションは作った事はあるがテストを書いた事がない方など、これからRSpecを学ぼうという方はもちろん、周囲でRSpecでお困りの方がいらっしゃいましたら是非ご紹介してあげてください !!

Everyday Rails – RSpecによるRailsテスト入門

本書はLeanpubという電子書籍出版サイトでPDF,EPUB,mobiファイルで提供しています。 今回はベータ版の公開で正式版は2月末の公開になりますが、お買い上げいただいた方には正式版はもちろん今後の改定版をお受け取りいただけます。ベータ版公開とともにレビューの方々にレビューしていただくと共に、翻訳チームでも随時改定を入れていきます。

購入方法など詳しくは伊藤さんのBlog give IT a try もご覧ください。

これまでとこれからの謝辞

今回の日本語版公開にあたり、原書の執筆者Aaron Sumner氏には随時質問に応じていただいた上、日本語版に向けてのメッセージをいただきました。ありがとうございます。また電子書籍の個人出版サービスのLeanpubのMike Rowe氏、Scott Patten氏には日本語フォントの対応についてご尽力いただきました。日本語フォントについての問題を事前に指摘し対応方法を検討されていた Hirohisa Kawaseさん(@HiroKws)、あおぞら明朝を教えてくれた @thc_oOさん。Leanpubで翻訳を始める際に色々とアドバイスをしていただいた角征典さん。『リーン開発の現場』翻訳の経験則からアドバイスしていただいた藤原大さん。ありがとうございます。これからお世話になるレビューの方々、書評を書いていただく予定の方々、これからよろしくお願いいたします !!

巧みな英語力を活かし、チームをドライブしてくれた伊藤さんには本当に感謝です。Aaron氏やleanpubさんとのやりとりでは英語力の瞬発力を存分に発揮してくれました。先に翻訳に着手してくれていた魚さんにも感謝です。おふたりともありがとうございます。これからも正式版への修正にむけて頑張りましょう。そして原文の解釈に悩んだ際に助けてくれた西脇.rbのマイケル、ありがとうございます !!

最後に、本業や翻訳、コミュニティ活動で忙しくなる自分を精神面、体調面で支えてくれている妻と愛猫に感謝します。いつもありがとう。

カテゴリー: Ruby タグ:

『西脇.rb & 東灘.rb ペアプログラミング In Action』を開催しました #nshgrb #ruby

2013 年 10 月 2 日 件のコメント

こんにちわ。 東灘.rbの Aki(@spring_aki) です。

西脇.rbの伊藤さん(@jnchito)と一緒にやっている西脇.rb & 東灘.rb 合同もくもく会ですが、今回はもくもく会から飛び出して 『西脇.rb & 東灘.rb ペアプログラミング In Action』 というのを開催しました。

いつもはわりと神戸市内での開催が多いですが、今回は西脇方面で開催したいという事で西脇市のふたつお隣にある 小野市うるおい交流館エクラ という施設をお借りして開催しました。

なんという贅沢な空間 !!  ふかふかの芝生の上でRubyのコード書くのはなかなか気持ちいいです !

なんという贅沢な空間 !! 青々とした芝生の上でペアプログラミングに興じている様子 ふかふかの芝生の上でRubyのコード書くのはなかなか気持ちいいです !

こんな芝生を会議室として提供しているなんて、さすが “うるおい交流館エクラ” !!

というのはもちろん冗談で、芝生エリアは会議室ではありません :) ただこの芝生エリアは自由に立ち入り可能なのにだーれも芝生にいる人がいないので、僕が「こんな贅沢な空間使わないのもったいない!! 芝生の上でみんなで写真とろう!!」というわがままをみんなが聞き入れてくれて実現した写真です。KobeRubyistMeetupといい今回といい、みなさんいつも僕のわがままに付き合ってくれてありがとう。

最初は「えーっ! ホントにこの上でやんの !?」と言っていたみなさん

最初は「えーっ! ホントにこの上でやんの !?」と言っていたみなさん

ひとりが寝っ転がったりすると...

ひとりが寝っ転がったりすると…

なんかみんな楽しくなってあっという間にこういう状態に...ひとりはルンルン気分で片足上げてるしw

なんかみんな楽しくなってあっという間にこういう状態に…ひとりはルンルン気分で片足上げてるしw

なぜペアプログラミングなのか

なんでなんでしょう。そもそも我々の西脇.rb & 東灘.rb 合同もくもく会ではコードをもくもく書くという事にプラスしてコードレビューを必ずやる。という基本事項があります。これはコード書きっぱなしで自己満足してもしょうがないし、どうせなら他人の目に触れる状態でみんなでどんなコードが良いのか悪いのかディスカッションしたいよね。という思いがありました。

ですが、コードレビューするという事はそれだけ余分に時間を確保せねばならないという事です。1人15分でも10人で2時間30分。1人15分でも少ないかもしれないと思っているのに、このまま人数のスケールアウトはできないな。と悩んでいました。

また今回は西脇方面で開催したいという強い思いがありました。それならいっそのことイベント感を出して遠くに行くのも苦ではない状態にしてしまえ(神戸側のメンバが多いので) !! というのがペアプログラミング in Actionになったきっかけでしょうか。

(西脇方面)小野市は三宮から電車で1時間ほどで行けるにも関わらず、小旅行感が満喫できるいい立地でした。エクラという施設は設備がキッチリ整っている割に立地のせいか利用料が異常に安いのでまた使わせていただきたいなぁと思える施設でした。(できれば芝生が青々として時期にまた行きたい)

なぜ小野市開催なのか

何度も重複して言ってしまってますが、西脇方面で開催したいという思いがありました。ですが調べた限り西脇市では設備面やアクセス面で条件を満たす施設はありません。そこで近隣施設を探した所小野市の施設が見つかったという事です。

ペアプログラミングの題材はどうしたの?

課題は各自持ち寄りとしました。その中で投票で2問選び出したのが、開発環境を準備したりペアプログラミングについて話しあったりとなかなか課題自体の進みは遅く結局一問だけ解く形になりました。

課題は伊藤さんが持ってきた CodeBreakerというものです。 RSpec本に載ってる問題ですね。

それから個人的にオススメの問題は TDDBC Osaka 2.0の課題で扱われた自販機問題です。 これは本当に良くできていて皆さんにオススメしています。先のSTEPは見ずに解くのがオススメですね。

なにか注意した点とかあるの?

ペアプログラミング未経験者と経験者が半々でペアを組むようにしました。 (なのでスライドにはペアプログラミングについてのやり方などには触れていません)

スライドにも含めましたが、自分なりに気をつけてもらいたかった点は コーディングのスピードを競うものではないので、ゆっくり咀嚼しながらやっていって欲しかったという事です。

ついつい同じ問題を解くとなると、技術者魂なのかなんなのかスピードを競っていつのまにかタイムアタックのような感じになってしまいませんか? それをやってしまうと、せっかく初めてのやり方を学習しようとしているのにその場の雰囲気に流されて疑問に感じたりディスカッションしたりしたい部分をおざなりにしてしまったりしてしまいます。

私がTDDBCのコーチをやった時や誰かに何かを学習してもらう際には、意識的にスピードにはこだわらないように伝えている事が多いです。

誰しもが何かを学ぶ時、スピードは遅く効率は悪いものです。慣れれば自然とスピードは上がります。 その本質をゆっくりと理解するように務め、慣れていきましょう。

“習う”は”慣れる”、”学ぶ”は”真似る(まねぶ)”

私の好きな言葉に “習う”は”慣れる”、”学ぶ”は”真似る(まねぶ)”というのがあります。 “習うより慣れろ“とは良くいいますが、人や本から教わるよりも、自分で練習や経験を重ねたほうが、よく身にも付くいうことです。そして”学ぶは真似る”とは学ぶと真似るが同じ語源と言われるように学ぶことは真似ることから始まるのではないでしょうか。今回のペアプログラミング in Actionは慣れることを目的としてものです。ぜひ皆さんも実践の為のActionを起こしプログラミングに慣れていって欲しいと思います。

カテゴリー: Ruby, 未分類 タグ:

西脇.rb & 東灘.rb 合同もくもく会 3rd を開催しました ! #nshgrb

2013 年 5 月 12 日 件のコメント

今回で3回目の開催となりました。西脇.rb & 東灘.rb 合同もくもく会 3rd

参加者の江口さん(@ryo1116)のご好意により、神戸電子専門学校さんの教室をお借りすることになりました。江口さんありがとう !

新しい企画

今回はお試し企画としてみんなでMVP賞を決めてみました。 それぞれのもくもく内容で、これが一番いいなと思えるものに1人1票投票して決定します。(いいなとおもえる基準はそれぞれで考えてくださいという前提。)

合同もくもく会共同主催者の伊藤さん(@jnchito) とはいつもどういう場づくりをしていこうかを話し合っているのですが、今回からはMVP賞や懇親会とかもやってみようかという話になって、取り入れてみました。伊藤さんには特にコードレビューで他の人より色んなツッコミを多くしてくれるのでとても参考になります。うまく場作りしてくれて助かっているし、勉強になってます !

はじめてのMVP賞 / 念願の懇親会

さて本題。今回 MVP賞を獲得したのは西田さん(@sutetotanuki)でした ! パチパチパチ !! 西田さんはSPDY関係とRubyのThreadについての調査報告をしてくれました。 “新しい試みをしている。”、”興味が湧く内容だった” という意見でみんなの関心を集めたようですね。 おめでとうございます !!

西田さんのテーマはコチラ

西脇.rb & 東灘.rb(第3回) SPDYでRails動かすまで + Rubyのthread調べた – Mame the hack

あと特筆すべきは初懇親会が盛り上がって良かったということでしょうか。このもくもく会としては意外に初なんですよね。懇親会。

寺田(@aq2bq)さんが 「念願の懇親会で思う存分みなさんとお話できて楽しかったし、技術的な質問にも答えてもらって大収穫だった。」と言ってくれていたのでよかったです。幹事も率先して引き受けてくれてありがとう。

ああいう場を作って雑談ベースで話ができるのってやっぱり貴重ですよね。 雑談から”悩みの共有”や”暗黙知の共有とすり合わせ”ができるのは対面する事で形成する人間関係、信頼関係のなせる技だと思います。

みんなの拠り所としてこの場の価値を感じてもらえているようなのでホントに良かったなぁと思います。 なんかみんなで協力して場を作っていってるなぁと実感する日々です。感謝です !

雑談で伝えたこと

帰りに西田さんや初参加の @yohm13 さんと色々喋っていたのですが、顔見知りの範囲内・少人数という制限付きで何か具体的な技術内容を30分くらい喋ってもらうのもアリだよねー。みたいな話をしてました。発表者・参加者で分かれてしまう雰囲気のものではなくて、随時横からツッコミが入るような対話形式の雰囲気のものを想定しています(感覚論で伝わりにくいと思うのですが…)。実際そういう前者の雰囲気のものでは喋りにくいけど、後者の雰囲気のものなら喋れるかも! とお二人の感想もいただいてます。 もくもく会の中でやるか、別の機会にするかはわからないですが、一度試してみるのもいいかもなぁと思いました。 盛り上がった話は別枠で時間設けて話する機会を作るのもいいかもしれないですね。

ふりかえると

みんなと話していて “この仲間達はなかなか得難いものだ” と思いました。 偶然なのか必然なのかそれぞれにキャラの立った人達が集まっていると思います。 (上には書ききれなかったけど、なかなか濃いメンツですよ。ホントに)

この “楽しい” を継続したい。

この “繋がり” で得られるものを深めたい。

という事を強く想う回でした。まる。

肝心の課題について…

今回の自分のもくもくテーマについてはなかなか進まなかったので、やはり日々の鍛錬が必要だなぁと思いました。もっとアウトプットしなければ。

カテゴリー: Ruby タグ:

RailsGirlsKyoto 1st ふりかえり

2012 年 12 月 31 日 件のコメント

http://www.flickr.com/photos/hsbt/8275763891/

 

大盛況だったRailsGirlsKyoto 1st. あれから2週間経ち今年も終わろうとしています。

RailsGirlsKyotoでは事前事後でわりとバタバタして大変でしたが、自分にとってかけがえのない経験になった事は間違いありません。 なにより参加者の皆様からは想像以上の反響を頂きました。イベント自体が楽しかった事や Ruby, Railsに出会えて良かった事などもアフターパーティーで熱く語っていただいたのが特に印象的で「more イベントに是非参加したい。第2回の開催をしたい。お手伝いしたい。」など具体的な内容も耳にしました。Girlsだからなのか京都だからなのかはわからないのですが、皆さんからはすごくパワーを感じました。 (当日の様子は公式blogで !)

続きを読む…

カテゴリー: Development, Ruby タグ: , ,

cucumber で javascript テスト

2011 年 5 月 11 日 件のコメント

cucumber で javascriptテストなどをする場合はシナリオごとに @javascript タグを付ける。 テストを実行するとなんらかのWebDriver (デフォルトはselenium) がブラウザを起動して テストを実行するわけだが、alert や confirm が邪魔になる場合がある。 これらの確認をする必要がない場合は単純に alert や confirm を上書きして なんの挙動もしないようにしてしまえば良い。

さらに web_steps_ja.rb に利用部品として書いて好きな時にユーザが呼び出せるようにしてしまえば良いかな。

web_steps_ja.rb

module NotificationHelpers
  def ignore_notification(page)
    page.evaluate_script("window.alert = function(msg) { return true; }")
    page.evaluate_script("window.confirm = function(msg) { return true; }")
  end
end
World(NotificationHelpers)</p>

<p>前提 /^通知を無視する$/ do
    ignore_notification(page)
end

test.features (サンプル)

     @javascript
     シナリオ: 〜〜〜を登録する
     前提     ログイン名が&quot;xxxxx&quot;、パスワードが&quot;yyyy&quot;のユーザでログインしている
     前提     &quot;〜〜〜登録&quot;ページを表示している
     前提     通知を無視する</p>

<pre><code> 〜以下任意のテスト〜

 もし         〜をクリックする
 ならば     〜が表示されていること
</code></pre>

<p>

上記テストを実行するとブラウザが勝手に起動してテスト動いていくので selenium に免疫のない人はびっくりしないように :-)

カテゴリー: Development, Ruby タグ: , , ,

cucumber の paths.rb で DBの値を利用する

2011 年 4 月 26 日 件のコメント

そもそも paths.rb の中で Model使えるのかとか思ったのですが、なんの事はない。普通に User.find(123) とかできるのですね。ちゃんと理解していないからこんな疑問が発生するのでしょう。

それはさておき。

when /フォロワーが([0-9]+)人いるユーザのプロフィール画面/
    user = Users.find(:first, :conditions => { :follower => $1.to_i} )
    edit_user_info_path(user.id)

([0-9]+) など、正規表現でマッチングさせておきと $1 で値渡してあげれば OK 正規表現のマッチングで () 内にヒットしたものが $1, $2…となるのを知らない人は意外にいるようだ。

paths.rb っていうか、結局 routes.rb の話なんだよね。

カテゴリー: Development, Ruby タグ: , ,