CROSS2014に行ってきました!
現場に聞く!テスト/CI/DevOps、実際のところどうなの
Webサービス開発現場から / 近頃の開発のやり方 ・・・ Github と Pull Request とコードレビュー
それぞれの会社のCIについて
クックパッド:
- 2010年ごろはcronでCI
- コードレビューをやるためのコストがかかってたので殆どやってない
- テストはこの時からあった
- 2012にGitHubいれた
- 「pull reqいれて開発をしたらどうなるんだろう?」って興味からやり始めた
- GHEも出たこともあり始めた
はてな:
- TDDとかははてなダイアリーの記法のところを作る時に始めた
- はてブのリニューアルがテストを書き始めた時にあたる(2013年初期にリニューアルされたので、2012年中頃から?)
- 実装して2分後に本番繁栄とかしていた
- 開発していくにつれ、テスト全然動かないけれども開発しなくちゃいけない状態になった
- 昔のテストを全部取り払って新たに書き始めた
- この段階で皆Jenkins使えばいいと分かってたのでCIも一緒にまわすようになった
- 「みんなCI回していこうぜ」って風潮がWeb業界にあって、それに刺激されて書き始めた
KAIZEN:
- CircleCIを使ってる
- 自社にサーバを持ちたくない
- CIが当たり前になった人と当たり前になってない人の差はもっと大きくなっていきそう
- CIの良さは実際にやってみないと分からない
テストについて
テスト考2014 - Hidden in Plain Sight
- c0にはする(適当な変数を1つ入力したテストをする。分岐は考えない)
- 書いたコードがちゃんと動いているということは最低限の基準
- Endlessブラウザ、CasperJSでテスト(PhantomJS入門 CasperJSを使う - Murayama blog)
クックパッド:
- 会社でテストの基準について→「全ユーザに影響のある実装に対してのテストは書こう」という基準がある
- コードレビューの時には「テストで何をしているかが伝わりやすいか?」 「わかりやすいか?」を見るようにしている
KAIZEN:
- モデル、ビジネスロジックはテストを書くようにしている
- そろそろE2Eでブラウザを使ったテストをしないといけない(クライアント→サーバ→クライアントまでのテスト)
ブラウザのテストは、cross browser使えばいいのでは?
Cross Browser Testing Tool. 300+ Browsers, Mobile, Real IE. ( http://www.browserstack.com/ )
- いまどきのWeb関係の仕事はテスト書くの当たり前
クックパッドには開発基盤グループがあってテスト環境の整備などをやっている
- A/Bテストを簡単にするにはどうしたらよいか?
- テスト速度の最適化
普通の会社だとCIしたり、テスト書けない
- CIしたりテスト書いたりする専用の人をおけば良いのでは?
- テスト書く組織やCIする専用の組織を作るのが良いと思う
「開発者の生産性向上」というミッションを掲げた組織を作ることがこれから大切になってくるのでは?
- はてなもクックパッドもここ2,3年でテストやCIするようになってきた
- テストを行うためのツールも揃ってきているので、やりやすくなっている
情報共有について
はてな:
- はてなグループでブログを業務中に書きながら仕事をしている
- メールすることは殆ど無い
- 「隣のチームがJenkins使っているらしいぞ」→「ブログをみてこっちでも取り入れよう」という流れがリアルタイムで起こる
クックパッド:
- はてなグループのクックパッド版を作った
コードレビューCROSS ~ぶつかり稽古2014初場所~
はてな:
- テーブル定義を一旦決めてから実装することが多い
- ロジック等は不自然ではなければ、指摘しない
- メソッド名や引数の順番SVOCとかを指摘する
- サーバ、クライアント共に2,3人くらい
- インデックス張ってあるか?
- 1~2年目+ベテランという組み合わせで開発
技術書の未来はどっちだ!
cross2014-compbook-in-future.md
Packt Publishing、The Pragmatic Bookshelfが最先端の技術書を出している。
Packtはオンデマンド印刷:注文があってから1冊ずつ作る →ニッチな技術書が月何十冊とだしている
日本でも受注生産が流行ってくるのではないか? →値段が普通の書籍よりもかかっているので、値段を下げれるかがポイント
電子書籍はお金的には、紙の本と同じかそれ以下になってしまうが自分の意志で出せるのでありでは。 →編集者がいないのでモチベーションを高めるのが大変
達人出版社は開発中だけど、ただのリポジトリじゃなくて本のデータのコミット権やPull Requestをやりとりできるようなのにしたい