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
20歳の僕が経験した Perlエンジニアへの道
Search
Hagihara Ryosuke
January 26, 2019
Technology
1
4.8k
20歳の僕が経験した Perlエンジニアへの道
YAPC::Tokyo 2019 ランチスポンサーセッション 株式会社ミクシィ 登壇資料
Hagihara Ryosuke
January 26, 2019
Tweet
Share
More Decks by Hagihara Ryosuke
See All by Hagihara Ryosuke
航空機事故に学ぶ サービスのインシデント考察・再発防止
raryosu
1
560
負債を減らした新人の話
raryosu
0
1.6k
minimo18新卒エンジニアの働き方
raryosu
0
1.9k
高等専門学校のウェブサイトの 現状と課題
raryosu
0
280
オブジェクト指向入門 第2版 第1章 ソフトウェアの品質 / Object-Oriented Software Construction Chap.1
raryosu
0
980
Other Decks in Technology
See All in Technology
綺麗なデータマートをつくろう_データ整備を前向きに考える会 / Let's create clean data mart
brainpadpr
2
100
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
5.4k
業務自動化プラットフォーム Google Agentspace に入門してみる #devio2025
maroon1st
0
190
生成AI_その前_に_マルチクラウド時代の信頼できるデータを支えるSnowflakeメタデータ活用術.pdf
cm_mikami
0
120
Oracle Cloud Infrastructure:2025年9月度サービス・アップデート
oracle4engineer
PRO
0
420
多様な事業ドメインのクリエイターへ 価値を届けるための営みについて
massyuu
1
250
神回のメカニズムと再現方法/Mechanisms and Playbook for Kamikai scrumat2025
moriyuya
4
540
AI Agentと MCP Serverで実現する iOSアプリの 自動テスト作成の効率化
spiderplus_cb
0
500
いまさら聞けない ABテスト入門
skmr2348
1
200
extension 現場で使えるXcodeショートカット一覧
ktombow
0
210
コンテキストエンジニアリングとは? 考え方と応用方法
findy_eventslides
4
900
ZOZOのAI活用実践〜社内基盤からサービス応用まで〜
zozotech
PRO
0
180
Featured
See All Featured
Making Projects Easy
brettharned
119
6.4k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
The Cult of Friendly URLs
andyhume
79
6.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
610
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
How STYLIGHT went responsive
nonsquared
100
5.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Rails Girls Zürich Keynote
gr2m
95
14k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Transcript
20ࡀͷ͕ܦݧͨ͠ PerlΤϯδχΞͷಓ גࣜձࣾϛΫγΟ ഡݪ ྋհ @raryosu :"1$5PLZPϥϯνηογϣϯ
͜ͷϓϨθϯʹ͍ͭͯ 1FSMΛॻ͍ͨ͜ͱ͕ͳ͍৽ଔΤϯδχΞ ͕ 1FSMΛॻ͘8FCΤϯδχΞͱͯ͠ಇ͍ͯ ԿΛײͨ͡ͷ͔ΛޠΔ
ࣗݾհ ͗Β Γΐ͏͚͢ ഡݪ ྋհ ‣ ΒΓΐ͢!SBSZPTV ‣ ੜ·Εࡀ ‣
݄৽ଔೖࣾʢߴઐଔʣ ‣ NJOJNPࣄۀ෦ΤϯδχΞʢ։ൃάϧʔϓ༡ܸνʔϜʣ ‣ αʔόαΠυ։ൃɾ$9ϏδωεαΠυͷαϙʔτ
NJOJNP αϩϯελοϑ༧αʔϏε ඒ༰ࢣɾωΠϦετFUDʹ༧
NJOJNP αϩϯελοϑ༧αʔϏε ඒ༰ࢣɾωΠϦετFUDʹ༧ ສμϯϩʔυ ͋Γ͕ͱ͏ʂʂʂʂʂ
NJOJNP ʙͷए͍ঁੑʹ େਓؾͷαʔϏε
ʙͷए͍ঁੑʹ େਓؾͷαʔϏε NJOJNP
͜ͷϓϨθϯʹ͍ͭͯ 1FSMΛॻ͍ͨ͜ͱ͕ͳ͍৽ଔΤϯδχΞ ͕ 1FSMΛॻ͘8FCΤϯδχΞͱͯ͠ಇ͍ͯ ԿΛײͨ͡ͷ͔ΛޠΔ
ଐ
ଐͷํ๏ ৽ଔଐͷΩʔϫʔυ ଟ֯తͳࢹ͔ΒͰ͖ΔڥΞαΠϯ
ଐͷํ๏ ‣ ٕज़ྖҬࣥߦһ ҎԼ$50 ɾਓࣄͱͷPO ‣ ֤෦ॺͱ໘ஊ ‣ $50ʹΑΔਪન෦ॺ ‣
ຊਓر෦ॺ ‣ ෦ॺ͔Βͷࢦ໊ ‣ ֤໘ஊʹ͍ͭͯ໘ஊઌͱຊਓ͔ΒϑΟʔυόοΫ ‣ $50ͱਓࣄʹΑͬͯଐΛܾఆ
NJOJNPͷଐ໘ஊ Ͳ͏͍͏ʹڵຯ͋Δʁ Ϛωʔδϟ
NJOJNPͷଐ໘ஊ Ͳ͏͍͏ʹڵຯ͋Δʁ ΣϒϑϩϯτͰ͢ʂ Ͱɼ෯͘Γ͍ͨͰ͢ɽ ΤϯδχΞϦϯάͦΕҎ֎ʂ Ϛωʔδϟ
NJOJNPͷଐ໘ஊ Ͳ͏͍͏ʹڵຯ͋Δʁ ΣϒϑϩϯτͰ͢ʂ Ͱɼ෯͘Γ͍ͨͰ͢ɽ ΤϯδχΞϦϯάͦΕҎ֎ʂ ͏ͪͰগ͠1FSMॻ͚͘Ͳ େৎʁ Ϛωʔδϟ Ϛωʔδϟ
NJOJNPͷଐ໘ஊ Ͳ͏͍͏ʹڵຯ͋Δʁ ΣϒϑϩϯτͰ͢ʂ Ͱɼ෯͘Γ͍ͨͰ͢ɽ ΤϯδχΞϦϯάͦΕҎ֎ʂ ͏ͪͰগ͠1FSMॻ͚͘Ͳ େৎʁ 1FSMॻ͍ͨ͜ͱͳ͍͠Α͘ΒΜ͚Ͳ ͕ΜΓ·͢ʂʔ·Μ͍ͨͰ͢ʂ Ϛωʔδϟ
Ϛωʔδϟ
NJOJNPͷଐ໘ஊ 1FSMॻ͍ͨ͜ͱͳ͍͠Α͘ΒΜ͚Ͳ ͕ΜΓ·͢ʂʔ·Μ͍ͨͰ͢ʂ
NJOJNPͷଐ໘ஊ ‣ 1FSMͩΖ͏ͱͳΜͩΖ͏ͱษڧʹͳΓͦ͏ʜ ‣ αʔϏε෦ॺྑͦ͞͏ ‣ Γ͍ͨ͜ͱΛߟ͑Δͱ࠷Ϛον͢Δ ‣ 1FSMΛʮݏʯͬͯݴ͑Δཧ༝ͳ͍ͳʜ 1FSMॻ͍ͨ͜ͱͳ͍͠Α͘ΒΜ͚Ͳ
͕ΜΓ·͢ʂʔ·Μ͍ͨͰ͢ʂ
ແࣄʹʜ NJOJNPͷଐ͕ܾఆ
̼JOJNPͷϓϩμΫτ Application Server Mojolicious εϚϗΞϓϦ αϩϯ͚༧ཧγεςϜ Web൛αʔϏε API (JSON RPC)
NJOJNPͷϓϩμΫτ αϩϯ͚༧ཧγεςϜ εϚϗΞϓϦ iOS: Swift, Obj-C Android: Kotlin, Java API,
WebΞϓϦέʔγϣϯ Perl (Mojolicious) Perl (Mojolicious), React ܝࡌऀ͚ΦϯυϝσΟΞ WordPress
ΒΓΐ͢ͷकඋൣғʙϓϩμΫτʙ αϩϯ͚༧ཧγεςϜ εϚϗΞϓϦ iOS: Swift, Obj-C Android: Kotlin, Java API,
WebΞϓϦέʔγϣϯ Perl (Mojolicious) Perl (Mojolicious), React ܝࡌऀ͚ΦϯυϝσΟΞ WordPress
ΒΓΐ͢ͷकඋൣғʙϓϩμΫτʙ αϩϯ͚༧ཧγεςϜ εϚϗΞϓϦ iOS: Swift, Obj-C Android: Kotlin, Java API,
WebΞϓϦέʔγϣϯ Perl (Mojolicious) Perl (Mojolicious), React ܝࡌऀ͚ΦϯυϝσΟΞ WordPress Web൛αʔϏεΛ୲͢Δ ϝΠϯΤϯδχΞͱͯ͠ଐ
ΒΓΐ͢ͷकඋൣғʙͦͷଞʙ ΧελϚʔαϙʔτ $4 ༻ཧπʔϧ $4͚ΤϯδχΞϦϯάࢧԉʢՄࢹԽʣ #4͚ΤϯδχΞϦϯάࢧԉʢՄࢹԽʣ ʜFUD
͏πʔϧɾݴޠͳͲ ‣ 1FSM .PKPMJDJPVT ‣ )5.-$44 4$44 ‣
.Z42- ‣ 3FEBTIʢσʔλՄࢹԽʣ ‣ "84 &$ 4 3PVUF 3%4 4&4FUD FUD
ଐ࣌ͰͷΒΓΐ͢ͷΤϯδχΞϦϯάͷϨϕϧ ‣ 1FSMॻ͍ͨ͜ͱͳ͍ ‣ 1FSMΛॻ͖ͨ͘ͳ͍ͱ͍͏ؾ࣋ͪͳ͍ ‣ ߴઐଔ ‣ όΠτͰ3BJMTͰ࡞ΒΕͨγεςϜͷอकΛͯͨ͠ ‣
.7$ͬͯΔɽΞʔΩςΫνϟʹ͍ͭͯޠΕͳ͍
1FSMͷڭҭͱۀ
ຖேઌഐʹ4MBDLͰ
ڭ͑ͯΒͬͨ͜ͱͷҰ෦ ‣ 1FSMʹ͍ͭͯ ‣ ίϯςΩετ ‣ جຊతͳจ๏ ‣ ଞύοέʔδͷϝιουݺͼग़͠ͷํ ‣
ಛघͳߏจʢܕάϩϒͳͲʣ
ڭ͑ͯΒͬͨ͜ͱͷҰ෦ ‣ .PKPMJDJPVTNJOJNPͷίʔυʹ͍ͭͯ ‣ σΟϨΫτϦߏ ‣ %#ͷߏ ‣ NJOJNPNJYJͰ͍ͬͯΔศརϞδϡʔϧ ‣
3PVUJOH)FMQFSͷஔ͖ͱ͔
࣮Ͱ͍᪴ͨͱ͖ ઌഐͨͪʮਖ਼ղʯڭ͑ͯ͘Εͳ͍ ඞཁͱͳΔʮώϯτʯΛ͘ΕΔ
ͭ·Γʜ ҰਓͰࣗͰ͖ΔڥΛ࡞ͬͯ͘Εͨ
ࡀͰ1FSMΛ͔͍ͯ Ͳ͏ࢥͬͨʁ
ࡀͰ1FSMΛॻ͍ͯͲ͏ࢥͬͨʁ 1FSMΛॻ͘ͷָ͍͠ʂ ͦͯ͠ɼֶͼ͕ଟ͍ʂ
1FSMָ͍͠ 5IFSF`T.PSF5IBO0OF8BZ5P%P*U ॻ͖ํʹਓ͕ؒग़Δ ʮͲ͏ॻ͜͏ʁʯʮͲ͏ॻ͘ͷ͕εϚʔτʁʯΛߟ͑Δ ઌഐͨͪͱʮͲ͏͠Α͏ʯΛٞ͢Δ
ֶͼ͕ଟ͍ .PKPMJDJPVTൺֱతʮബ͍ʯ8"' ࣗͰॻ͘ɾಡΉɾֶͿ͜ͱ͕ଟ͍ʂ ΣϒαʔϏεͷαʔόαΠυΛֶͿͷʹஸ͍͍ʁ গͳ͘ͱࣗʮϥοΩʔʯͩͱࢥ͍ͬͯΔ
ͱ͍͑Α͘Θ͔Βͳ͍͜ͱଟ͔ͬͨ ‣ σϦϑΝϨϯεΛΕͯਏ͍ ‣ $#array = 20 ‣ ॳݟͩͱΑ͘Θ͔Βͳ͍ ‣
(sort { $a <=> $b } @hoge)[0] ‣ Α͘Θ͔Βͳ͍ ‣ List::Util::reduce{ $a<$b ? $a: $b }@hoge ‣ ্ͷͭ͜ΕͰऔΕΔ͠ແବ͕গͳ͍…
ײͨ͡ ‣ ΑΓྑ͍࣮ํ๏Λߟ͑ΒΕΔΑ͏ʹͳͬͨ ‣ ಡΈ͘͢ҙਤ͕ΘΓ͍͢ίʔυΛॻ͚ΔΑ͏ʹ ‣ େنαʔϏε͕Ͳ͏ಈ͍͍ͯΔ͔ཧղͨ͠ ‣ ΞʔΩςΫνϟͷڵຯ͕༙͍ͨ ‣
ଞͷݴޠΛֶͿҙཉʹͭͳ͕ͬͨ
͜Ε͔Β
࠷ۙ(PΛֶΜͰ͍·͢
8IZ(P ‣ 1FSMͱझ͕ҧָͬͯͦ͠͏͔ͩΒ ‣ ࠷ۙྲྀߦ͍ͬͯΔ͔Β ‣ NJOJNPͷαʔόαΠυΛ(PͰॻ͖͍ͯ͠Δ͔Β
8IZ(P ‣ 1FSMͱझ͕ҧָͬͯͦ͠͏͔ͩΒ ‣ ࠷ۙྲྀߦ͍ͬͯΔ͔Β ‣ NJOJNPͷαʔόαΠυΛ(PͰॻ͖͍ͯ͠Δ͔Β
·ͱΊ
·ͱΊ ‣ 1FSM͕ʮݏʯͱ͍͏ઌೖ؍͕ͳ͚Εࡀॻ͘ ‣ ࣗͰ͖Δڥ͑͋͞ΕֶͿ͜ͱ͕ଟ͍ݴޠ ‣ 8FCαʔϏεͷجૅΛ͔ͬ͠ΓֶͿ͜ͱ͕Ͱ͖͍ͯΔ ‣ 1FSMΛ͔͚ͯϥοΩʔ ‣
ଞͷݴޠΛֶͿҙཉʹͭͳ͕ͬͨ
c ʯʀ̻ 8FBSFIJSJOH IUUQTNJYJDPKQSFDSVJU
None