サービス開発者の読書会 #8「アジャイルサムライ」2012.6.19

760 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
760
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • サービス開発者の読書会 #8「アジャイルサムライ」2012.6.19

    1. 1. 第五部アジャイルなプログラミング 株式会社コネクトスターサービス開発者向け読書会 越川 直人
    2. 2. 後半戦
    3. 3. これはなに• アジャイルサムライ読書会• 第5部を読んだ前提で議論する資料• 前編はhttp://www.slideshare.net/ naotokoshikawa/82012612
    4. 4. KPT• まずは読書会のKPTを確認• http://kpt-it.herokuapp.com/ 9fdaa76993f04b532d3d8604baaefcb5
    5. 5. 第五部 今回は14と15をやります。•12.ユニットテスト:動くことが分かる• 13.リファクタリング:技術的負債の返済• 14.テスト駆動開発• 15.継続的インテグレーション:リリースに備え る
    6. 6. おさらい
    7. 7. 問答無用で実践すべき プラクティス• ユニットテスト• リファクタリング• テスト駆動開発(TDD)• 継続的インテグレーション
    8. 8. 14. テスト駆動開発• 前回実際にRSpecでテスト駆動開発をお 見せしました。• 想像通り?• イメージ変わった? (考えよう!)
    9. 9. 実際見てみて• TDDって何が難しいの?(当たり前じゃ ない?)• ブラウザで検証するものだと思ってた• メンタルに作用するものでは• めんどくさそう
    10. 10. 実際見てみて• 成功体験がないと実感しないかも• 一見不合理に見える• 分かっていても出来ないものに見えた• 生活習慣の一種に見えた• 技術よりマインドが大事そう
    11. 11. テストを先に書くまず失敗するテストを書く
    12. 12. ルールその1• 失敗するテストをひとつ書くまでは、 新しいコードを一切 書かない。• (ここで大事なのは、本当に必要なコー ド以外を書いちゃいけない)
    13. 13. ルールその2• 「危なっかしい所」をすべてテストす る• 意図を伝えるためにテストを書く
    14. 14. ルールについて• 「既に実装されたコードがある」と考 えながら、先にテストを書くっていう のは設計手法として実にうまい作戦• テスト駆動開発はユニットテストやリ ファクタリングよりも高度な 技術 (考えよう!)
    15. 15. ルールについて• どうやってTDDやっているかをチェッ クするんだい?• テストそのものの質はどうみよう?• 危なっかしい箇所がピックアップされ ているか?
    16. 16. 得られる効果
    17. 17. 得られる効果• コードベースの保守や修正を容易にす ることにつながっている。• コードが減れば、複雑さも減る。• 設計がシンプルになれば、変更や修正 もし やすくなる
    18. 18. 15.継続的インテグレーション
    19. 19. リリースに備える文化• プロジェクトの本番は初日から始まっ ている• 本番環境へのデプロイは遙か遠い未来 のことではない (考えよう!)
    20. 20. リリースに備える文化• 本番環境にアップロードするのはお客 さんということもある• プログラム納品とかあるとありがち• 納品前のドタバタがありがち
    21. 21. 継続的インテグレーションとは • ソースコードリポジトリ • チェックイン手順 • ビルドの自動化 • 作業単位を小さくしようとする姿勢
    22. 22. 具体的に必要なもの• git• gitのワークフローの理解• アトミックコミット• CIサーバー• それを通知するコミュニケーション ツール(IRC, Campfire, hipchatなどなど)
    23. 23. コミット手順
    24. 24. ビルドの自動化 更にチェックインするとCIサーバーがビルドしてテストを実行する
    25. 25. 学んだこと• ユニットテスト ビルドしたコードがちゃんと動くこと を示す方法• リファクタリング コードをシンプルでクリーンな状態に 保ち、読みやすくするための技術
    26. 26. 学んだこと• テスト駆動開発(TDD) 複雑さに立ち向かうための設計技法• 継続的インテグレーション 決まった間隔ですべてを統合し、プロ ダクトをリリース可能な状態を保ち続 ける取り組み
    27. 27. アジャイルであるために• 毎週、価値ある成果を届けられている か?• たゆまぬ改善のための努力を惜しまず 続けているか?
    28. 28. KPT http://kpt-it.herokuapp.com/9fdaa76993f04b532d3d8604baaefcb5
    29. 29. 次回• これまでのまとめ• LT形式で刺さった部分を話してみて は?
    30. 30.
    31. 31. 次回• みんなの感想LT• リーンスタートアップ読書会の進め方を 検討しよう!

    ×