ラベル #tddbc の投稿を表示しています。 すべての投稿を表示
ラベル #tddbc の投稿を表示しています。 すべての投稿を表示

2014年3月31日月曜日

ミニTDDBC presented by yokohama.devtesting(2014/3/30) に参加してきました #tddbc #devtesting

ミニTDDBC presented by yokohama.devtesting(2014/3/30)
http://yokohama-devtesting.doorkeeper.jp/events/9525

ミニTDDBC

今回はyokohama.devtestingが主催となって行われました。



対象はJava利用者に限定したので、どれくらい参加者がいらっしゃるのか予想が出来なかったのですが、TAのサポートできる範囲内で収まってよかったと思います。

参加者の方で普段はJavaを使っている方が少なかったのは、ちょっと意外でした。
とはいえ、躓いたり、トラブルに遭遇することなく、イベントを進める事が出来てよかったと思います。

TDDの進め方を実践して何かを掴んで頂けたり、ペアプロの楽しさを実感して頂けた模様なので、お手伝いをした側としては嬉しい限りです。

TAと参加者の人数が上手くFitしてサポートが出来たと思っていますが、やはり会場の制限で時間が足りないと感じました。
足りないと感じた点や、現場へ持ち帰った後に気づいた事等をyokohama.devtestingで共有出来ればいいなと思います。

おわりに

今回の経験を踏まえて定期的に開催出来る方向に持っていければいいなぁと思っているので、今後ともyokohama.devtestingをよろしくお願いします。

主催の@setoazusaさん、参加者の皆様、スタッフの方々、ありがとうございました。

2013年12月15日日曜日

javascript-mochaのskeletonを作ってみた #TddAdventJp

はじめに

このエントリは、TDD Advent Calendar 2013の15日目の参加エントリです。
14日目は、@jeffsukeさんの Objective-CとTDD です。
16日目は、TDDBCでもお世話になっている、a-suenamiさんのTDDが僕に教えてくれたこと #TddAdventJpです。

きっかけ

作ろうと思ったきっかけは、東京Node学園祭2013に参加した時にしたLTです。

東京Node学園祭2013 に参加してきました #nodefest
LT資料 #nodefest 2013

Node.jsを本格的に学びたいと思っていた時だったので、まず何から始めたら良いのか考えてました。
そこで、考えたのはTDDBCの逆をやってみるということです。
TDDBCでは言語はそれなりに知っているけど、TDDをどのようにしたら良いのか分からないという人を対象にしています。
今回の私は、TDDをどのように進めていくのかを知っているが、フレームワークがよくわからないという状態です。
ですので、まずはskeletonを作ってそこから始めるということを考えました。

power-assert

個人的な希望として挙げていた twada/power-assert を軸に他のskeletonを参考にGruntのpluginを選びました。
Gruntからmochaを実行するpluginは、いろいろ試してみてgrunt-mocha-cliを選択しました。
初めpower-assertが利用しているespowerをGruntから利用するpluginについては、grunt-espowerを選択してみましたが、@t_wadaさんからespower-loaderを試してみては?と提案されましたので、試したところGruntfileもスッキリしました。
ありがとうございます。

今回、作成したskeletonはこちらです。 -> tddbc/javascript-mocha

これで、mochaを使ってTDDを始める下地が出来ました。
まずは、power-assertを使って過去のTDDBCのお題を実践してみようと思います。

出来れば、このskeletonをYeomanから呼び出せるgeneratorを作ってみようと考えております。

最後に

新しい言語、新しいフレームワークを知るには、学習テストをこなすことが大切だと思っています。
その言語のテスティングフレームワークを知ることが、その言語を習得するには最適だと教えていただいた事がありました。
TDDBCの良い特徴の一つに、違う言語でもお題が一緒なので、同じコンテキストでコードを読むことが出来る事だと思っているので、それを活かして学んで行ければ理解も深まると思います。

もし、TDDで別の言語を学ぶ際には、http://devtesting.jp/tddbc/を覗いてみてはいかがでしょうか。
過去の募集内容に言語が書かれていると思いますので、そこには、始めるために必要なことがおおよそ見つかると思います。
そして、https://github.com/tddbcには各言語のskeletonが用意されています。
あとは、TDDBCに参加された方々が公開されているレポジトリもありますので、見つけてみてください。

私もTDDBCのNode.jsの希望者が増えた際にもサポート出来るようになりたいと思いますので、今後共よろしくお願いします。

2013年10月7日月曜日

TDD Boot Camp 横浜 3rd に参加してきました #tddbc

TDD Boot Camp 横浜 3rd
http://tddbc.doorkeeper.jp/events/5751

2013/10/05 TDD Boot Camp 横浜 3rd #tddbc
http://togetter.com/li/572791

TDD Boot Camp

今回で3回目となるTDDBC 横浜が無事開催されました。
今回は、JavaとGroovyとJavaScriptのTAとして参加いたしました。

前回のTDD Boot Camp Tokyo 2013-07 に参加してきました #tddbcのTryとしてJavaScriptのテスティングフレームを習得して、JavaScriptでもTAを出来るようにするという課題を課していました。
当日までになんとかQUnitとJasmineを習得して望むことが出来ました。

@t_wadaさんがいらっしゃらないTDDBCは、個人的には初めてなので、どんな感じになるのかいろいろと不安でもあり、どこまで出来るのか楽しみでもありました。


@t_wadaさんの考えと@yattomさんの考えを同時に聞け、一粒で二度美味しいと思える内容でした。
基調講演をしてくださった@yattomさん、ありがとうございました。

今回スタッフのタスク管理としてTrelloを利用していましたが、場所がバラバラであったりするような場合は、こういったツールを使うことで昔に比べてだいぶ情報共有がしやすくなったのではないかと感じました。
あとは、スタッフのほとんどがアジャイルサムライ横浜道場に参加されていた事で、チームとして動くことが出来たのではないかと思いました。
そういった場を作ってくださったアジャイルサムライ横浜道場にも、感謝したいと思います。

午後のハンズオンでは主に、JavaScriptのTAとして動いてました。
2ペアともJasmineを使っていましたが、それぞれのペアで違った方法だったのが印象的でした。
なので、主にツールよりも進め方や考え方に重みをつけてお手伝いをするようにしました。
それが上手く伝えられていたかどうか不安ではありますが、後半になるにつれてどちらのペアも話し合って自分たちで解決していた様子でした。
Jasmineに慣れているTAとして@joker1007さんがいらっしゃったおかげで、分からない点を聞けたのが、とても助かりました。

KPTの内容やTwitterのタイムラインを見る限りでは、概ね好評であったのと何かしら得られたのでは無いかと感じました。

懇親会

懇親会では、飛び入り参加でLTをされる方がいらっしゃったのが、とても印象的でした。
参加者の中には、アジャイルサムライ横浜道場に参加されたことがある方も多かったのが、そういう雰囲気を創りだしたのかなと思います。

LTのネタを作るまでの経緯は、以下の様な感じです。

前回の課題をこなすために、まずQUnitについて調べ、普段のプロジェクトでも少しづつ使い始めました。
その際にPhantomJSをGradleから使えるように出来ないかと考え、Gradleのプラグインも作ってみました。

折角、PhantomJSをGradleでも使えるようにしたので、LTのネタにしてみました。


この時点からJasmineを習得し始めました。
Jasmineのintroduction-1.3.1.jsを写経して動かして見ながら使い方を学んで、あとはPhantomJSで実行する方法とレポートに出力する方法を調べてました。

発表に使ったサンプルはこちらです。


実際の発表は、だいぶお酒が入っていたのでgdgdでしたが、だいたい伝えたいことは話したと思います。


このツイートの真相については@xxxcaquiさんの
TDD Boot Camp 横浜に行ってきました!のTDDBCのスケーラビリティについてに書かれている通りです。


最後に、今回の懇親会の内容は、この一言に尽きます。

おわりに

個人的にTDDに関するイベントのよさは、他の言語のプラクティスを知れたり、各自で実践・練習してきたことに対して確認する機会を得られることではないかと考えています。
そういった機会は、TDDBCに参加して何かしら得たものを活かしたいと思ってくだされば、増えていくのではないかと思います。

主催してくださった@setoazusaさん、参加して下さった皆様、スタッフの皆様、会場を提供して下さった株式会社アットウェア様、ありがとうございました。

2013年8月12日月曜日

TDD Boot Camp Tokyo 2013-07 に参加してきました #tddbc

TDD Boot Camp Tokyo 2013-07
http://tddbc.doorkeeper.jp/events/4663

TDD Boot Camp

開催からだいぶ経ってしまいしましたが、今回の件の感想が少ないとのご要望もあった模様なので、書いてみます。

今回は、JavaのTAとして参加してきました。
東京での開催にも関わらず、大阪や名古屋からTAの方がいらっしゃったりと、TAの方が多く大変助かりました。

一部ではC#の募集がないとのご指摘もありましたが、個人的にTAの方が受け持てる言語で行うのが妥当だと思っていますので、是非C#でTAの出来る方がいらっしゃれば、いつでも歓迎いたします。

個人的な印象としては、JavaScriptの希望者が確実に増えていると思いました。
JavaScriptでのテスティングフレームワークの移り変わりが早く、デファクトスタンダードが無いということ知りました。
特にPerlやRuby、Nodeなど別の言語のテスティングフレームワークのエッセンスを取り入れた為、フレームワークによってバラバラだという点も興味深かったです。

今回も@yattomさんと一緒にペアプロのデモをさせていただきました。
今回の反省点としては、Javaに特化した説明をしてしまった為、他の言語の参加者には分かりにくい内容になってしまっていたと思います。
今後のデモの課題として、個人的に感じたのは以下の内容です。

  • 設計とプログラミングのステージの割合や切り替えのタイミング
  • リファクタリングのタイミング
  • ドライバーとナビの交代のタイミング
  • TODOリストの使い方の説明
  • 言語やIDEに依存しない程度の説明

今回のイベントで一番印象に残ったのは、やはりGOOS本の原著者、Steve Freeman氏が参加されたことでしょう。
講演や、ペアプロでの成果の発表、等トップレベルの人のコードを見たり、解説してもらえることは、やはり刺激的で面白いと感じました。
いろいろと技術的なことも踏まえた通訳をしてくださった@yattomさん、ありがとうございました。

その他にもいろいろと勉強になることが多く、参加してよかったと思いました。
また、KPTの文字起こしをしていても参加者の方々がそれぞれ自分たちの課題を見つけられたり、何かしら得られていた様子なので、よかったと思いました。

おわりに

次のTDDBCでは、いくつかJavaScriptのテスティングフレームワークを習得してJavaScriptのTAも出来るようになりたいと思いました。

主催の藤原さん、TAの皆様、運営を手伝って下さった皆様、会場を提供して下さった楽天様、ありがとうございました。

2013年3月20日水曜日

TDD Boot Camp Tokyo 2013-03 に参加してきました #tddbc

TDD Boot Camp Tokyo 2013-03
http://tddbc.doorkeeper.jp/events/2904

2013/03/16 TDD Boot Camp Tokyo 2013-03 #tddbc
http://togetter.com/li/473108

はじめに

今回は、JavaかGroovyのTAが出来ればと思っていたのですが、Groovyの希望者がいなかったためJavaのTAとして参加しました。
始まる前に開催予定である長岡の@masaru_b_clさんと福岡の@Spring_MTさんを囲んだランチミーティングにて、TDDBC横浜での経験を伝えました。
いちスタッフとして参加した程度の経験なので、主催者にとって役に立つのかは分かりませんが、スタッフがこういう風に動いてましたよといったような内容であれば参考にしてもらえるのではないかと思い、話しました。

@t_wadaさんのTDDでの講演は、初回での横浜以来なのでTDDをこれから始める自分を振り返ってみて、「今の状態はどうなのか?」「最初に感じたあの感動を忘れていないか」と自問自答しながら聴いていました。

TDD・ペアプロのデモ


TDDのデモということで、@yattomさんとFizzBuzzをお題にペアプロをやりました。
打ち合わせでは最低限程度の共有しか出来てなかったので、ほぼぶっつけ本番かつペアプロ自体TDD in Action以来久しぶりだったのですが、プロトコルがあったおかげでなんとか出来ました。
個人的にペアプロのいいところは、自分が考えていること相手に説明することで、考えを整理出来たり、相手がどういう思考でそういう考えに至ったのかを知ることが出来るところだと思っています。

TODOリストについてですが、紙でも電子媒体でもペアが合意すればどちらでもいいと思います。
ただし、どちらともどこまで進んだのか、やらないこと、未確定なことなど、その都度メモを残すことを忘れないことが大切だと思います。
あと、運営側の振り返りでも出て来ましたが、全て書きだしてから始めるのは、完璧な設計に陥る兆候だと思います。
個人的にはアジャイルのプラクティスを参考に、タスクの優先順位づけをして最も重要なものが終わった時に、改めてやるべきことや見落としてることなどを洗い出して、また優先順位を付けて続けるのがいいのではないかなと思います。

Boot Camp

JavaのTAでしたが、ペアの振り分けの結果、Mac、JISキーボード、IntelliJ IDEAでペアを組めるのが私しかいなかったため、急遽ペアを組むことになりました。

私達のペアは、話し合った結果dumpの実装から始めました。
dumpを選んだ理由は、他のgetとsetは、中身の確認を行う必要があるので、確認する手段としてdumpを先に実装してから確認しながら行えばいいのではないかと考えたからでした。

個人的には、TDDBCではお題をこなすことに意識してしまいがちで、リファクタリングをどのタイミングで行うのがいいのか掴む機会が少ないと感じていました。
今回のような文字列をフォーマットして出力するという処理には必ずリファクタリングができるタイミングがあるので、あえてdumpを選びました。

dumpから進むためには、内部で値を保持する状態を「setup」で作る必要があるので、コンストラクタに「setup」で生成した値をセットできるようにして、完了後に塞ぐという手段を取りました。こうすることで、リフレクションで内部アクセスしたり、アクロバティックな方法でテストする必要がなくなります。
また、テストを補助するためのメソッドも予めテストを書いてからパッケージプライベートで実装する手段も取りました。
ただしライブラリを作ったりする際はこういったアプローチが出来るのですが、レガシーコードなどを扱う場合はまた別のアプローチが必要になります。

TDDBCでは、参加者層によってはGitHubやBitbucketにアクセスしたことがないメンバーもいらっしゃるので共有される成果物が少ないです。
また、アクセス出来る人達もpushする際には歴史改変したり、最終成果のみpushするので途中経過を見ることが出来ないことが多いです。
今回のお題に似た内容で途中経過が分かるのが、ぺけまにありました。
TDD Live 番外編(TDD序破Q)
TDD 序破Qの世界へようこそ!
Groovy + Spockで書かれていますが、説明が補足されているので分かりやすいと思います。

DVCSに関しては、TDDBCで扱うには時間が足りないので扱われませんが、そちらはSCMBCや各DVCSのコミュニティでの勉強会がおすすめだと思いますので、ぜひTDDBCに参加された方でDVCSに興味を持たれたら探してみてはいかがでしょうか。

今回のTDDBCで印象に残ったのは2つです。
まずは、Javaのテーブルでは「JUnit実践入門 http://gihyo.jp/book/2012/978-4-7741-5377-3?ard=1363786051」があったことです。
事前に打ち合わせなくペアに一つは必ずある状態だったことは、TAとしてもありがたい状況でした。このおかげでコンテキストの共有が出来て、より深い内容の質問されたことでTAをやってて良かったと実感できました。
TDDBCに参加してみたいと思ったけど不安がある方は、「JUnit実践入門」を手にとってみてください。@irofさんがJUnitの依存性で章のカテゴライズをしてくださっているので、参考になると思います。
JUnit実践入門の感想とJUnit依存具合と読書会と #junitbook
http://d.hatena.ne.jp/irof/20121123/p1

次に、Scalaのペアの発表に出てきたSpecs2のhtml reportでした。
それに触発されて野良LTでGradle + Spockのアピールを即席でやりました。
話の内容としては、Javaの実装に対してGroovyやSpockでテスト書くといいよ的な話と、Gradle使えばレポートも綺麗ですよという感じです。

おわりに

今回のレポートもこちらにまとめられているので、TDDBCに参加したいけど東京は遠い、でも長岡や福岡なら近いと思われた方や次回参加してみたいと思われた方は、参考にしてみてはいかがでしょうか。
TDDBC Tokyo 2013-03 の参加レポートたち #tddbc
http://matome.naver.jp/odai/2136365798061279801

主催してくださった@katzchangさん、講師の@t_wadaさん、TDDBCのスタッフの皆様、参加者の皆様、会場を提供してくださった株式会社VOYAGE GROUP様ありがとうございました。

2012年12月3日月曜日

スタッフになってみませんか? #TddAdventJp

はじめに

このエントリは、TDD Advent Calendar jp: 2012の3日目の参加エントリです。
前日は、S.SemiyaさんのTDDで思考を整理してみるです。

あなた誰?

現在、アジャイルサムライ横浜道場の門下生として、勉強している会社員です。
横浜道場での参加レポートはこちらです。

お誘い

今回は、TDDBC横浜 2nd seasonのスタッフとして参加したことをもとに、
スタッフになってみてはいかがですかというお誘いの内容です。

なぜ、ただの門下生がTDDBC横浜のスタッフとして参加したのかは、
その回のレポート(->こちら)を見ていただくとして。

レポートにはスタッフとして参加するメリットを書いたので、
ここでは体験から思いつきそうな不安や疑問について書いてみます。

言語について

スタッフと聞いて、「言語を使いこなしていないし…」と尻込みするかもしれませんが、
そんなことはありません。
確かに、ある程度言語を使える必要はありますが、TDDBCの場合予めお題が提供されていることがほとんどです。
ということは、前もって実践できます。
また、課題も過去の課題を利用する場合も多いので、時間を区切って一人でやってみるのもいいと思います。

とは言え、テスティングフレームワークの使い方は、必須です。
私は、JavaとGroovyを利用していますので、eclipseやIntelliJ IDEAでのJUnitやSpock Frameworkの動かし方を知っていなければなりません。
他の言語のテスティングフレームワークでも、エディタやIDEによって操作が変わってくると思いますので、当日使う環境について質問に答えられる程度には慣れていなければいけません。
ですが、これも慣れていれば大丈夫だと思います。

TDDのスキル

次に、「TDDスキルが高くないとダメだから…」という場合ですが、
これについては、過去の様々なTDDBCのレポートやTDDBCに関するサイトを見ていただければ、今の自分のスキルとスタッフとして求められるスキルの差が見えてくると思います。

いかがですか、もしかして自分なら出来るのでは?と感じた方はいらっしゃいますか?
そう思われた方は、ぜひTDDBCのML(-> こちら)に参加して、手を上げてみてください。
TDDに興味を持った人の手助けをしたいと感じたら、心構えはバッチリです。

まだまだだと感じられた方は、こちらのTDDBCのページを見て、スタッフがどんなことをしているのか見てください。
普段利用している言語のスタッフが何をしていたのかが見えてくると思います。

おわりに

TDDBCって何なのと思われた方は、去年今年のTDD Advent Calendarをぜひご覧になってください。
何かを感じていただいて、「一度参加してみたい!」と興味をもっていただければ、幸いです。

私自身TDDについては、未熟でまだまだ勉強不足な所も多々あります。
ですが、スタッフとして参加してみて改めてTDDによってより良い物を作りたいという意志を持つことが出来ました。
未熟でも一歩づつ確実に前へ進むことが大切です。

あなたは決して一人ではありません。
テストを書く際に、左腕のグリーンバンドを見ている人達が大勢いらっしゃいます。
あなたに黄金の回転の御加護があらんことを。

翌日は、@irofさんの思い通りに動くコードを書きたい #TddAdventJpです。よろしくお願いします。

2012年9月3日月曜日

TDD Boot Camp (#TDDBC) 横浜 Second Season に参加してきました

TDD Boot Camp (#TDDBC) 横浜 Second Season
http://kokucheese.com/event/index/46603/

2012/09/01 TDD Boot Camp 横浜 Second Season #tddbc
http://togetter.com/li/360406

TDDBC横浜 Second Season
http://devtesting.jp/tddbc/?TDDBC%E6%A8%AA%E6%B5%9C2nd

はじめに

今回は、スタッフとして初めてTDDBCに参加しました。
前回は、運良く抽選で参加者として参加しました。
前回のレポートはこちら -> レポート置き場: TDDBC横浜に参加しました。
それから、現在までいろいろな勉強会やイベントに参加することで、そろそろスタッフとして参加してみたいと思っていました。
また、TDD in Actionでも感じていたのですが、他のペアがどんな感じでやっているのを見てみたいと思っていました。
言語はJavaで参加しても良かったのですが、あえてGroovyで参加してみてることで自分のGroovy力がどの程度なのかを知ってみたかったので、Groovyにしました。

基調講演

@tosikawaさんによる「テスト駆動開発入門」の入門でした。

写経については、@t_wadaさんの連載にもありました。
[動画で解説]和田卓人の“テスト駆動開発”講座 » 第6回 「写経」でTDDの手順や書き方を学ぶ
http://gihyo.jp/dev/serial/01/tdd/0006

誰が言ったのか忘れてしまいましたが、新しい言語を始める際にテスト駆動開発入門を写経することで覚えるといいと聞きました。
それにならって、私自身まだ、テスト駆動開発入門の写経をしていないので、これを機にやってみたいと思います。

ペアプロ中の気づき

一番印象に残ったのはこれでした。


ペアプロをしていると、基本的に閉じた世界になってしまいがちですが、誰かに相談したり一息ついて一旦閉じた世界から離れてみる必要があるなと実感しました。

参加者の方から、言語のTAと言語以外に抽象的な部分に対応できるTAがいてとても良かったという感想をいただきました。
今回は、@t_wadaさんを始め複数の言語が出来たり、実戦経験豊富な方がTAだったので、上手くサポート出来ていたのではないでしょうか(私はあまり役に立っていたとは言えないのですが)。

前日にStep2まで素振りをしていたことで気づいたのは、事前に同じ課題をこなすことで自分の過去をオーバーラップしながらアドバイス出来たことでした。
自分がつまづいた箇所やGroovyでならどう書くのかといったことを出来るだけ伝えたつもりです。

また、その他の言語のテーブルを見て回れたのは、とても勉強になりました。
個人的にはJavaScriptのテーブルが、ドライバー1とナビゲーター2で10分毎に交代しながら行なっていたので印象に残りました。
jasmine + node.jsを利用していたそうです。
http://pivotal.github.com/jasmine/

探してみたところgradleにもjasmineのpluginがあったので、触ってみたいと思いました。
https://github.com/dzhaughnroth/jasmine-gradle-plugin

コードレビュー

コードレビューでは、C++のペアに学ぶことが多かったとおもいます。
テストに対する取り組み方として、慎重に周りを見渡してこのまま前に進んで大丈夫か確認していく大切さを教えていただきました。

Spockの素晴らしさを披露するのが、TDDBCでのコードレビューにおけるGroovyの定番となっているのですね。
あと、gradleでプロジェクトを作った意図を汲んでいただけたのか、参加者の方がgradleのレポートを披露してくださいました。
これも結構好印象だったので良かったです。
ありがとうございました。

最後に

今回、スタッフとして参加して、TDDの知らなかったことや新しいことを学ぶことができました。
特に質問コーナーでスタッフの皆さんが自身の体験から学んだことを話していたことがとても印象に残りました。
まだまだ練度が低いので、もっといろんな「気づき」を出来るまで日々鍛錬したいと改めて思いました。

主催してくださった@setoazusaさん、参加して下さった皆様、スタッフの皆様、会場を提供して下さった株式会社アットウェア様、ありがとうございました。