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
650
マイクロサービス化を利用した 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
7.8k
tanukistack ライブコーディング / tanukistack live-coding
mackee
0
110
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
670
perl for shell, awk and sed programmers
mackee
2
2.3k
今更GoのWebフレームワークを作ろうとしているワケ / Why am I trying to create a Go web framework now?
mackee
1
630
database/sqlでNullを扱う歴史とsql.Null[T]の登場 / sql.Null[T] history
mackee
0
530
PerlでつくるフルスクラッチWebAuthn/パスキー認証 / Demonstration of full-scratch WebAuthn/Passkey Authentication written in Perl
mackee
3
4.6k
SRE定例やその辺の取り組みをアプリケーションエンジニア目線で語る / "Observe" about SRE Meeting by Application Engineer
mackee
0
1.9k
TinyGoで使えるORM sqllaの 紹介とTinyGoで使えるようにするための工夫
mackee
0
1.5k
Other Decks in Programming
See All in Programming
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
0
120
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
760
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
120
AIともっと楽するE2Eテスト
myohei
0
330
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
670
git worktree × Claude Code × MCP ~生成AI時代の並列開発フロー~
hisuzuya
1
550
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
21
3.9k
#kanrk08 / 公開版 PicoRubyとマイコンでの自作トレーニング計測装置を用いたワークアウトの理想と現実
bash0c7
1
710
スタートアップの急成長を支えるプラットフォームエンジニアリングと組織戦略
sutochin26
1
4.7k
Result型で“失敗”を型にするPHPコードの書き方
kajitack
5
610
Team operations that are not burdened by SRE
kazatohiei
1
310
A full stack side project webapp all in Kotlin (KotlinConf 2025)
dankim
0
110
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
184
22k
What's in a price? How to price your products and services
michaelherold
246
12k
Navigating Team Friction
lara
187
15k
We Have a Design System, Now What?
morganepeng
53
7.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
Designing Experiences People Love
moore
142
24k
KATA
mclloyd
30
14k
Adopting Sorbet at Scale
ufuk
77
9.4k
Bash Introduction
62gerente
614
210k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
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ʹҠߦͯ͠ਏ͔ͬͨ͜ͱ • νʔϜશମͰ͕ඞཁ • Ҡ২͍ͯ͠Δ࣌Ͳ͏ͯ͠ݟ͕ͨมΘΒͳ͍࣌ظ͕͋Δ • ϚΠΫϩαʔϏεͰҠ২தͱػೳ֦ுதͷͷʹ͚͍͢ͷͰͦ Ε͍͍͔͠Εͳ͍ • ෳͷݴޠѻ͑Δਓ͕ภΓ͕ͪ
• ؾ߹͍ͰΓӽ͍͔͑ͯ͘͠ͳ͍
Ҏ্Ͱ͢