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.2k
20歳の僕が経験した Perlエンジニアへの道
YAPC::Tokyo 2019 ランチスポンサーセッション 株式会社ミクシィ 登壇資料
Hagihara Ryosuke
January 26, 2019
Tweet
Share
More Decks by Hagihara Ryosuke
See All by Hagihara Ryosuke
航空機事故に学ぶ サービスのインシデント考察・再発防止
raryosu
1
360
負債を減らした新人の話
raryosu
0
1.5k
minimo18新卒エンジニアの働き方
raryosu
0
1.6k
高等専門学校のウェブサイトの 現状と課題
raryosu
0
190
オブジェクト指向入門 第2版 第1章 ソフトウェアの品質 / Object-Oriented Software Construction Chap.1
raryosu
0
910
Other Decks in Technology
See All in Technology
暗黙知を集積するプラットフォーム : 「健常者エミュレータ事例集」の取り組み
sora32127
1
160
大規模なアジャイル開発の現場と技術負債 / Technical Debt
yoshiitaka
20
4k
Tohoku.Tech #1 「EC-CUBE/AWSの構築をChatGPTに相談してみました」by テンダ
jun2882
0
140
Elementaryを用いたデータ品質の可視化とデータ基盤の運用改善
10xinc
6
1.4k
家族アルバム みてねで直面してきた技術的負債 / MIXI KAG 2024
isaoshimizu
17
7.7k
HoneycombとOpenTelemetryでオブザーバビリティに入門してみる
sumiren
2
150
エバンジェリスト活動を7年やってきて見えてきた、コミュニティとエバンジェリストの関係
soracom
PRO
1
200
初心者が行く!サーバレスWebアプリ開発の道
nagaharutogawa
0
440
ハイパフォーマンスな組織をつくるための開発生産性の考え方 / developer-productivity-high-performer-link-and-motivation
lmi
3
250
業務で使えるかもしれない…!?GitHub Actions の Tips 集 / CI/CD Test Night #7
ponkio_o
PRO
24
6.9k
AWS アーキテクチャクイズ
yuu26
2
700
社内共通ルールを値オブジェクトにして社内ライブラリとして運用してみた話
leveragestech
2
1.1k
Featured
See All Featured
The Invisible Customer
myddelton
114
12k
Designing on Purpose - Digital PM Summit 2013
jponch
109
6.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
343
19k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
11
1.4k
Product Roadmaps are Hard
iamctodd
43
9.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
Being A Developer After 40
akosma
56
580k
VelocityConf: Rendering Performance Case Studies
addyosmani
319
23k
From Idea to $5000 a Month in 5 Months
shpigford
376
45k
Raft: Consensus for Rubyists
vanstee
130
6.2k
The Language of Interfaces
destraynor
150
23k
Atom: Resistance is Futile
akmur
258
25k
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