Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
TDDな個人開発
Search
hatappi
March 12, 2019
Technology
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TDDな個人開発
個人開発 Night #1 @ギフティ
hatappi
March 12, 2019
More Decks by hatappi
See All by hatappi
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
340
AlloyDB 奮闘記
hatappi
0
520
Cloudflare を活用して変わったメルカリの開発体験 / How Cloudflare Changed Mercari's Development Experience
hatappi
1
960
RubyではじめるGraphQL
hatappi
0
990
RubyでChainerつくってます!!
hatappi
2
1.6k
できるだけ楽して楽しくRails開発しよう
hatappi
2
400
EKSにRailsをのせた
hatappi
1
1.3k
RubyとApache Arrow
hatappi
0
2.7k
Red Chainerを なぜ作って今後どうするのか
hatappi
2
2.6k
Other Decks in Technology
See All in Technology
Let's Change Our World—Again
snoozer05
PRO
4
300
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
300
Claude Code on Bedrock で統制をかける小ネタ集/claude-code-bedrock-governance-tips
emiki
1
130
What Is JetBrains Air
x5gtrn
PRO
0
140
Temporal 最高!でも改めて「日付」について調べたら人類の負債すぎる件
riyaamemiya
0
220
国際カードブランドルール変更に伴うクレジットカード決済取引仕様変更について
k1style
0
130
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
2
370
Classmethod Company Deck
satoshi7
1
800
AWSDirectConnectの構築の進め方を整理してみた
masa_my
1
110
CloudWatch Logsのコスト最適化:どこまでAIに任せてどこから人間が承認すべきか
yama3133
0
150
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
360
macOS Golden Gate 時代のMac管理
tategami
0
110
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
330
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
360
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
First, design no harm
axbom
PRO
2
1.3k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
280
Paper Plane (Part 1)
katiecoart
PRO
2
12k
BBQ
matthewcrist
90
10k
From π to Pie charts
rasagy
1
400
Balancing Empowerment & Direction
lara
6
1.3k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Transcript
個⼈開発 Night #1 @ギフティ TDDな個⼈開発
ݸਓ։ൃ 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 で複数⼈で開発しているものがあります
ݸਓ։ൃ Night #1 @ΪϑςΟ 3 今までの個⼈開発では TDDをしてきたので 今⽇はその話をします!
ݸਓ։ൃ Night #1 @ΪϑςΟ 4 今⽇話すこと • TDD? • TDDを継続するために
• TDDͷྫ
TDD?
ݸਓ։ൃ Night #1 @ΪϑςΟ 6 TDD
ݸਓ։ൃ Night #1 @ΪϑςΟ 7 Test Driven Development http://wiki.c2.com/?TestDrivenDevelopment
Test Driven Development ⽇本語でテスト駆動開発 開発⼿法の1つ 実装前にテストコードを書いてその テストコードが通るように実装やリ ファクタリングをしていく
ݸਓ։ൃ Night #1 @ΪϑςΟ 9 今⽇のTDDは Test Driven Development ではありません!
ݸਓ։ൃ Night #1 @ΪϑςΟ 10 今⽇の発表でのTDDは・・・
ݸਓ։ൃ Night #1 @ΪϑςΟ 11 Tech Driven Development お気付きの⽅もいるかと思いますが TDD
= Test Driven Development かと思いきや Tech Driven Development でしたというオチです
ݸਓ։ൃ Night #1 @ΪϑςΟ 12 Tech Driven Development 技術駆動開発 この技術使いたい!興味ある!を
モチベーションにその技術を学び ながらプロダクトを作成すること
ݸਓ։ൃ Night #1 @ΪϑςΟ 13 Tech Driven Development のメリデメ •
メリット • ⾃分の気になる技術なのでやっていて楽しい • しかもプロダクトもできていく • デメリット • その技術に興味がなくなると⼿が進まない
TDDを継続するために
ݸਓ։ൃ Night #1 @ΪϑςΟ 15 TDDをするために • ⾃分が⾯⽩そう!となる可能性のある情報を⽇々集める • 本読む
• Twitter で興味ある分野の情報もっている⼈をフォロー • はてブでよく⾒られている記事をみる • 会社で気になった技術をもっと掘り下げてみる • 他にも情報の Input の仕⽅は様々!!!
ݸਓ։ൃ Night #1 @ΪϑςΟ 16 TDDをするために • 興味のあるものを⾒つけた後はそれを試せる場が重要 • 例えば
IaC やりたい! Terraform やってみよう!となった時に Tutorial で終わるのかどうか • 個⼈的には実際に運⽤で使ってみてはまったところとかエラーを 経験したい => 実際に試せる場をつくる => Tech Driven Development !!!!
TDDの例
ݸਓ։ൃ Night #1 @ΪϑςΟ 18 • Slack 上でアンケートをとるためのサービス • 2018/11に
βリリース • アンケートの作成や投票は Slack 上から⾏う • 集計結果は Slack 上や WEB 上から確認できる • 今後は質問作成したり回答結果を取得するよう な API を追加予定 Anket ( https://anket.life/ )
ݸਓ։ൃ Night #1 @ΪϑςΟ 19 構成 • APIやダッシュボードは Rails •
botはNode.jsで構築 • インフラはすべてAWSを使っ ていて Kubernetes 上に構築 している 気になる部分は懇親会できいてください!
ݸਓ։ൃ Night #1 @ΪϑςΟ 20 TDDな部分 • Rails • 会社では使わない技術を使ってみる
• Slack App • 普段使っている Slack をもっと使い倒してみたかった • Terraform, Kubernetes (EKS) • 使ったことなかったけど気になってた
ݸਓ։ൃ Night #1 @ΪϑςΟ 21 TDDな部分 • Rails • 会社では使わない技術を使ってみる
• Slack App • 普段使っている Slack をもっと使い倒してみたかった • Terraform, Kubernetes (EKS) • 使ったことなかったけど気になってた
ݸਓ։ൃ Night #1 @ΪϑςΟ 22 Kubernetes (k8s) コンテナ化されたアプリのデプロ イなどを⾃動化してくれるコンテ ナオーケストレーションエンジン
ݸਓ։ൃ Night #1 @ΪϑςΟ 23 Rolling Update old new old
new old new old new old new • Kubernetesが提供する機能の1つ • デプロイ時にサービスをとめないように指定台数ずついれかえて いくなどの設定ができる
ݸਓ։ൃ Night #1 @ΪϑςΟ 24 セルフヒーリング • これも Kubernetes が提供する機能の1つ
• あらかじめ指定した起動台数を維持するように Kubernetes が pod を管理してくれる
ݸਓ։ൃ Night #1 @ΪϑςΟ 25 他にも • 複数のNodeの管理 • オートスケーリング
• サービスディスカバリ • ロードバランシング • etc
覚えることいっぱい!!
ݸਓ։ൃ Night #1 @ΪϑςΟ 27 ひたすら勉強して プロダクトを作る IUUQTXXXBNB[PODPKQEQ 公式 ドキュメント
➕
ݸਓ։ൃ 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
まとめ
ݸਓ։ൃ Night #1 @ΪϑςΟ 30 まとめ • 1番重要なことは楽しむこと • せっかくやるなら楽しくやりたい
• 個⼈開発は反応もらえるだけでモチベーションになる