Upload
hiroyuki-inoue
View
4.911
Download
2
Embed Size (px)
Citation preview
井上 寛之• クックパッド株式会社 • トレンド調査ラボ エンジニア • 2014年 新卒入社(2年目) • 明日の食が見えるビッグデータサービス 「たべみる」の開発
• 興味のある技術 • 関係データベース、データエンジニアリング • セマンティック・ウェブ
inohiro
クックパッドでのGitHubの使われ方• イシュー(Issues) • 画面UIに関するディスカッション • 一部お問い合わせ管理 • マイルストーン管理(主にアプリ)
• プルリ(Pull Requests) • 開発に関するほとんどがプルリベース
エンジニアだけでなくデザイナやディレクターサポートスタッフも
ブログ記事をプルリ• チームごとにリポジトリを作り、そこへプルリ • 誰かが決めたルールではなく、自然発生的に(文化)
http://techlife.cookpad.com
プルリ後に起こる開発者支援• 継続的インテグレーション(CI) • プルリごとにテスト・ビルド・配信(アプリ) • RRRSpec • Dokumi(毒味)
• その他の取り組み • チェックリスト • 自動でアサイン
継続的インテグレーション(CI)• ソフトウェアの品質保持などのためにビルド・テストなどを継続的に実行すること • 失敗するテスト(バグ)や重たい処理に早く気づく
• 代表的なソフトウェア・サービス • Jenkins • Travis-CI • Circle-CI • wercker
RRRSpec - 速くて・安くて・安定したCI
• 背景: クックパッドのテスト項目が極めて多い • 単一マシン: 数時間 • 単一マシン(分散実行): 30~40分
• 解決: テストを分散して複数台のマシンで実行する • 実行時間時間: 6~10分 • 安くて高速なクラウドインスタンスを使う
https://github.com/cookpad/rrrspec
19,000+ テスト項目
Dokumi(毒味)• CIのひとつ • 現在はiOSアプリのプルリに対して
• 以下を自動でやってGitHubにコメントする • 静的解析(XcodeのAnalyze機能) • 自動テスト • プルリに追加する必要の無いファイルを指摘 • プルリにマイルストーンが設定されていない場合に指摘
チェックリスト• モバイルアプリに対するプルリで プルリ後にやるべきことを自動的に列挙
• 例えば • デザイナチェック受けましたか?(UIが変わる時) • 実機チェックしましたか?
• 仕組み • GitHub Hook API + Sinatra • “プルリされたらチェックリストをコメントする”
Pull Request パターン• 社内Wikiにまとめられた、お手本プルリ集 • その中からいくつか選んだ • Before/After のスクリーンショットを貼る • 中間レビュー用に [WIP] としてプルリする
• ! 注意するべきところを指差し確認する
• 効果的なレビューコメント
ディスカッション用に [WIP] としてプルリする
• WIP: Work In Progress • 新機能などの実装における、設計レビュー • コードを書き始めてから変更するのは大変 • インタフェース(メソッド名)、設計など • 考えている方向性を相談する
効果的なレビューコメント• “[MUST] …” • 必ず直すべき、良くないコードに
• “[SHOULD] …” • こうするべきでは?と言ったコメント
• “[IMO] …” (In My Opinion) • 私ならこうします・こう思います。意見など
• “[nits] …” (nitpick) • typo やインデントミスなど、細かい指摘に
まとめ• GitHubおよびプルリベースの開発 • クックパッドの開発プロセスにおいて、 無くてはならない存在
• アプリケーションのコード以外もプルリしています • プルリの後にある様々な開発者支援
• 良いプルリとは? • 相手のことを考えた、説明的なプルリ
あわせて読みたい(資料)• “なぜクックパッドは開発しやすいのか”
• https://speakerdeck.com/mirakui/developer-productivity-in-cookpad
• “Dokumi (日本語)” • http://techlife.cookpad.com/entry/2015/06/04/dokumi-ja
• “改善をより効果的に回すためのレビューへの取り組み” • http://www.slideshare.net/KazuMatsu/jasst-tohoku-2015matsuo
• “コードレビューに費やす時間を短くする” • http://techlife.cookpad.com/entry/2015/03/30/174713
• “クックパッド開発者ブログ” • http://techlife.cookpad.com/