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
2.1k
Go初心者がgoroutineで挑んだFTPプロキシ
Slide for 2019 Go Conference in Fukuoka
ryu
July 13, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
Flutterで分数(Fraction)を表示する方法
koukimiura
0
130
PHPに関数型の魂を宿す〜PHP 8.5 で実現する堅牢なコードとは〜 #phpcon_hiroshima / phpcon-hiroshima-2025
shogogg
1
270
AI Agent 時代的開發者生存指南
eddie
3
1.9k
CSC305 Lecture 08
javiergs
PRO
0
230
Writing Better Go: Lessons from 10 Code Reviews
konradreiche
0
1.5k
20251016_Rails News ~Rails 8.1の足音を聴く~
morimorihoge
2
500
CSC509 Lecture 06
javiergs
PRO
0
260
Android16 Migration Stories ~Building a Pattern for Android OS upgrades~
reoandroider
0
130
Devoxx BE 2025 Loom lab
josepaumard
0
100
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
33k
理論と実務のギャップを超える
eycjur
0
140
CSC305 Lecture 04
javiergs
PRO
0
270
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Facilitating Awesome Meetings
lara
56
6.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Making Projects Easy
brettharned
120
6.4k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
115
20k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
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ɺόϯόϯ͍·͠ΐʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠