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
スタートアップ立ち上げの 主力言語にgo言語を 採用してみた話
Search
Shuji OCHI
February 24, 2018
Programming
1.3k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
スタートアップ立ち上げの 主力言語にgo言語を 採用してみた話
umeda.go#3での発表
Shuji OCHI
February 24, 2018
More Decks by Shuji OCHI
See All by Shuji OCHI
「ハッカーズ」の紹介・IT技術書のオススメLT会 #03
ponpoko1968
0
450
ハイブリッドアプリを支える ネイティブ技術
ponpoko1968
0
950
Other Decks in Programming
See All in Programming
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
190
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
130
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
250
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
210
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
200
最近”作らせてる” ローカルAIアプリの話
akit37
0
500
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
3
1.3k
Vue Fes Japan の “作る側”に関わってみて
naokihaba
1
200
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
160
Groovy as a human and AI friendly programming language
paulk
0
120
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.2k
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
160
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Leo the Paperboy
mayatellez
10
2.4k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
570
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
540
Product Roadmaps are Hard
iamctodd
55
13k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
2
950
Color Theory Basics | Prateek | Gurzu
gurzu
1
500
Everyday Curiosity
cassininazir
0
370
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Odyssey Design
rkendrick25
PRO
2
890
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
610
Transcript
ελʔτΞοϓ্ཱͪ͛ͷ ओྗݴޠʹHPݴޠΛ ࠾༻ͯ͠Έͨ VNFEBHP ӽஐम࢘
·ͣࣗݾհ
ӽஐम࢘ʢ͓ͪ͠Ύ͏͡ʣ w ϑϦʔΤϯδχΞ w ϞόΠϧιϦϡʔγϣϯͱιʔ γϟϧήʔϜͷձࣾΛܦͯ ಠཱ w J04ΞϓϦ։ൃ w
4XJGU0CKFDUJWF$ w σʔλੳ w 1ZUIPO
ຊͷ͓
w ͜Ε·ͰͷܦҢ w ٕज़ͷ w ͍·ͷͱ͜Ζͷ݁
͖͔͚ͬ
None
None
None
ాଜ݈ଠࢯ .*/5גࣜձࣾ$&0ˍϑΝϯμʔ ݩɾγφϓεʢגʣ$&0ˍϑΝϯμʔ ࿈ଓىۀՈ
ΦϯϥΠϯαϩϯ 4ZOBQTF ༗໊จԽਓΛଟ༴͠ɺΦϯϥΠϯα ϩϯͷᅘͱͳΔαʔϏε J04ΞϓϦͷ෦Λ։ൃ ʢ݄4PVUʣ ϦϦʔεݩגࣜձࣾγφϓε
ఆ$50ʢతͳͷʣ ΛΔ͜ͱʹ w ։ൃϦʔυతͳࣄͿΓ w αʔόαΠυ։ൃͦͷ͘Β͍ w ࠓӜౡɻɻɻ
ͳʹΔͷ
None
None
None
ͱ͍͏ͷɻɻɻ
લճͷল
ΦϯϥΠϯαϩϯ 4ZOBQTF ༗໊จԽਓΛଟ༴͠ɺΦϯϥΠϯα ϩϯͷᅘͱͳΔαʔϏε J04ΞϓϦͷ෦Λ։ൃ ʢ݄4PVUʣ ϦϦʔεݩגࣜձࣾγφϓε
RJJUBDPN ʮϨΨγʔ։ൃڥΛࠓ෩ͷ։ൃʹ͚ۙͮΔͨΊʹҰ͖ͬͯͨ͜ͱʯΑΓ
ٕज़తෛ࠴ͷࢁ w ։ൃνʔϜϝϯόʔθϩ w όʔδϣϯཧ͞Εͯͳ͍ w ϩʔΧϧ։ൃڥ͕ଘࡏ͠ͳ͍ w ࣌ຊ൪ڥ͕։ൃڥ w
ຊ൪ͷ&$ͷίʔυΛͦͷ··मਖ਼ w ̍ͭͷ&$Πϯελϯεʹશ෦͍ͬͯΔ w -".1͕̍ͭͷ&$Πϯελϯεʹશ෦ೖ͍ͬͯΔ w FUD RJJUBDPN ʮϨΨγʔ։ൃڥΛࠓ෩ͷ։ൃʹ͚ۙͮΔͨΊʹҰ͖ͬͯͨ͜ͱʯΑΓ
࠾༻ w ໊͕ͳ͍ʢ͋ͨΓ·͚͑ͩͲʣதɺͲ͏ͬ ͯ༏लͳٕज़ऀΛ͋ͭΊΔ͔ w ͳʹ͔Θ͔Γ͍͢ັྗ͕ͳ͍ͱɻɻɻɻ
ಥͰ͕͢
αϐΤϯεશ࢙
ਓؒʹग़དྷͯଞͷಈʹग़དྷͳ͍͜ͱ ਓྨͷൃలͷ伴ɺ Βͳ͍ਓಉ͕࢜ ڞ௨ͷཧ೦ཧΛ৴͡Δ͜ͱ͕Ͱ͖ɺ Ұகஂ݁Ͱ͖͔ͨΒ
lΤϯδχΞʹͱͬͯɺ ʮڞ௨ͷཧ೦ཧΛମݱ͢Δͷʯ ͱԿ͔ʁz
ϓϩάϥϛϯάݴޠ
ൺֱݕ౼ͯ͠ΈΔ
ٕज़ͷ࠾༻ج४ ௨ৗ͜ͷ͕ॏࢹ͞ΕΔ w Ϣʔβਓޱ w ଟ͍ํ͕ྑ͍ͱ͞ΕΔ w ߹తੑʢػೳʣ w ࠷ݶΈͨ͞ͳ͍ͱ
w ϑΟϩιϑΟʔ w ։ൃɾઃܭࢥ
ٕज़ͷ࠾༻ج४ w Ϣʔβਓޱ w ଟ͍ํ͕ྑ͍ͱ͞ΕΔ w ߹తੑʢػೳʣ w ࠷ݶΈͨ͞ͳ͍ͱ w
ϑΟϩιϑΟʔ w ։ൃɾઃܭࢥ ຊʹେࣄͳͷͬͪ͜
ٕज़͕·ͱ͍ͬͯΔࢥ͕৫Λࢧ͢Δ
8FC։ൃͷఆ൪Ͳ͜Ζ w 1)1ɺ3VCZɺ+BWBͱ͔ w ΤϯδχΞ͕ް͍ w τϨʔυΦϑ w ਓଟ͗͢ w
ັྗతͳڝ߹ଟ͍ʢͣʣ w ͭ·Γ4/ൺখ͍͞ w ˠ࠾༻ίετʢखؒͱ࣌ؒʣߴ͍ w ˠ͕࣌ؒͳ͍
+BWB4DSJQU w ࡢ 3FBDU3FEVY ͬͯͨ w 3FBDU3FEVYͦͷͷ͍͍͕ɻɻ w ͍ΘΏΔ+BWB4DSJQUർΕʹͳͬͨ w
ڝ૪͕ܹ͍͠ɺ৺తɾ݂ؾΜͳจԽ w จԽ͕ͪ͝Όͪ͝Ό w มԽ͕͍ͷͰɺͬͯ͘ϦϓϨʔεͮ͠Β͍αʔόαΠ υʹਖ਼Ͳ͏͔
ؔܕݴޠ w FMJYJS͋ͨΓڵຯ͋Δ͚Ͳɺɺɺ w Ϣʔβ͕ബ͗͢ΔͷͰ w पΓʹ͍ͳ͍ͷͰΠϝʔδΘ͔ͳ͍ w ϋΠϒϩ͗͢Δਓ͕ೖͬͯϋϯυϦϯάͰ͖ ͳ͔ͬͨΒͲ͏͠Α͏
4XJGU w ݸਓతʹҰ൪ಘҙ w αʔόαΠυ͚։ൃͷ༻్͕͖ͬͯͨΒ ͍͠ w ͱ͍͑લ్ෆಁ໌ w ࣌ظঘૣ͔
1ZUIPO w ΘΓͱܦݧ͍ w ݸਓతʹҰ൪ॱͳબ w Ϣʔβ૿Ճத w ͪΐͬͱݥͯ͠Έ͍ͨؾ͢Δ
HPݴޠ
पΓͰɺHPΛ͡ΊͨΑɺ ͍ͬͯͬͯΔਓͰɺ HPΛ͚ͳ͍ͯ͠ΔਓΛݟͨ͜ͱ͕ͳ͍ Γ߹͍ͷ1ZUIPOJTUB͕ ͡Ίͨͱ͍͏Λྑ͘ฉ͘
ͪΐͬͱௐͯΈΑ͏
ຊΛങ͖ͬͯͨ
͜ͷਓͬͯɻɻɻ
લʹษڧͨ͠
͜ͷຊͷɻɻ
Χʔχϋϯઌੜʂ
Ͳ͏Β ͓ͬ͞Μʹ༏͍͠ ݴޠΒ͍͠
͓ͬ͞Μʹ༏͍͠ݴޠʢ̍ʣ w ϓϩάϥϛϯά$ݴޠͰ͡Ίͨ w ϙΠϯλͷ֓೦͕͋ΔʢΑΓચ࿅͞ΕͨܗͰʣ w +BWB4DSJQUർΕͰ͏ମྗ͕ͳ͍ w 1ZUIPOಉ༷ɺόοςϦʔಉࠝ w
४උɾڥߏஙָ͕ w γϯάϧόΠφϦ w Ϋϩε։ൃ͕σϑΥ w ˠΫϥυίϯϐϡʔςΟϯά࣌ʹ͍ͯͦ͏
͓ͬ͞Μʹ༏͍͠ݴޠʢ̎ʣ w &NBDTʢ4QBDFNBDTʣͷαϙʔτ͕ߦ͖ಧ͍͍ͯΔ w ՃΧελϚΠζ΄ͱΜͲແ͠Ͱɺ w ϦΞϧλΠϜͰHPMJOUνΣοΫ w อଘ࣌ͷHPGNU w
BVUPDPNQMFUF ࣗಈิɾαδΣετ w HPEPDදࣔ
ืूͯ͠Έͨ ాଜ͞Μ͕֤छ4/4Ͱݺͼ͔͚·ͨ͠
݁Ռ w ԠืͦΕ΄Ͳଟ͘ͳ͔ͬͨʢఆ௨Γʣ w ͔͠͠ԠืऀͲͷํϋΠεϖοΫʂ w &ࢯʢαʔό։ൃ୲ʣ w HPܦݧ w
5ࢯʢΫϥυΠϯϑϥ୲ʣ w "84ͷΤΩεύʔτߴෛՙαΠτͷܦݧ w HPܦݧ͋Γ w ͱΘ͔ͣिؒऑͰແࣄܖͰ͖·ͨ͠ʂ
ܦҢ Ԡื ΩοΫΦϑ ̍ ̌ ̍
̎ ϝϯόʔืू ٕज़ௐࠪɾॳظ։ൃ ։ൃຊ֨Խ ݱࡏʹࢸΔ ։ۀ४උ ࣄۀܭըมߋ ̍ ̎
ମ੍ w ݄͔Β࢝ಈ w ϑϧϦϞʔτ ؔ౦ ؔ &ࢯ 5ࢯ 4ࢯ
݄δϣΠϯ༧ఆ
w ݄͔Β࢝ಈ w ϑϧϦϞʔτ w υΩϡϝϯτڞ༗FTBJP w ৗͷ࿈བྷ w 4MBDL
w (JU)VCνέοτˍϨϏϡʔ ίϛϡχέʔγϣϯ
ٕज़ͷ
ઃܭํ w ૿ాږஶʮݱͰཱͭγε ςϜઃܭͷݪଇʯ w υϝΠϯۦಈΛҙࣝ
ߏཧ w %PDLFSʹΑΔίϯςφϕʔεͷӡ༻ w 'BDUPS"QQ w %PDLFS$PNQPTFʹΑΔ݁߹ࢼݧ w $*ɿ$JSDMF$* w
σϓϩΠɿ"NB[PO&$4
ߏཧʢ̎ʣ w औΓΈத w GBDUPS"QQͷߟ͑ํ w ͬ͘͟Γ͍͏ͱɺɺ w ԿͰίʔυԽͯ͠ཧ w
ԿͰࣗಈԽ w ڥґଘ͢Δಈ࡞ઃఆʹΑͬͯ֎෦ʹ͍ग़͢ w ϩʔΧϧʹͷΛ࣋ͨͳ͍ w ֎෦αʔϏεʹग़དྷΔ͚ͩͤΔ
γεςϜߏਤ $MPVEJOBSZ
ϥΠϒϥϦɾϑϨʔϜϫʔΫ w ϥΠϒϥϦɾϑϨʔϜϫʔΫ w HPB w WJQFS w EBUBCBTFTRM YPˡ/FX
w 03ϚούʔͰͳ͘ w %#εΩʔϚɾ42-͔ΒHPͷΞΫηείʔυΛੜ
HPB w 8FC"1*αʔϏεΛ࡞ΔͨΊͷแׅతͳΈ w ಠࣗܗࣜͷ%4-ʢHPݴޠʣ w ίʔυδΣωϨʔλɾϑϨʔϜϫʔΫ
HPBWTTXBHHFS HPB 4XBHHFS %4- HP :".- +40/ ੜ͢Δίʔυ HP TXBHHFS
ෳݴޠ
HPBͷར w શ෦ೖΓ w ίϯτϩʔϥʢͷTDB⒎PMEJOH w σʔλఆٛ w Τϯίʔμɾσίʔμ
w ϩΨʔ w ϧʔλ w ΫϥΠΞϯτίʔυ w %4-ͷϑΝΠϧׂ͕͍͢͠ w 4XBHHFS TXBHHFSDPEFHFOͩͱ ංେ͕ͪ͠ w ΠϯΫϦϝϯλϧʹඞཁͳ෦ͷίʔυ͚ͩ࠶ੜͯ͘͠ΕΔ w ΫϥΠΞϯτίʔυ·Ͱు͍ͯ͘ΕΔͷͰɺ&&ͷςετ·ͰHPBͱHPݴޠͷதͰ͍݁ͤ͢͞
&&ςετ ςετ ର ςετ ϓϩάϥϜ "1* ༰ νΣοΫ
HPB%4- package design import ( . "github.com/goadesign/goa/design" . "github.com/goadesign/goa/design/apidsl" )
var _ = Resource("bottle", func() { BasePath("/bottles") DefaultMedia(BottleMedia) Action("show", func() { Description("Get bottle by id") Routing(GET("/:bottleID")) Params(func() { Param("bottleID", Integer, "Bottle ID") }) Response(OK) Response(NotFound) }) }) ʙதུʙ Ϧιʔε ΞΫγϣϯ
HPB%4- package design import ( . "github.com/goadesign/goa/design" . "github.com/goadesign/goa/design/apidsl" )
var _ = Resource("bottle", func() { BasePath("/bottles") DefaultMedia(BottleMedia) Action("show", func() { Description("Get bottle by id") Routing(GET("/:bottleID")) Params(func() { Param("bottleID", Integer, "Bottle ID") }) Response(OK) Response(NotFound) }) }) (&5IUUQIPHFFYBNQMFDPNBQJWCPUUMFT ʙதུʙ
HPB%4- package design import ( . "github.com/goadesign/goa/design" . "github.com/goadesign/goa/design/apidsl" )
var _ = Resource("bottle", func() { BasePath("/bottles") DefaultMedia(BottleMedia) Action("show", func() { Description("Get bottle by id") Routing(GET("/:bottleID")) Params(func() { Param("bottleID", Integer, "Bottle ID") }) Response(OK) Response(NotFound) }) }) (&5IUUQIPHFFYBNQMFDPNBQJWCPUUMFT ʙதུʙ
$MPVEJOBSZ w ը૾ͷอଘɾՃʹಛԽͨ͠ΫϥυαʔϏε
εϚϗΞϓϦ͋Δ͋Δ w αʔό͔Βड͚औͬͨ ΞΠίϯը૾ͷαΠζ ͕ ಛେ w Ϧετܥͷը໘දࣔͰ ϝϞϦѹഭ
$MPVEJOBSZ w ΫϥΠΞϯταΠυͰμϯϩʔυ͢ΔαΠζ Λࢦఆ͢ΔͱɺՃͯ͠৴ͯ͘͠ΕΔ w ը૾ͷࢦఆ1VCMJD*%ͱ͍͏*%จࣈྻͰࢦఆ w αʔϏεଆ%#͔ΒΫϥΠΞϯτʹࣄલʹ 1VCMJD*%Λڭ͑Δ
ࠓޙͷ՝ w ΖΖΈ࡞Γ͕͖ͬͯͨ w ࣮ΛՃ͍ͯ͘͠ w ෛՙରࡦ
ͱ͍͏Θ͚Ͱ
ελʔτΞοϓ্ཱͪ͛ͷ ओྗݴޠʹHPݴޠΛ ࠾༻ͯ͠Έͨ
݁
͍·ͷͱ͜Ζ ޭͷ༧ײ ͔͠ͳ͍
࣭ٙԠ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠