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_battle_conference_u30_2019
Search
kikunantoka
July 06, 2019
Technology
1
1.2k
サービスがゼロから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
790
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / gotanda_js_13
kikunantoka
1
2.2k
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / frontend_night_1
kikunantoka
3
1.4k
Gatsby.jsとNetlifyとの付き合い方 / gatsby-js-and-netlify
kikunantoka
3
490
Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp
kikunantoka
2
480
Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp
kikunantoka
1
1.7k
今日から始める Flood.io / fuka-taisaku-night-01
kikunantoka
0
250
20万RPMを捌くRailsアプリケーションの作り方
kikunantoka
0
690
MVPに絞ったら個人開発でもちゃんとリリースできた話
kikunantoka
1
480
Other Decks in Technology
See All in Technology
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
360
Além do else! Categorizando Pokemóns com Pattern Matching no JavaScript
wmsbill
0
620
LangSmith入門―トレース/評価/プロンプト管理などを担うLLMアプリ開発プラットフォーム
os1ma
3
160
JAWS-UG Bedrock Claude Night
yamahiro
3
610
アクセス制御にまつわる改善 / Improving access control
itkq
0
540
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
0
140
EMとして2023年度に頑張ったこと / What we did well in FY2023 as a EM
pauli
1
170
開発パフォーマンスを最大化するための開発体制
ham0215
2
410
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
200
Gitlab本から学んだこと - そーだいなるプレイバック / gitlab-book
soudai
4
420
チームでロジカルシンキングに改めて向き合っている話 〜学習環境と実践⽅法〜
sansantech
PRO
3
2.5k
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
0
210
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1025
450k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Statistics for Hackers
jakevdp
789
220k
Clear Off the Table
cherdarchuk
84
310k
Art, The Web, and Tiny UX
lynnandtonic
289
19k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
244
20k
Navigating Team Friction
lara
178
13k
We Have a Design System, Now What?
morganepeng
43
6.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
25
2.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
14
1.6k
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 !!!