TDDな個人開発

C582b722e015633f7900083f8ea75732?s=47 hatappi
March 12, 2019

 TDDな個人開発

個人開発 Night #1 @ギフティ

C582b722e015633f7900083f8ea75732?s=128

hatappi

March 12, 2019
Tweet

Transcript

  1. 個⼈開発 Night #1 @ギフティ TDDな個⼈開発

  2. ݸਓ։ൃ Night #1 @ΪϑςΟ 2 ⾃⼰紹介 • Yusaku Hatanaka (@hatappi)

    • Merpay, Inc • 会社では主にGo
 プライベートでは主にRuby 2013 学内のバスアプリや就活⽀援サイト 2014 クローラー, etc 2015 PHPでレシピ検索サイト, etc 2016 PHPでポータルサイト, etc 2017 RailsとAngularでポータルサイト
 Red Chainer, etc 2018 Red Chainer Railsで家庭⽀援サービス Slack App, Goでポモドーロ, etc 2019 Red Chainer Slack App, etc ここに書いてあるものは1⼈で作っているものもあればOSS で複数⼈で開発しているものがあります
  3. ݸਓ։ൃ Night #1 @ΪϑςΟ 3 今までの個⼈開発では TDDをしてきたので 今⽇はその話をします!

  4. ݸਓ։ൃ Night #1 @ΪϑςΟ 4 今⽇話すこと • TDD? • TDDを継続するために

    • TDDͷྫ
  5. TDD?

  6. ݸਓ։ൃ Night #1 @ΪϑςΟ 6 TDD

  7. ݸਓ։ൃ Night #1 @ΪϑςΟ 7 Test Driven Development http://wiki.c2.com/?TestDrivenDevelopment

  8. Test Driven Development ⽇本語でテスト駆動開発 開発⼿法の1つ 実装前にテストコードを書いてその テストコードが通るように実装やリ ファクタリングをしていく

  9. ݸਓ։ൃ Night #1 @ΪϑςΟ 9 今⽇のTDDは Test Driven Development ではありません!

  10. ݸਓ։ൃ Night #1 @ΪϑςΟ 10 今⽇の発表でのTDDは・・・

  11. ݸਓ։ൃ Night #1 @ΪϑςΟ 11 Tech Driven Development お気付きの⽅もいるかと思いますが TDD

    = Test Driven Development かと思いきや Tech Driven Development でしたというオチです
  12. ݸਓ։ൃ Night #1 @ΪϑςΟ 12 Tech Driven Development 技術駆動開発 この技術使いたい!興味ある!を

    モチベーションにその技術を学び ながらプロダクトを作成すること
  13. ݸਓ։ൃ Night #1 @ΪϑςΟ 13 Tech Driven Development のメリデメ •

    メリット • ⾃分の気になる技術なのでやっていて楽しい • しかもプロダクトもできていく • デメリット • その技術に興味がなくなると⼿が進まない
  14. TDDを継続するために

  15. ݸਓ։ൃ Night #1 @ΪϑςΟ 15 TDDをするために • ⾃分が⾯⽩そう!となる可能性のある情報を⽇々集める • 本読む

    • Twitter で興味ある分野の情報もっている⼈をフォロー • はてブでよく⾒られている記事をみる • 会社で気になった技術をもっと掘り下げてみる • 他にも情報の Input の仕⽅は様々!!!
  16. ݸਓ։ൃ Night #1 @ΪϑςΟ 16 TDDをするために • 興味のあるものを⾒つけた後はそれを試せる場が重要 • 例えば

    IaC やりたい! Terraform やってみよう!となった時に Tutorial で終わるのかどうか • 個⼈的には実際に運⽤で使ってみてはまったところとかエラーを 経験したい
 => 実際に試せる場をつくる
 => Tech Driven Development !!!!
  17. TDDの例

  18. ݸਓ։ൃ Night #1 @ΪϑςΟ 18 • Slack 上でアンケートをとるためのサービス • 2018/11に

    βリリース • アンケートの作成や投票は Slack 上から⾏う • 集計結果は Slack 上や WEB 上から確認できる • 今後は質問作成したり回答結果を取得するよう な API を追加予定 Anket ( https://anket.life/ )
  19. ݸਓ։ൃ Night #1 @ΪϑςΟ 19 構成 • APIやダッシュボードは Rails •

    botはNode.jsで構築 • インフラはすべてAWSを使っ ていて Kubernetes 上に構築 している 気になる部分は懇親会できいてください!
  20. ݸਓ։ൃ Night #1 @ΪϑςΟ 20 TDDな部分 • Rails • 会社では使わない技術を使ってみる

    • Slack App • 普段使っている Slack をもっと使い倒してみたかった • Terraform, Kubernetes (EKS) • 使ったことなかったけど気になってた
  21. ݸਓ։ൃ Night #1 @ΪϑςΟ 21 TDDな部分 • Rails • 会社では使わない技術を使ってみる

    • Slack App • 普段使っている Slack をもっと使い倒してみたかった • Terraform, Kubernetes (EKS) • 使ったことなかったけど気になってた
  22. ݸਓ։ൃ Night #1 @ΪϑςΟ 22 Kubernetes (k8s) コンテナ化されたアプリのデプロ イなどを⾃動化してくれるコンテ ナオーケストレーションエンジン

  23. ݸਓ։ൃ Night #1 @ΪϑςΟ 23 Rolling Update old new old

    new old new old new old new • Kubernetesが提供する機能の1つ • デプロイ時にサービスをとめないように指定台数ずついれかえて いくなどの設定ができる
  24. ݸਓ։ൃ Night #1 @ΪϑςΟ 24 セルフヒーリング • これも Kubernetes が提供する機能の1つ

    • あらかじめ指定した起動台数を維持するように Kubernetes が pod を管理してくれる
  25. ݸਓ։ൃ Night #1 @ΪϑςΟ 25 他にも • 複数のNodeの管理 • オートスケーリング

    • サービスディスカバリ • ロードバランシング • etc
  26. 覚えることいっぱい!!

  27. ݸਓ։ൃ Night #1 @ΪϑςΟ 27 ひたすら勉強して プロダクトを作る IUUQTXXXBNB[PODPKQEQ 公式 ドキュメント

  28. ݸਓ։ൃ Night #1 @ΪϑςΟ 28 TDDした結果の副産物 • 今⽇のようにイベントで登壇できる • ブログでアウトプット

    • Slackでアンケートをとることが出来るサービス『Anket』をβリリースしました
 https://blog.hatappi.me/entry/2018/11/21/085626 • Anket を EKS (k8s) に移⾏しました
 https://blog.hatappi.me/entry/2019/01/12/111519 • Anketのメッセージをjsx-slackを使ってBlock Kitベースへ変更しました
 https://blog.hatappi.me/entry/2019/03/10/110759
  29. まとめ

  30. ݸਓ։ൃ Night #1 @ΪϑςΟ 30 まとめ • 1番重要なことは楽しむこと • せっかくやるなら楽しくやりたい

    • 個⼈開発は反応もらえるだけでモチベーションになる