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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kikunantoka
July 06, 2019
Technology
1
1.4k
サービスがゼロからN億円規模になるまに実践した7つのやっていき / 7_yatteiki_battle_conference_u30_2019
kikunantoka
July 06, 2019
Tweet
Share
More Decks by kikunantoka
See All by kikunantoka
個人開発しているサービスのインフラをAWSからGCPに載せ替えた話 💪 / kojin_kaihatsu_night_3
kikunantoka
0
1.2k
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / gotanda_js_13
kikunantoka
1
2.4k
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / frontend_night_1
kikunantoka
3
1.7k
Gatsby.jsとNetlifyとの付き合い方 / gatsby-js-and-netlify
kikunantoka
3
620
Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp
kikunantoka
2
720
Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp
kikunantoka
1
1.9k
今日から始める Flood.io / fuka-taisaku-night-01
kikunantoka
0
340
20万RPMを捌くRailsアプリケーションの作り方
kikunantoka
0
840
MVPに絞ったら個人開発でもちゃんとリリースできた話
kikunantoka
1
550
Other Decks in Technology
See All in Technology
AIエージェントで変わる開発プロセス ― レビューボトルネックからの脱却
lycorptech_jp
PRO
2
660
【Developers Summit 2026】Memory Is All You Need:コンテキストの「最適化」から「継続性」へ ~RAGを進化させるメモリエンジニアリングの最前線~
shisyu_gaku
5
710
[続・営業向け 誰でも話せるOCI セールストーク] AWSよりOCIの優位性が分からない編(2026年2月20日開催)
oracle4engineer
PRO
0
100
「使いにくい」も「運用疲れ」も卒業する UIデザイナーとエンジニアが創る持続可能な内製開発
nrinetcom
PRO
0
190
APMの世界から見るOpenTelemetryのTraceの世界 / OpenTelemetry in the Java
soudai
PRO
0
140
Microsoft Fabric のワークスペースと容量の設計原則
ryomaru0825
2
140
器用貧乏が強みになるまで ~「なんでもやる」が導いたエンジニアとしての現在地~
kakehashi
PRO
5
530
Snowflakeデータ基盤で挑むAI活用 〜4年間のDataOpsの基礎をもとに〜
kaz3284
1
140
OCI技術資料 : 外部接続 VPN接続 詳細
ocise
1
10k
生成AI活用によるPRレビュー改善の歩み
lycorptech_jp
PRO
4
1.2k
三菱UFJ銀行におけるエンタープライズAI駆動開発のリアル / Enterprise AI_Driven Development at MUFG Bank: The Real Story
muit
10
17k
インシデント対応入門
grimoh
7
5.1k
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
The Pragmatic Product Professional
lauravandoore
37
7.2k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.1k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
140
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
130
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.4k
Scaling GitHub
holman
464
140k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
180
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
530
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 !!!