よちよち.rbの第22回に参加しました
自分の中でのライフワークとしてすっかり定着しつつある、よちよち.rbの 第22回ミートアップに参加してきました。
よちよち.rbでは毎週それなりにしっかりと時間を取って自己紹介をしているのですが、 その中で、このブログが話題に上がったこともあり、参加の記録を書き残そうと思います。
自己紹介
先述の通り、よちよち.rbでは毎回それなりに時間をかけて(30〜40分程度)自己紹介をしています。 事前にその週に話すお題が決められているのですが、毎月最初は今年の目標の進捗確認をするのが定番になっています。
私の今年の目標は、「アウトプットをする」「何かアプリを作る」にしていて、 このブログもアウトプットの目標による実行結果の1つになっています。(あまり更新出来ていませんが。。。)
ブログはあまり更新出来ていなかったのですが、最近、LTをもっとやりたい、ということから、 社内で「LT大会」を企画して実行した、という話をしたところ、思いの外好評なリアクションをたくさん頂きました。
ちなみに、この「LT大会」はtokyu.rbからヒントを頂き、基本的に参加者は必ずLTをする、 持ち時間5分で強制終了、というシステムを取っています。あとLT王も投票で決めています。 月に1回ぐらい開催する予定で、あまり弊社にはエンジニアがいないのですが、非エンジニアにも参加頂き、すこぶる好評でした。 これを書きながら思いましたが、次回の開催後にはブログに様子を書きたいと思います。
あと、よちよち.rb終了後に、@altarf8先生と話していたら、先生も社内で同様のことを実施されているそうで、 合同開催とかもおもしろそうですね、というなかなか熱い話が広がってきました。
そもそもLTとかブログとかを始めるきっかけがよちよちだったりするので、 よちよち.rbを通じて良い経験をたくさんさせて頂いているな、とつくづく感じました。
@odailly_jp先生を祝う
これはもう純粋に記録なのですが、@odailly_jp先生がめでたくRailsエンジニアになられることが決まったようで、大変にめでたいことです。もしかしたら仕事で絡む機会もあるかもしれないので、そちらも楽しみにしたいと思います。
Railsチュートリアル
ここからは本編のRailsチュートリアルで勉強した内容のメモです。
今回は 3.2.1テスト駆動開発 から
DSLって何者なのか
RSpecのお勉強をしていて、RSpecがDSLを定義していることで、自然言語っぽく書ける・読める、という内容は良いんですが、 よく聞くDSLっていったい何者なのかがそこまで腑に落ちていない感じがします。
Ruby以外で使うDSLも自然言語っぽいのか、Rubyだから自然言語っぽいのか、とか、疑問もあるので、後日もうちょっと調べてみたいなと思います。
test-unitとRSpecの違い
これも結論は出ていないんですが、test-unitとRSpecは何が違うのか、という話題が出ました。以前のよちよちでも同様の話題が出ていてそのときIssueにもなっていて当時調べたのですが、test-unitはTDDでRSpecはBDDみたいな印象を持ちました。
※TDDの文脈でRSpecが出てくることもあるので、これは正確な整理ではないと思います。
RSpecではクラス内のprivateメソッドのテストはしないけど、test-unitはする、とか、
test-unitはベタでRSpecの方がメタ、とか、色々な話を見聞きしましたが、
結局目的に合った選択をするのが一番だろうということで、まずはやってみたいと分からない、という結論が良いのかな、と今のところは考えています。
ヘルパーとは?
引き続き答えのない記述が続きますが、色々話を聞く中で「ヘルパー」という単語に何度も遭遇していますが、これの意味が良く分かっていません。ヘルパーファイルとかヘルパーメソッドとか、何をヘルプしているのか、Ruby用語なのか他の言語にもある存在なのか、、、
これも後日調べてみたいと思います。
TDD楽しい
はじめてのTDDという感じでRailsチュートリアルに沿って「Red」→「Green」の流れを実行しましたが、期待動作を先に書いて実装をしていく、という噂に聞いたこの手順を実施するのがとても楽しかったです。こうした手順を踏んで、一刻も早く恥ずかしくないコードが書けるエンジニアになりたいものです。
Capybara と Selenium
今回の範囲ではCapybaraを扱ったので、他の参加者の方々は結構Capybaraの持ってるメソッドとかを掘り下げたりしていました。
今回、私自身はあまりCapybaraを調べたりはしなかったのですが、今ちょうど業務でSelenium WebDriverを書きまくっているので、Capybaraの話を聞きながら、Selenium WebDriverと持ってるメソッドが似てるなーと感じていました(当たり前ですが)
それで、実際、CapybaraとSelenium WebDriverは何がどう違うのかな、という疑問が生じました。capybaraの方がcucumberとかと連携しやすかったりするんでしょうか。これも書いてみるのが一番ですかね。