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への移行事例
Search
mackee
March 25, 2024
Programming
0
820
マイクロサービス化を利用した Goへの移行事例
golang.tokyo #34
https://golangtokyo.connpass.com/event/310844/
mackee
March 25, 2024
Tweet
Share
More Decks by mackee
See All by mackee
ワンバイナリWebサービスのススメ
mackee
10
8k
tanukistack ライブコーディング / tanukistack live-coding
mackee
0
120
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
830
perl for shell, awk and sed programmers
mackee
2
2.4k
今更GoのWebフレームワークを作ろうとしているワケ / Why am I trying to create a Go web framework now?
mackee
1
800
database/sqlでNullを扱う歴史とsql.Null[T]の登場 / sql.Null[T] history
mackee
0
690
PerlでつくるフルスクラッチWebAuthn/パスキー認証 / Demonstration of full-scratch WebAuthn/Passkey Authentication written in Perl
mackee
3
5k
SRE定例やその辺の取り組みをアプリケーションエンジニア目線で語る / "Observe" about SRE Meeting by Application Engineer
mackee
0
2k
TinyGoで使えるORM sqllaの 紹介とTinyGoで使えるようにするための工夫
mackee
0
1.5k
Other Decks in Programming
See All in Programming
The State of Fluid (2025)
s2b
0
200
Scale out your Claude Code ~自社専用Agentで10xする開発プロセス~
yukukotani
9
2.6k
学習を成果に繋げるための個人開発の考え方 〜 「学習のための個人開発」のすすめ / personal project for leaning
panda_program
1
110
MCPで実現するAIエージェント駆動のNext.jsアプリデバッグ手法
nyatinte
6
840
GUI操作LLMの最新動向: UI-TARSと関連論文紹介
kfujikawa
0
1k
AHC051解法紹介
eijirou
0
620
AI時代のドメイン駆動設計-DDD実践におけるAI活用のあり方 / ddd-in-ai-era
minodriven
23
9k
The state patternの実践 個人開発で培ったpractice集
miyanokomiya
0
150
自作OSでDOOMを動かしてみた
zakki0925224
1
1.4k
コーディングエージェント時代のNeovim
key60228
1
100
Portapad紹介プレゼンテーション
gotoumakakeru
1
130
CSC305 Summer Lecture 06
javiergs
PRO
0
100
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
Navigating Team Friction
lara
189
15k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
A designer walks into a library…
pauljervisheath
207
24k
Become a Pro
speakerdeck
PRO
29
5.5k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Transcript
ϚΠΫϩαʔϏεԽΛར༻ͨ͠ GoͷҠߦࣄྫ @mackee_w a.k.a @macopy
Δਓ • X: @mackee_w • GitHub: @mackee • ໘ന๏ਓΧϠοΫ •
Tonamel αʔόʔαΠυΤϯδχΞ
GoͷҠߦΛͨ͠αʔϏε
None
ݱࡏͷػೳͷ୲ • PerlϞϊϦε෦ • ΞΧϯτཧɾೝূɾ௨ • GoϚΠΫϩαʔϏε෦ • ্هҎ֎શͯ •
τʔφϝϯτදɾΠϕϯτཧɾओ࠵ஂମཧɾܾࡁetc…
ͳͥGoʹ͔ͨ͠ʁ • 2020࣌PerlͷGraphQLϥΠϒϥϦͷύʔείετ͕ॏ͔ͬͨ • ͪΐ͏ͲτʔφϝϯτදʹػೳΛՃ͢Δͱ͜ΖͩͬͨͷͰɺ·Δ·Δ GoʹҠ২+৽ن࣮͢Δ͜ͱʹͨ͠ • ͔͜͜Βࡉ͔͘PerlϞϊϦε͔ΒGoϚΠΫϩαʔϏεΓग़͍ͯ͘͠ • ΧϠοΫࣾͰGoͷݟ͋ͬͨͷͰɺҠߦઌͷݴޠͱͯ͠GoΛબͿ
ͷࣗવͩͬͨ
GoͷҠߦͷํ • ແཧʹPerlΛണ͕͞ͳ͍ • طଘػೳͷվम৽ػೳΛಋೖ͢Δͱ͖ʹΔ • ઌʹҠ২Λͬͯಉ͡ػೳͰϦϦʔε্ͨ͠ͰɺվमΛΔͱ͍͍ײ͡ • σʔλετΞطଘͷαʔϏεͱ͢Δ •
τʔφϝϯτද͚ͩDynamoDBɺ͋ͱશͯAurora MySQL͕ͩαʔ Ϗε͝ͱʹσʔλϕʔεΛ͚͍ͯΔ
Ҡߦͷख๏ ΠϕϯτཧαʔϏεͷҠߦ࣌ͷࣄྫ
υϝΠϯΠϕϯτ • ݩʑPerlͷϞϊϦεҰ෦͕ϞδϡϥϞϊϦεతͳΞʔΩςΫνϟʹ ͳ͍ͬͯͨ • ڥք͚ͮΒΕͨίϯςΩετ͝ͱʹಠཱ͍ͯͯ͠ɺίϯςΩετؒ ͷσʔλͷΓऔΓυϝΠϯΠϕϯτͰΔ • υϝΠϯΠϕϯτ: ίϯςΩετͰൃੜͨ͠ग़དྷࣄͷ͜ͱ
• υϝΠϯΠϕϯτΛίϯςΩετؒͰ͛߹ͬͯେ͖ͳػೳΛ࣮ݱ͢ Δ
ୈ0ஈ֊: υϝΠϯΠϕϯτͷඇಉظԽ • ͦΕ·ͰυϝΠϯΠϕϯτ࣮ࡍʹଞͷؔͷಉظతͳݺͼग़͠ ͩͬͨ • ֎෦ͷΠϕϯτόεΛհͨ͠ඇಉظԽΛ·ͣߦͬͨ ίϯςΩετ" ίϯςΩετ# Πϕϯτόε
υϝΠϯ Πϕϯτ υϝΠϯ Πϕϯτ Perlϓϩηε
ୈ1ஈ֊: υϝΠϯΠϕϯτͷՃ • υϝΠϯΠϕϯτΛൃߦ͍ͯ͠ͳ͔ͬͨλΠϛϯάͰυϝΠϯΠϕ ϯτΛൃߦ͢ΔΑ͏ʹͨ͠ • ୈ2ஈ֊Ͱ৽αʔϏεଆͰσʔλͷಉظΛऔΔͨΊ ίϯςΩετ" Πϕϯτόε υϝΠϯ
Πϕϯτ Perlϓϩηε
ୈ2ஈ֊: μϒϧϥΠτ • ৽αʔϏεଆͰυϝΠϯΠϕϯτΛsubscribeͯࣗ͠ͷαʔϏεʹ ߹ͬͨܗͰσʔλΛॻ͖ࠐΉ • GoͷαʔϏεͰ·ͩϢʔβʔ͔ΒͷϦΫΤετΛड͚͚ͳ͍ ίϯςΩετ" Πϕϯτόε υϝΠϯ
Πϕϯτ Perlϓϩηε υϝΠϯ Πϕϯτ ίϯςΩετ$ GoαʔϏε
ୈ3ஈ֊: ٯํμϒϧϥΠτ • ৽αʔϏεଆͰϦΫΤετΛड͚͚࢝ΊΔɻҰ෦ͷσʔλͷओैΛೖΕସ͑Δ • ·ͩଞͷػೳ͕Perlϓϩηεଆʹ͍ͬͯΔͷͰ৽αʔϏεଆͰൃߦͨ͠υϝΠ ϯΠϕϯτΛͱʹچαʔϏεଆͷσʔλΛߋ৽͢Δ ίϯςΩετ" Πϕϯτόε υϝΠϯ
Πϕϯτ Perlϓϩηε υϝΠϯ Πϕϯτ ίϯςΩετ$ GoαʔϏε
ୈ4ஈ֊: Perlଆͷػೳͷআ • ͋ΔίϯςΩετͷػೳΛશʹ৽αʔϏεଆʹҠߦͨ͠ΒPerlଆͷ ίϯςΩετͷίʔυΛআ͠ͰσϓϩΠ͢Δ • υϝΠϯΠϕϯτͦͷ··ϩά༻ʹ͍ͯ͠Δ ίϯςΩετ" Πϕϯτόε υϝΠϯ
Πϕϯτ Perlϓϩηε ίϯςΩετ$ GoαʔϏε
Ҡߦͷίπ • ϏοάόϯΛͱʹ͔͘ආ͚Δ • ݩͷίʔυͷҙਤΛͪΌΜͱཧղ͢Δ • ॻ͍ͨਓ͕͍Εฉ͘ ͍ͳ͚ΕBlameͳͲΛؤுΔ • Ҡߦظʹ෦͚APIʹΑΔಉظతݺͼग़͠ซ༻͢Δ
• ͨͩ͠ϧʔϓʹҙ • ࠷దͳΓํαʔϏεಛੑυϝΠϯʹ߹Θͤͯߟ͑Δ͔͠ͳ͍…
GoʹҠߦͨ͠ྑ͔ͬͨ͜ͱ • ܕ͕͍ͭͯϋοϐʔ • ਓͷ࠾༻͕͘͢͠ͳͬͨ…Α͏ͳؾ͕͢Δ • ͱ͍͑νʔϜϝϯόʔΈΜͳPerlॻ͘ػձ͕·ͩগ͋͠Γ·͢ • GoPHPRuby, JavaʹൺͨΒগͳ͍ͷͰͦ͜·Ͱ͕ࠩͳ͍͔͠Εͳ͍
• ϦΫΤετ͋ͨΓͷຊ൪Ϧιʔεͷফඅ͕গͳ͍ • ݩʑPerlগͳ͍͕ɺ͞Βʹগͳ͍
GoʹҠߦͯ͠ਏ͔ͬͨ͜ͱ • νʔϜશମͰ͕ඞཁ • Ҡ২͍ͯ͠Δ࣌Ͳ͏ͯ͠ݟ͕ͨมΘΒͳ͍࣌ظ͕͋Δ • ϚΠΫϩαʔϏεͰҠ২தͱػೳ֦ுதͷͷʹ͚͍͢ͷͰͦ Ε͍͍͔͠Εͳ͍ • ෳͷݴޠѻ͑Δਓ͕ภΓ͕ͪ
• ؾ߹͍ͰΓӽ͍͔͑ͯ͘͠ͳ͍
Ҏ্Ͱ͢