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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
350
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
280
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
100
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
130
The Rails Doctrine Decade
koic
2
500
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
7
1.9k
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.4k
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
190
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.8k
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
390
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
260
Security issues being discussed on Web Platforms
petamoriken
0
1.4k
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Documentation Writing (for coders)
carmenintech
77
5.6k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
500
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
GraphQLとの向き合い方2022年版
quramy
50
15k
Building Applications with DynamoDB
mza
96
7.2k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
400
The agentic SEO stack - context over prompts
schlessera
0
960
For a Future-Friendly Web
brad_frost
183
10k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
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ݴޠΛ ࠾༻ͯ͠Έͨ
݁
͍·ͷͱ͜Ζ ޭͷ༧ײ ͔͠ͳ͍
࣭ٙԠ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠