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初心者がgoroutineで挑んだFTPプロキシ
Search
ryu
July 13, 2019
Programming
0
1.6k
Go初心者がgoroutineで挑んだFTPプロキシ
Slide for 2019 Go Conference in Fukuoka
ryu
July 13, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
PostmanでAPIの動作確認が楽になった話
h455h1
0
120
What We Can Learn From OSS
inouehi
0
400
SwiftUI Performance 不要なViewの再描画と更新を抑える
bigamitiongit
1
150
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
170
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
25
7.8k
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
110
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.2k
元気予報
suu_mire0726
0
850
0→1と1→10の狭間で Javaという技術選定を振り返る/Reflecting on the Decision to Choose Java Between Scaling from 0 to 1 and 1 to 10
jaguar_imo
2
360
Folding Cheat Sheet #2
philipschwarz
PRO
0
110
エンターテイメント業界で利用されるAWS
demuyan
0
200
Rails と人魚の話/rails-and-mermaid
sanfrecce_osaka
0
100
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
24
5.8k
Navigating Team Friction
lara
177
13k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
24
2.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
658
120k
A Tale of Four Properties
chriscoyier
150
22k
Raft: Consensus for Rubyists
vanstee
132
6.2k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Building Applications with DynamoDB
mza
88
5.6k
[RailsConf 2023] Rails as a piece of cake
palkan
22
3.9k
Infographics Made Easy
chrislema
237
18k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
220
21k
Adopting Sorbet at Scale
ufuk
67
8.6k
Transcript
(Pॳ৺ऀ͕ ༄ɹ২(.01FQBCP *OD (PSPVUJOFͰΜͩ '51QSPYZ։ൃ
༄ɹ২!IFBU (.0ϖύϘΠϯϑϥΤϯδχΞ ϦϡɹδϯγΫ
झຯंͱ༡Ϳࣄ
None
ೖࣾલ࡞ͬͨͷ
ϩϦϙοϓʁ ʮࠃ࠷େڃͷϨϯλϧαʔόʔαʔϏεʯ
ϩϦϙοϓʂ ݄։࢝ ϨϯλϧαʔόαʔϏε ສਓҎ্ͷ͓٬͞Μ ສҎ্ͷαΠτެ։
ϩϦϙοϓʂͰ͏'51 '51ͷଓ࣌8FCαʔόͷ1VCMJD*1ଓ )PTUVTFSTMPMJQPQKQ *1 )PTUVTFSTMPMJQPQKQ *1 )PTUVTFSTMPMJQPQKQ *1 VTFSTMPMJQPQKQ
$PNNVOJDBUJPO %BUBUSBOTGFS $MJFOU
ϩϦϙοϓʂͰ͏'51 8FCαʔόͷσʔλΛҠઃ͢Δͱ σʔλҠઃ $MJFOU
ϩϦϙοϓʂͰ͏'51 8FCαʔόͷσʔλΛҠઃ͢Δͱ 8FCαʔόΛҠઃͨ͠ΒଓઌมΘΔ $PNNVOJDBUJPO %BUBUSBOTGFS VTFSTMPMJQPQKQ $MJFOU
ͳͥ'51ΛQSPYZ͢Δʁ Ϣʔβͷརศੑ αʔό൪߸ΛѲ͢Δඞཁͳ͍ Ϧιʔεཧ ଞͷ8FCαʔόʹҠઃͯ͠ɺϢʔβʹଓઌมߋͷ௨͕ෆཁ ηΩϡϦςΟʔ 8FCαʔόͷ1VCMJD*1ग़དྷΔ͚ͩด͍ͨ͡ υϝΠϯʹߏΘͣ'514͕༻Մೳ
Q'51հ 6TFS*%Λ,FZͱͯ͠ଓઌΛ୳͢ ΫϥΠΞϯτ͔ΒɺQ'51ࣗମ͕'51αʔόͷΑ͏ʹݟ͑Δ $MJFOU Q'51 $PNNBOE
Q'51հ ̍ηογϣϯ͋ͨΓ̏ͭͷ(PSPVUJOF͕ੜ 64&3\*%^ $NESFBEFS 3FTQPOTFSFBEFS $MJFOUIBOEMFS $POOFDU 3FTQPOTF 3FTQPOTF $PNNBOE
$PNNBOE 3FTQPOTF 3FTQPOTF CVpP $PNNVOJDBUJPO
,FZGFBUVSF $MJFOUͱ'514FSWFSͷύέοτΛಡΉ(PSPVUJOF࣮ߦ
ॳΧφϦΞϦϦʔε
ॳΧφϦΞϦϦʔεࣦഊ
Կ͕ͩͬͨͷ͔ Q'51'51αʔό͔Βͷ3FTQPOTFΛͦͷ··ฦ͢ $NESFBEFS 3FTQPOTFSFBEFS $PNNBOE $PNNBOE 3FTQPOTF 3FTQPOTF CVpP $PNNVOJDBUJPO
σʔλసૹ͕ σʔλଓΫϥΠΞϯτͱ'51αʔό͕ʹଓ͢ΔΈͩͬͨ %BUB$POOFDUUP 1"47SFTQPOTF 1"47SFTQPOTF $MJFOU Q'51
'51αʔό͕ 1SJWBUF*1Λฦͯ͠ଓ͢ΔͨΊ
ਅ໘͗͢Δύλʔϯ ݩଓ*1ͱσʔλଓ*1͕ҧ͏߹ΤϥʔʹͳΔΫϥΠΞϯτ $MJFOU Q'51 &SSPS
͗͢Δύλʔϯ উखʹଓઌͷ*1ΛΓସ͑ΔΫϥΠΞϯτ $MJFOU Q'51 AAߦ͜͏??
ղܾࡦʁ σʔλసૹ1SPYZ͢Δ సૹϞʔυʹΑͬͯ-JTUFOFS%JBMFSΛઃఆͯ͠σʔλΛதܧ %BUB$POOFDUUP 1"47SFTQPOTF 1"47SFTQPOTF $MJFOU
Q'51 %BUB$POOFDUUP
(PSPVUJOF͕૿͑ͨ σʔλసૹΛॲཧ͢ΔͨΊɺ(PSPVUJOFΛՃ 1"47 $NESFBEFS 3FTQPOTFSFBEFS $MJFOUIBOEMFS $POOFDU $MJFOUˠ0SJHJO 0SJHJOˡ$MJFOU %BUBIBOEMFS
1"47 $POOFDU 4FUMJTUFOFS
͓͔͛ͰֶΜٕͩज़ 8SJUFDPOOFDUJPOʹ&P'ΛૹΔํ๏ "DUJWFసૹϞʔυͷͨΊɺTPDLFUSFVTFઃఆํ๏
Ͳ͔͜-FBLͯ͠Δʁ "MMPDBUFETPDLFU͕૿Ճͬ͠ͺͳ͠
1"47 $POOFDU 1"47 $POOFDU 4FUMJTUFOFS -FBLΛ୳ͦ͏ -FBLͲ͜Ͱ͠ΐ͏
$NESFBEFS 3FTQPOTFSFBEFS $MJFOUIBOEMFS $MJFOUˠ0SJHJO 0SJHJOˡ$MJFOU %BUBIBOEMFS
1"47 $POOFDU 1"47 $POOFDU 4FUMJTUFOFS -FBLΛ୳ͦ͏ $MJFOUIBOEMFS
$MJFOUˠ0SJHJO 0SJHJOˡ$MJFOU $NESFBEFS %BUBIBOEMFS 3FTQPOTFSFBEFS
-FBLΛ୳ͦ͏ ෛՙςετ͢Ε-FBLൃੜ͕Θ͔Γ͍͢
-FBLΛ୳ͦ͏ -FBLͨ࣌͠ͷϩά͔ΒॴΛಛఆ $PNNBOESFBE͕-FBL͢Δ߹ͷϩά ਖ਼ৗʹऴྃ͢Δ߹ͷϩά
-FBLΛࢭΊΖʂ
-FBLΛࢭΊΖʂ -JNJUDMJFOUDPNNBOEVOUJMHFUSFTQPOTF ϨεϙϯεΛฦ͢લʹ࣍ͷίϚϯυΛ'51αʔόʹඈ͢ࣄ͕Ͱ͖ͨ ͜ΕʹΑͬͯ'51αʔόͷॲཧ͕ϋϯάʹͳΓɺ)BOEMFS͕σουϩοΫঢ়ଶʹͳΔ
-FBLΛࢭΊΖʂ 'PSMPPQˠ$IBOOFMXBJU 4MFFQͳͲͳ͠ͰGPSMPPQ͠ͳ͕Βঢ়ଶΛͭίʔυɺ ϦιʔεΛٵ͍ࠐΜͰ͠·͏ͷͰϋϯάͷݪҼʹͳΔ
-FBLΛࢭΊΖʂ $PNNBOEMJOFDIFDL ΫϥΠΞϯτ͕ਖ਼͘͠ͳ͍ίϚϯυΛૹΔ͕࣌͋ͬͨ ͜͏͍͏ίϚϯυΛ'51αʔόʹૹͬͯ͠·͏ͱɺॲཧͰ͖ͣϋϯάʹͳΔ
#FGPSF /PX ൺֱ
̎ඖͷΧφϦΞ
̍ϲ݄Ҏ্ͳ͘८ߤத ରΞΧϯτ ΞΧϯτ ಉ࣌ଓ ࠷େDPOOFDUJPOT ̍ଓ DPOOFDUJPOT
·ͩ·ͩमਖ਼த ࠓ#VH-FBLͳͲ͕ݟ͚ͭΒΕΔͷͰɺ13ఏग़͠ͳ͕ΒରԠத
సૹϞʔυผ࣮ Q'51UP'51αʔόͷసૹϞʔυݸผઃఆՄೳ ͜ΕʹΑͬͯɺҎԼͷ̐ͭͷଓέʔε͕ग़དྷΔ "DUJWF5P"DUJWF4FUEJBMFSGPSDMJFOU MJTUFOFSGPSPSJHJO "DUJWF5P1BTTJWF4FUEJBMFSGPSDMJFOUBOEPSJHJO 1BTTJWF5P"DUJWF4FUMJTUFOFSGPSDMJFOUBOEPSJHJO 1BTTJWF501BTTJWF4FUMJTUFOFSGPSDMJFOU EJBMFSGPSPSJHJO
·ͱΊ
։ൃॳ৺ऀͰɺ ӡ༻Ͱ͑Δ'511SPYZ։ൃʹࢀՃͰ͖·ͨ͠ʂ
ܰͯ͘ɺ؆୯ͳ ฒྻॲཧͷ։ൃํ๏͕͔͋ͬͨΒ
(PSPVUJOFศརͰͨ͠ʂ
͔͠͠ɺ Ͳ͔͜-FBL͕ൃੜ͍ͯ͠Δͷ͔͠Ε·ͤΜ
͍ɺ-FBLඞͣ͋Γ·͢ʂ
ࠓݟ͑ͳ͍͕ രʹͳͬͯདྷΔ͔͠Ε·ͤΜ
ͪΌΜͱ%FCVHͯ͠ɺ (PSPVUJOFɺόϯόϯ͍·͠ΐʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠