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
Go言語をほぼ毎日書いている話 (序) / Daily coding in Go
Search
Yuuki Tsubouchi (yuuk1)
April 29, 2017
Programming
4
7.5k
Go言語をほぼ毎日書いている話 (序) / Daily coding in Go
そうだ、Go京都。
Yuuki Tsubouchi (yuuk1)
April 29, 2017
Tweet
Share
More Decks by Yuuki Tsubouchi (yuuk1)
See All by Yuuki Tsubouchi (yuuk1)
博士学位論文予備審査 / Scaling Telemetry Workloads in Cloud Applications: Techniques for Instrumentation, Storage, and Mining
yuukit
1
1.6k
MetricSifter:クラウドアプリケーションにおける故障箇所特定の効率化のための多変量時系列データの特徴量削減 / FIT 2024
yuukit
2
160
工学としてのSRE再訪 / Revisiting SRE as Engineering
yuukit
19
12k
Cloudless Computingの論文紹介
yuukit
2
460
#SRE論文紹介 Detection is Better Than Cure: A Cloud Incidents Perspective V. Ganatra et. al., ESEC/FSE’23
yuukit
3
1.6k
エンジニアのためのSRE論文への招待 / Introduction to SRE Papers for Engineers
yuukit
2
11k
博士課程での研究まとめ 2023年1月版 / Summary of my research in the PhD course
yuukit
1
270
AI時代に向けたクラウドにおける信頼性エンジニアリングの未来構想 / DICOMO2022 6A-1
yuukit
7
2.9k
AIOps研究録―SREのための システム障害の自動原因診断 / SRE NEXT 2022
yuukit
10
12k
Other Decks in Programming
See All in Programming
“あなた” の開発を支援する AI エージェント Bedrock Engineer / introducing-bedrock-engineer
gawa
4
240
毎日13時間もかかるバッチ処理をたった3日で60%短縮するためにやったこと
sho_ssk_
1
550
Androidアプリのモジュール分割における:x:commonを考える
okuzawats
1
280
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
420
ゼロからの、レトロゲームエンジンの作り方
tokujiros
3
1.1k
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
0
150
AppRouterを用いた大規模サービス開発におけるディレクトリ構成の変遷と問題点
eiganken
1
450
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
300
Оптимизируем производительность блока Казначейство
lamodatech
0
950
Запуск 1С:УХ в крупном энтерпрайзе: мечта и реальность ПМа
lamodatech
0
950
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
3
590
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
1.3k
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
74
9.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
230
52k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Producing Creativity
orderedlist
PRO
343
39k
Typedesign – Prime Four
hannesfritz
40
2.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
YesSQL, Process and Tooling at Scale
rocio
170
14k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Writing Fast Ruby
sferik
628
61k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Transcript
GoݴޠΛ ΄΅ຖॻ͍͍ͯΔ (ং) ͯͳ id:y_uuki
id:y_uuki / @y_uuk1 Yuuki Tsubouchi https://yuuk.io גࣜձࣾͯͳ WebΦϖϨʔγϣϯΤϯδχΞ / γχΞΤϯδχΞ
Goྺ • 2013͙Β͍͔ΒWatch • 2014ʹ·ͱʹॻ͖࢝Ίͨ • ࠷ॳTour of Go •
Go Kyotoͱ͍͏Jxck ͞ΜʹΑΔϋϯζΦϯʹࢀՃ • mkr / mackerel-client-go ͳͲΛॻ͍ͨ • 2015~2016લ ͍͔ͭ͘ΦϖϨʔγϣϯπʔϧͭͬͨ͘ • grabeni / droot / gokc ͳͲ
http://developer.hatenastaff.com/entry/golang-for-ops
None
ͳΜͰ ຖॻ͖࢝Ίͨͷ͔
ͳΜͰຖॻ͖࢝Ίͨͷ͔ • ΦϖϨʔγϣϯ͢ΔΑΓɺιϑτΣΞͱ͔จষΛॻ ͍ͯΔͱ͖ͷ΄͏͕࣮͖ • ϒϩά͍͍͚Ͳ͍͔ͭදతϓϩμΫτΛ࡞ͬͯΈ ͍ͨ • ͔͠͠ɺιϑτΣΞΛॻ͘εΩϧͱɺॻ্͖͛Δମ ྗ͕Γͳ͍
=> ຖίʔυॻ͜͏
Site Reliability Engineering HOW GOOGLE RUNS PRODUCTION SYSTEMS Photo by
O’reilly Media / CC by 3.0 http://shop.oreilly.com/product/0636920041528.do https://creativecommons.org/licenses/by/3.0/deed
ͳʹΛ ຖॻ͍͍ͯΔͷ͔
DiamonDB https://github.com/yuuki/diamondb
write datapoints Kinesis Streams Lambda read datapoints ElastiCache DynamoDB Lambda
TTL expired flush write Web App (Golang) S3 read read read
write datapoints Kinesis Streams Lambda read datapoints ElastiCache DynamoDB Lambda
TTL expired flush write Web App (Golang) S3 read read read AWSͷෳͷσʔλετΞΛ Έ߹Θͤͨ Go ΣϒΞϓϦέʔγϣϯ
ͳʹΛຖॻ͍͍ͯΔͷ͔ • DiamonDB • ͍͍ͩͨಉ͡ΞʔΩςΫνϟͷͷΛۀͰ։ൃத • ίʔυϕʔεۀͷͱผ • ͜Ε·Ͱͭͬͨ͘πʔϧͷϝϯςφϯε •
ۀͰ͍ͬͯΔͷͰɺमਖ਼ػೳՃ • Pull RequestରԠ
ຖॻͨ͘Ίʹ Δ͜ͱ
ຖॻͨ͘ΊʹΔ͜ͱ • ʮຖʯࣗମʹҙຯͳ͘ɺܧଓతʹίʔυΛॻ͚Δ͔͕େࣄ • 1 commit / day ͰΑ͍ •
Ͳ͏͚ͯ͠͠Εɺgit commit —date Ͱ͔͖͔͑ • ͜ΕͰϞνϕʔγϣϯ͕ଓ͘ͳΒͦΕͰΑ͍ • ฏ͋·Γॻ͚ͳ͍ͷͰɺͷ͏ͪʹΠγϡʔΛ༻ҙ • ۀͱ݁ͼ͚ͭΔ • ෳͷϓϩδΣΫτΛͭ
ຖॻ͍͍ͯͯ Θ͔ͬͨ͜ͱ
ຖॻ͍͍ͯͯΘ͔ͬͨ͜ͱ • ຖίʔυॻͨ͘ΊͷϦζϜ͕Ͱ͖Δ • ϝϞϦʹͷͬͯΔͷͰɺ࣍ʹॻ͘ͱ͖ʹ·ͳ͍ • ͍͖ͳΓେ͖͘มߋ͢ΔͷͰͳ͘ɺখ͞ͳมߋΛੵ ΈॏͶΔΑ͏ʹͳΔ • ʹແཧ͠ͳ͘ͳΔ
• ແཧΛ͢Δͱ݁ہଓ͔ͳ͍
Go tips
https://github.com/yuuki/yuuki/blob/master/golang/http-api-server-stack.md GoͰHTTP APIαʔόॻ͘ͱ͖ͷελοΫ GoͰHTTP APIαʔόॻ͘ ͱ͖ͷελοΫ
https://medium.com/@haya14busa/idiomatic-go-readability-f0b42ef381dc
https://github.com/golang/go/wiki/CodeReviewComments
;ͩΜΈ͍ͯΔ Gophers • @deeeet • @mattn • @motemen • @Songmu
• @haya14busa • @davecheney • @dgryski
Πϯϓοτ ͱ Ξτϓοτ
ΠϯϓοτͱΞτϓοτ • Πϯϓοτ: ຊΛಡΉɺϒϩάΛಡΉͳͲ • Ξτϓοτ: ٕज़ஊٛɺൃදɺϒϩάɺίʔυͳͲ • ݺٵͷΑ͏ͳͷ •
Πϯϓοτ͢ΔͱΞτϓοτͨ͘͠ͳΔɻΞτϓο τ͢Δͱ·ͨΠϯϓοτΛͱΊΔ • ΞτϓοτҰݟແବʹΈ͑Δ͕ɺఆظతʹΞτϓο τ͢Δ͜ͱͰΠϯϓοτ૿͍͑ͯ͘
GoݴޠΛ ΄΅ຖॻ͍͍ͯΔ (ং) ͯͳ id:y_uuki