Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サービスがゼロからN億円規模になるまに実践した7つのやっていき / 7_yatteiki_ba...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kikunantoka
July 06, 2019
Technology
1.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サービスがゼロからN億円規模になるまに実践した7つのやっていき / 7_yatteiki_battle_conference_u30_2019
kikunantoka
July 06, 2019
More Decks by kikunantoka
See All by kikunantoka
個人開発しているサービスのインフラをAWSからGCPに載せ替えた話 💪 / kojin_kaihatsu_night_3
kikunantoka
0
1.3k
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / gotanda_js_13
kikunantoka
1
2.4k
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / frontend_night_1
kikunantoka
3
1.8k
Gatsby.jsとNetlifyとの付き合い方 / gatsby-js-and-netlify
kikunantoka
3
640
Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp
kikunantoka
2
740
Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp
kikunantoka
1
1.9k
今日から始める Flood.io / fuka-taisaku-night-01
kikunantoka
0
360
20万RPMを捌くRailsアプリケーションの作り方
kikunantoka
0
850
MVPに絞ったら個人開発でもちゃんとリリースできた話
kikunantoka
1
560
Other Decks in Technology
See All in Technology
【Cyber-sec+】経営層を"動かす"ための考え方
hssh2_bin
0
180
エラーバジェットのアラートのタイミングを考える.pdf
kairim0
0
150
200個のGitHubリポジトリを横断調査したかった
icck
0
130
LayerX コーポレートエンジニアリング室におけるサプライチェーンセキュリティへの取り組み / Supply Chain Security at LayerX Corporate Engineering
yuyatakeyama
1
260
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
4
660
Snowflakeと仲良くなる第一歩
coco_se
4
470
手塩にかけりゃいいってもんじゃない
ming_ayami
0
570
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
2
640
【NRUG vol.18】なぜ多くのオブザーバビリティ導入は失敗するのか
nrug_member
0
130
新しいVibe Codingと”自走”について
watany
6
320
SONiCで構築・運用する生成AI向けパブリッククラウドネットワーク ~実装編~
sonic
0
210
人材育成分科会.pdf
_awache
4
250
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
610
Bash Introduction
62gerente
615
220k
Mobile First: as difficult as doing things right
swwweet
225
10k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
How to Ace a Technical Interview
jacobian
281
24k
Optimizing for Happiness
mojombo
378
71k
Speed Design
sergeychernyshev
33
1.8k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
300
Statistics for Hackers
jakevdp
799
230k
Being A Developer After 40
akosma
91
590k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
460
AI: The stuff that nobody shows you
jnunemaker
PRO
8
710
Transcript
αʔϏε͕θϩ͔ΒNԯԁنʹͳΔ·Ͱʹ ࣮ફͨ͠7ͭͷ͍͖ͬͯ BATTLE CONFERENCE UNDER30 #2019 on 2019/07/06 @kikunantoka
ࣗݾհ about: name: Fumitaka Kikukawa work_at: giftee Inc. job: engineer
twitter: @kikunantoka age: 28 // ೖࣾͯ͠3ऑ // ΪϦΪϦU30
ݸਓ։ൃ https://nakamy.com
ϘʔυήʔϜ੍࡞ https://tapir-studio.com
αʔϏε͕θϩ͔ΒNԯԁنʹͳΔ·Ͱʹ ࣮ફͨ͠7ͭͷ͍͖ͬͯ BATTLE CONFERENCE UNDER30 #2019 on 2019/07/06 @kikunantoka \
ͲΜͳαʔϏεΛ։ൃ͍ͯ͠Δͷ͔Λ͠·͢ /
• ࠒͷʮখ͞ͳ͋Γ͕ͱ͏ʯͷؾ࣋ͪʹఴ͑ͯɺΪϑτΛଃΕΔαʔϏε • ड͚औͬͨΪϑτձһొͳ͠Ͱ͓ళͰͱަ͕Ͱ͖Δ To C
• ΪϑτϢχʔΫͳURLͳͷͰɺීஈͷLINEͳͲʹ؆୯ʹఴ͑Δ͜ͱ͕Ͱ͖Δ To C https://giftee.co/r/------
• ΪϑτͰਓͱਓΛͭͳ͙αʔϏε To C
• ΪϑτͰਓͱاۀͭͳ͍Ͱ͍Δ To B
• ΪϑτͷURLΛೲͯ͠ΪϑτΛΩϟϯϖʔϯʹ׆༻ͯ͠Β͏Ϗδωε To B https://giftee.co/r/------ https://giftee.co/r/------ https://giftee.co/r/------ https://giftee.co/r/------ https://giftee.co/r/------ https://giftee.co/r/------
https://giftee.co/r/------
• ΪϑτͷURLΛೲͯ͠ΪϑτΛΩϟϯϖʔϯʹ׆༻ͯ͠Β͏Ϗδωε To B
• தʹɺΪϑτΛ্ख͘׆༻͢Δखஈ͕ͳ͍ΫϥΠΞϯτ ΪϑτΛଃΔखஈ͕ͳ͍ To B
ᶃ ϑΥϩʔ&ϦπΠʔτ ᶄ Twitterೝূ ᶅ ͦͷͰநબ ᶆ Ϊϑτ͕Β͑Δ • ΠϯελϯτΟϯΩϟϯϖʔϯΛؾܰʹ࣮ࢪ͢ΔͨΊͷϓϥοτϑΥʔϜΛ։ൃ
To B
HJGUFFΠϯελϯτΟϯGPS5XJUUFSͷڧΈᶃ நબ͔Βܠͷఏڙ·ͰҰؾ௨؏Ͱ͝ఏڙ நબγεςϜ ʢΠϯελϯτΟϯʣ σδλϧΪϑτͷఏڙ ʢछྨҎ্ͷܠʣ ϦΞϧλΠϜʹநબɺ ͦͷͰܠΛ༩ aࣾͰ($1ͱུ͞Εͩ͢ʜ
Πϯϑϥ aࣾͰ($1ͱུ͞Εͩ͢ʜ ݴޠ ϑϨʔϜϫʔΫ Λࢧ͑Δٕज़
αʔϏε͕θϩ͔ΒNԯԁنʹͳΔ·Ͱʹ ࣮ફͨ͠7ͭͷ͍͖ͬͯ BATTLE CONFERENCE UNDER30 #2019 on 2019/07/06 @kikunantoka /
ͲΜͳ͜ͱΛҙࣝ͠ͳ͕Β։ൃ͖͔ͯͨ͠Λ͠·͢ \
ϓϥοτϑΥʔϜΛ࡞͍ͬͯ͘ 1
ϓϥοτϑΥʔϜΛ࡞͍ͬͯ͘ • B͚αʔϏεͩͱडୗ։ൃʹͳΓ͕ͪ • GCP͋ΔΫϥΠΞϯτ͔ΒʮTwitterͷΩϟϯϖʔϯΛΓ͍ͨʯͱ૬ஊ͞Εͨ͜ ͱ͔Β࢝·ͬͨ • ೲظ͕ഭ͍͕ͬͯͨɺฐࣾͷ༏लͳBizνʔϜͳΒଞʹͲΜͲΜҊ݅Λऔͬͯ͘Δ ͱࢥͬͨͷͰɺ൚༻తͳϓϥοτϑΥʔϜͱͯ͠։ൃΛ࢝Ίͨ •
ػೳՃʹ͓͍ͯͦͷػೳ͕ଞͷΫϥΠΞϯτඞཁͱ͍ͯ͠Δ͔ΛݟۃΊΔ
খ࢝͘͞Ί͍ͯ͘ 2
খ࢝͘͞Ί͍ͯ͘ • ఆ͗͢͠ͳ͍ɺখ͘͞։ൃͯ͠ɺখ͘͞ݕূ͢Δ • ࠷ॳϏδωεతʹ্ख͍͔͘͘ݟ͑ͳ͍ͷͰɺΠςϨʔςΟϒʹ։ൃ͍ͯ͘͠ • ൚༻తʹ͗͢͠ΔͱDBͷ੍Λ͔͚ͮΒ͔ͬͨΓ͢ΔͷͰɺόϥϯεΛͱΔ • 2ӡ༻ͯ͠Έͯɺ͍͔ͭඞཁ͔͠Εͳ͍…ແବʹͳͬͨ͜ͱ͕ଟ͔ͬͨ •
YAGNI ͕ຊʹେ
OneνʔϜͰ։ൃ͍ͯ͘͠ 3
OneνʔϜͰ։ൃ͍ͯ͘͠ • B͚αʔϏεͩͱΫϥΠΞϯτͷΛҰ൪ฉ͍͍ͯΔͷBizνʔϜ • िʹ1ͷఆྫΛBizνʔϜͱ߹ಉͰߦ͏ • ࠲੮ಉ͡ౡͰ͔͍߹ͬͯ࠲Δ • ೲಘײΛ࣋ͬͯ։ൃ͢Δ •
࣌ʹΫϥΠΞϯτʹձ͍ʹߦͬͯੜͷΛฉ͖ʹ͍͘ • B͚ͷLPΛҰॹʹ࡞ͬͨΓͨ͠
PMFୡޙػೳΛΨϯΨϯ։ൃ͍ͯ͘͠ 4
PMFୡޙػೳΛΨϯΨϯ։ൃ͍ͯ͘͠ • ϓϩμΫτͱͯ͠ஹ͕͠ݟ͑ͨΒશྗͰίϛοτ͢Δ • ཧը໘։ൃͳͲɺӡ༻λεΫΛଞͷਓʹҠৡ͍ͯͨ͘͠Ίͷ։ൃΛߦ͍ɺ։ൃʹ ॆͯΒΕΔ࣌ؒΛ૿͍ͯ͘͠ • αʔϏεӡ༻͕࢝·͔ͬͯΒ͕ຊ൪ • LINEೝূίʔυೝূͳͲɺೝূͷύλʔϯΛ૿͍ͯ͘͠
• ը໘ΧελϚΠζͳͲͷΦϓγϣϯͰՔ͍Ͱ͍͘
αʔϏεΛεέʔϥϒϧʹ͍ͯ͘͠ 5
GCPͷ2ؒʢ˞Πϝʔδʣ • αʔϏεͷͱͱʹΩϟϯϖʔϯͷΕ͕ؒͳ͘ͳ͖ͬͯͨ • ্࿈ಈͳͲͷେܕҊ݅ೖͬͯ͘ΔΑ͏ʹͳ͖ͬͯͨ • αʔϏεΛམͱͤͳ͍ • Ϩίʔυ૿͖͑ͯͨ
αʔϏεΛεέʔϥϒϧʹ͍ͯ͘͠ • εέʔϧ͢ΔίʔυΛॻ͘ / ϩοΫॲཧɺεϩʔΫΤϦʹҙ͢Δ • ෛՙݕূͯ͠औΓআ͍͍ͯ͘ • Elastic Beanstalk
ΛͬͯWebαʔόΛԽ͠εέʔϥϒϧʹͨ͠ • RDSΛ Aurora ʹ͢Δ͜ͱͰεέʔϧΞοϓͷμϯλΠϜΛগͳͨ͘͠ • ͍ͭͰεέʔϧΞτ / εέʔϧΠϯͰ͖ΔڥΛ͑Δ͜ͱͰΠϯϑϥඅ༻Λ ͑Δ͜ͱ͕Ͱ͖ͨ
LINEϓογϡ৴ʹ͑ΒΕͨ ☺ ʊਓਓਓਓਓਓਓਓਓਓਓʊ ʼ ࠷େ30ສϦΫΤετ ʻ ʉY^Y^Y^Y^Y^Y^Y^Y^ʉ • ༑ͩͪ2300ສͷΞΧϯτͰLINEϓογϡΛߦͬͨ݁Ռ
ఆظతʹDBͷ੍Λݟ͍ͯ͘͠ 6
ఆظతʹDBͷ੍Λݟ͍ͯ͘͠ • ϚΠάϨʔγϣϯΛྲྀͨ݁͠Ռͷ db/schema.rb ϑΝΠϧΛ֬ೝ͢Δ • σʔλͷෆ߹Λͳ͘͢࠷ޙͷࡆDBͷ੍ • ϨϏϡʔͰݟಀ͍ͯͨ͠͏͔ͬΓ੍ுΓΕΛݕͰ͖Δ •
࣌ͱఆ͕มΘ͍ͬͯΔ߹͋Δ • ෆཁͳςʔϒϧΛআͰ͖Δ • Ϩίʔυ͕ཷ·͔ͬͯΒ੍ΛுΓ͢ͷେม
ͨΓલͷ͜ͱΛͨΓલʹ͍ͬͯ͘ 7
LinterΛద༻͢Δ • Rubyͩͱ Rubocop • ϝϯόʔ͕OSS׆ಈҙࣝͰ͖ΔΑ͏ʹrubocop.ymlRailsʹ४ڌͨ͠ • ൿͷλϨʢಠࣗϧʔϧʣͳΔ͘࡞Βͳ͍
ΤϥʔτϥοΩϯάαʔϏε݈શͳঢ়ଶΛอͭ • ேձͰൃੜͨ͠Τϥʔͷ୨Է͠ΛΔ • SentryΛͪΌΜͱӡ༻͢Δ
ΤϥʔτϥοΩϯάαʔϏε݈શͳঢ়ଶΛอͭ • ղܾͨ͠Resolve • 90ҎʹରԠ͢Δ • ֎෦αʔϏεىҼͷͷ10 times / minͳͲͰIgnore
• ֎෦αʔϏεͰେ͖ͳো͕ى͖͍ͯͨ࣌ʹ௨͕ͪΌΜͱདྷΔ
RubyRailsͷόʔδϣϯ࠷৽ʹอͭ • ηΩϡϦςΟΞοϓσʔτ͕͍ͭͰͰ͖ΔڥΛ͑Δ • 2ӡ༻͍ͯ͠ΔαʔϏε͕ͩɺRuby (2.6.3) Rails (5.2.3)࠷৽ • Ұྫͱͯ͠ɺRubyͷόʔδϣϯΛ্͛Δ͚ͩͰɺCSVͷಡΈࠐΈ
/ ॻ͖ࠐΈͷߴ ԽͷϝϦοτΛڗडͰ͖Δ • GemͷΞοϓσʔτʹ Dependabot Λ׆༻͢Δ • ͨͬͨͷ2͚ͩͲɺ͜ͷੵΈॏͶ͕େ
αʔϏε͕͍ͯ͘͠த ͨΓલͷ͜ͱΛͨΓલʹΔͷ ΊͬͪΌେมͳͷͰ ΈΜͳͰ͍͖ͬͯ·͠ΐ͏
None
ίϚʔγϟϧ - We are hiring !!!