DRECOM様と永和システムマネジメントの合同勉強会を2016年1月29日(金)に開催しました。
昨年の1月にも一緒に合同勉強会を開催した経緯もあり「2016年も一緒に勉強会やろうぜ!」という流れで、ブラック・ジャックをテーマにした Extreme Fish Bowl 形式での合同勉強会を開催しました。
Extreme Fish Bowl による勉強会は、前回の spice life 様との合同勉強会に次ぐ、2回目の開催となります。Extreme Fish Bowl の説明を含んだ当日の進行ルールはこちらの資料をご参照ください。
本記事では当日の流れを写真中心でお送ります。
会場は目黒の DRECOM 様
今回は、株式会社DRECOM様のオフィスが会場です。
はじめましてのメンバーも多いことから、まずは挨拶を兼ねてお手元のビールで乾杯。
ビールを片手に当日の流れを聞きます。
ペアプログラマーが1台のマシンで入れ替わりプログラミング
最初のペアによって、ブラック・ジャックを実装するにあたる足場の整理がはじまります。予め用意されていた環境はざっくりと次のとおりです。
- プログラミング言語は、 Ruby 2.2
- エディタは、Atom, Emacs, Vim
まずは RSpec を使うため Gemfile を用意するところから、最初のペアプログラミングがはじまりました。
最初は環境づくりとなります。シェルで雑に雰囲気を書くとこんな流れです。
$ bundle init
$ echo “gem ‘rspec’” >> Gemfile
$ bundle install
$ echo -e “require ‘bundler’\n\nBundler.require\n\ndescribe do\n specify { expect(true).to be true }\nend” > blackjack.rb
$ bundle exec rspec blackjack.rb
ペアが入れ替わる中で、お行儀よく RSpec によるテストコードとプロダクトコードを別ファイルに分ける構成になりましたが、制限時間内でメンバーが入れ替わる Extreme Fish Bowl だと、あえてテストコードとプロダクトコードを1枚のファイルに収める形式がスピーディーになるという意見もあり、今後の良い検討課題です。
統一されるべきはエディタよりもシェル環境!?
1台のマシンで Extreme Fish Bowl を行うにあたり「エディタはどうするの?」という声が度々あがりますが、今回はエディタの違いよりも、シェル環境のエイリアスで詰まることが多かったようです。
面白いことに、個人差はあるもののシェル環境のエイリアスについて多くのプログラマーで Convention となっているのが「なるほどな」と興味深かったです。以下は今回見掛けたエイリアスの例です。
alias g=‘git’
alias be=‘bundle exec’
alias bi=‘bundle install’
alias bu=‘bundle update’
基本的な Git のサブコマンドに対するエイリアスもだいたい似通ったものが多かったです。GitHub で公開している何名かの参加者の .gitconfig を例に上げてみます。
- @onk … https://github.com/onk/dotfiles/blob/master/.gitconfig
- @sue445 … https://github.com/sue445/dotfiles/blob/master/_gitconfig
- @kunitoo … https://github.com/kunitoo/dotfiles/blob/master/dot.gitconfig
- @mtsmfm … https://github.com/mtsmfm/dotfiles/blob/master/gitconfig
もしエイリアス未設定の読者の方がいらっしゃれば参考にしてみると面白いと思います。
onkcop のインストール
今回 DRECOM 様との Extreme Fish Bowl を特徴付けるトピックのひとつは onkcop が導入された点にあるかなと思います。
DRECOM 様で実践投入されているコーディング規約にどれだけ準拠できたのか、興味のある方は今回の Extreme Fish Bowl のコードを入手して実行して頂いてもよいですし、読者ご自身のコードに対して試してみても面白いと思います。
当日のソースコードはこちらです。
大団円。。。(とは!?)
当初の予定では、遅くとも最終電車の刻限が近づく中で最後のペアが「今日はここまでできれば Ship It としよう!」と決めたマイルストーンまでグリーンバーでパスしてフィニッシュ。。。なのですが、若干切れ目が付きづらかったこともあり何名かの有志が残って延長戦となりました。
近所で開催されていた Tokyu.rb新年会2016 から @joker1007 や @2celb が延長戦に駆けつけてくれて、大幅に拡張された時間でホワイトボードディスカッションなど行われたりしております。
Extreme Fish Bowl が終わった後は、開発環境の話の流れで「ghq と amatsuda/gem-src は開発環境として組み込んでおくべき」といった話や、「トニーモリスミートアップ」についての話と多岐に渡った談話で朝まで盛り上がっておりました。
Extreme Fish Bowl での合同勉強会とても楽しかったです。また第三弾の企画があがった際には是非よろしくお願いします。
株式会社 永和システムマネジメント アジャイル事業部では、一緒に Ruby をもちいたアジャイルソフトウェア開発をしていくメンバーを社員、パートナーともに募集しております。興味のある方は Wantedly までご連絡ください。