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.9k
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
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
140
混合雲環境整合異質工作流程工具運行關鍵業務 Job 的經驗分享
yaosiang
0
190
20251027_findyさん_音声エージェントLT
almondo_event
2
440
CREが作る自己解決サイクルSlackワークフローに組み込んだAIによる社内ヘルプデスク改革 #cre_meetup
bengo4com
0
340
From Natural Language to K8s Operations: The MCP Architecture and Practice of kubectl-ai
appleboy
0
230
[VPoE Global Summit] サービスレベル目標による信頼性への投資最適化
satos
0
250
事業開発におけるDify活用事例
kentarofujii
5
1.5k
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.2k
SQLAlchemy の select(User).where(User.id =="123") を理解してみる/sqlalchemy deep dive
3l4l5
3
450
20251024_TROCCO/COMETAアップデート紹介といくつかデモもやります!_#p_UG 東京:データ活用が進む組織の作り方
soysoysoyb
0
110
IoTLT@ストラタシスジャパン_20251021
norioikedo
0
140
もう外には出ない。より快適なフルリモート環境を目指して
mottyzzz
13
11k
Featured
See All Featured
Scaling GitHub
holman
463
140k
How STYLIGHT went responsive
nonsquared
100
5.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Illustrated Children's Guide to Kubernetes
chrisshort
49
51k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Bash Introduction
62gerente
615
210k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
A designer walks into a library…
pauljervisheath
209
24k
Balancing Empowerment & Direction
lara
5
700
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
116
20k
Documentation Writing (for coders)
carmenintech
75
5.1k
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