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
Perlハッカーは息をするようにCPANモジュールを書く
Search
typester
September 29, 2012
Programming
5
7.3k
Perlハッカーは息をするようにCPANモジュールを書く
YAPC::Asia 2012
typester
September 29, 2012
Tweet
Share
More Decks by typester
See All by typester
サーバーサイドエンジニアのためのiOSアプリ開発入門
typester
0
4.7k
Emacs実践入門 Perl編
typester
0
2.7k
XSにまつわる話
typester
4
2.1k
UV - libuv binding for Perl
typester
1
6.1k
Hacking Mac OS X Cocoa API from Perl
typester
2
410
Other Decks in Programming
See All in Programming
Namespace and Its Future
tagomoris
6
690
コンテキストエンジニアリング Cursor編
kinopeee
1
740
testingを眺める
matumoto
1
130
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
380
TanStack DB ~状態管理の新しい考え方~
bmthd
2
430
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
19
4.4k
2025 年のコーディングエージェントの現在地とエンジニアの仕事の変化について
azukiazusa1
15
6.7k
プロポーザル駆動学習 / Proposal-Driven Learning
mackey0225
2
350
Swift Updates - Learn Languages 2025
koher
1
340
TDD 実践ミニトーク
contour_gara
1
280
レガシープロジェクトで最大限AIの恩恵を受けられるようClaude Codeを利用する
tk1351
4
1.6k
TROCCO×dbtで実現する人にもAIにもやさしいデータ基盤
nealle
0
400
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
185
54k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Building Applications with DynamoDB
mza
96
6.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Side Projects
sachag
455
43k
RailsConf 2023
tenderlove
30
1.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Designing for humans not robots
tammielis
253
25k
Faster Mobile Websites
deanohume
309
31k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
GraphQLとの向き合い方2022年版
quramy
49
14k
Transcript
1FSMϋοΧʔଉΛ͢ΔΑ͏ʹ $1"/ϞδϡʔϧΛॻ͘ !UZQFTUFS ,":"$*OD
ࠓͿΓʹࣄͰ1FSMΛΓ Γ͔͓ͭͬͯΓɺ
ຊʹଉΛ͢ΔΑ͏ʹ1FSMϞδϡʔϧΛ ॻ͍͍ͯͨͳʔɺͱ͍͏͜ͱͰɺ
·ͣɺࠓॻ͍ͨϞδϡʔϧΛ հ͠·͢
%BUB"QQMF1SJDF5JFS
%BUB"QQMF1SJDF5JFS w"QQ4UPSFͷQSJDFUJFS UJFS͕ຊͩͱˇɺͱ͍͏ͷΛม͢ ΔϞδϡʔϧ
%BUB"QQMF1SJDF5JFS w"QQ4UPSFͷQSJDFUJFS UJFS͕ຊͩͱˇɺͱ͍͏ͷΛม͢ ΔϞδϡʔϧ wಈػ wඞཁʹഭΒΕͯ wIUUQTQBCFSJTINF
%BUB.FTTBHF1BDL4USFBN
%BUB.FTTBHF1BDL4USFBN w.FTTBHF1BDLͷετϦʔϛϯάύʔαʔ
%BUB.FTTBHF1BDL4USFBN w.FTTBHF1BDLͷετϦʔϛϯάύʔαʔ wಈػ w%BUB.FTTBHF1BDLͷιʔείʔυ͕ ͗ͨ͢͠ w͙͢ʹཉ͔ͬͨ͠
%BUB9-491BSTFS
%BUB9-491BSTFS wߴͳYMTYϑΝΠϧύʔαʔ
%BUB9-491BSTFS wߴͳYMTYϑΝΠϧύʔαʔ wಈػ w4QSFBETIFFU9-49͕ϝϞϦΛ৯͍ա ͗ͯཁ݅ΛΫϦΞͰ͖ͳ͔ͬͨ w1ZUIPOʹྑ͍࣮͕͋ͬͨͷͰͦΕΛҠ ২
4VC3BUF
4VC3BUF w͕͔֬ΒΉॲཧΛྑ͍ײ͡ʹ͍ͨ͠ͱ͖ʹ ͏Ϟδϡʔϧ
4VC3BUF w͕͔֬ΒΉॲཧΛྑ͍ײ͡ʹ͍ͨ͠ͱ͖ʹ ͏Ϟδϡʔϧ wಈػ w͜͏͍͏ͷ͕ཉ͔ͬͨ͠
4VC&YDFQUJPO
4VC&YDFQUJPO wྫ֎ॲཧΛมΘͬͨײ͡Ͱॻ͚ΔϞδϡʔϧ
4VC&YDFQUJPO wྫ֎ॲཧΛมΘͬͨײ͡Ͱॻ͚ΔϞδϡʔϧ wಈػ w͜͏͍͏ͷ͕ཉ͔ͬͨ͠ɺ͍ͬͯ͏Θ͚Ͱ ͳͯ͘ͳΜͱͳ͘ࢥ͍͍͔ͭͨΒ
5FTU3FEJT4FSWFS
5FTU3FEJT4FSWFS w5FTUNZTRMEͷSFEJTόʔδϣϯ
5FTU3FEJT4FSWFS w5FTUNZTRMEͷSFEJTόʔδϣϯ wಈػ wඞཁʹഭΒΕͯ
+40/5ZQFT
+40/5ZQFT w+40/Λ࡞Δͱ͖ʹԽͨ͠Γ͢Δͱ͖ʹ OVNCFS Έ͍ͨͳṖͷϋοΫ͢Δͷ ͍ͩͳʔ͍ͬͯ͏ͷΛͳΜͱ͔͢ΔͨΊ ͚ͩͷϞδϡʔϧ
$PDPB#BUUFSZ*OGP
$PDPB#BUUFSZ*OGP w.BDͰόοςϦʔใΛऔಘͨ͠Γɺόος ϦʔؔͷΠϕϯτΛίʔϧόοΫͰऔಘͰ ͖ΔϞδϡʔϧ
$PDPB#BUUFSZ*OGP w.BDͰόοςϦʔใΛऔಘͨ͠Γɺόος ϦʔؔͷΠϕϯτΛίʔϧόοΫͰऔಘͰ ͖ΔϞδϡʔϧ wಈػ wόοςϦʔܥϥΠϑϋοΫʹඞཁͩͬͨ
w$PDPB$PSF#MVFUPPUI
w$PDPB$PSF#MVFUPPUI w$PDPB"QQMF4DSJQU
w$PDPB$PSF#MVFUPPUI w$PDPB"QQMF4DSJQU wಈػ w:"1$"TJB
Ҏ্ݸ
όʔδϣϯΞοϓطଘϞδϡʔϧͷ ϝϯςφϯε͋ΔͷͰTIJQJUճ ͑Εͳ͍
ଉΛٵ͏Α͏ʹϞδϡʔϧΛॻ͖ɺ
ଉΛ͘Α͏ʹTIJQJU͢Δ
ͦΕ1FSMϋοΧʔʹࣗવͳ͜ͱ
$1"/ʹΞοϓ͢Δͱ ͍ΖΜͳϝϦοτ͕͋Δ
Πϯετʔϧ͕؆୯ DQBON.Z.PEVMF
DQBOUFTUFST
QBUDIFT DPOUSJCVUJPOTGSPN PUIFSQFPQMF
࠶ར༻ͦ͠͏ͳͷશ෦$1"/ʹ ͋͛ͪΌ͏ wDQBONͰ؆୯ʹೖΔ͔Βɺࣗࣗଞͷ ͱ͜ΖͰ͏ͷָ͕ʹ w$1"/ίϛϡχςΟʔʹΑͬͯΫΦϦςΟ͕ ্͕Δ
ͰͳΜ͔มͳͷΞοϓ͢Δͱ UPLV˓JSPNͱ͔ʹ%*4ΒΕΔ͠ʜ
/0ͦΜͳ͜ͱͳ͍ʂ
5IFSFJTNPSFUIBOPOFXBZ UPEPJU
ͨͩ͠ʂ
υΩϡϝϯτΛॻ͜͏
ͦͷϞδϡʔϧΛ࡞͍͍ͬͨΛ υΩϡϝϯτʹॻ͜͏ʂ
υΩϡϝϯτͬͯͷϞδϡʔϧͷ ͍ํΛॻ͚ͩ͘ͷ͡Όͳ͍
ͦͷϞδϡʔϧʹ͍ͨ͢Δ͍Λશ෦ Ϳ͚ͭΔͱ͜ΖͳΜͩʂ
˞%*4ΒΕϙΠϯτΛ͋Β͔͡Ί͓͑ͯ͘͜ͱϞώΧϯରࡦͱͯ͠ඇৗʹ༗ޮͰ͢
υΩϡϝϯτ࡞ͷͭ͜ wQPEܗࣜ׳Εͳ͍ͱࢥ͍·͚͢Ͳɺ͜Ε ͚֮ͩ͑Δ͔͠ͳ͍ w׳Εͳ͍͏ͪਓͷΛਅࣅͨ͠Βྑ͍ wॻ͖·͍ͬͯͨ͘Βͦͷ͏ͪͳʹݟͳ͍Ͱ ී௨ʹ͔͚ΔΑ͏ʹͳΓ·͢
υΩϡϝϯτ࡞ͷͭ͜ wॻ͖͘༰
υΩϡϝϯτ࡞ͷͭ͜ wॻ͖͘༰ w4:/014*4ͬ͘͞Γ͍ͨ͠ํͷίʔυ
υΩϡϝϯτ࡞ͷͭ͜ wॻ͖͘༰ w4:/014*4ͬ͘͞Γ͍ͨ͠ํͷίʔυ w%&4$3*15*0/͍͍
υΩϡϝϯτ࡞ͷͭ͜ wॻ͖͘༰ w4:/014*4ͬ͘͞Γ͍ͨ͠ํͷίʔυ w%&4$3*15*0/͍͍ w.&5)0%4'6/$5*0/4 ֤ϝιουɺؔΛઆ໌
$1"/Ϟδϡʔϧ࡞ͷϙΠϯτ
$1"/Ϟδϡʔϧ࡞ͷϙΠϯτ wΧδϡΞϧʹ࡞ͬͯྑ͍͚ͲɺυΩϡϝϯτ ͔ͬ͠Γॻ͜͏
$1"/Ϟδϡʔϧ࡞ͷϙΠϯτ wΧδϡΞϧʹ࡞ͬͯྑ͍͚ͲɺυΩϡϝϯτ ͔ͬ͠Γॻ͜͏ w্͛ͨҎ্ϝϯςφϯεΛܧଓ͠·͠ΐ͏
$1"/Ϟδϡʔϧ࡞ͷϙΠϯτ wΧδϡΞϧʹ࡞ͬͯྑ͍͚ͲɺυΩϡϝϯτ ͔ͬ͠Γॻ͜͏ w্͛ͨҎ্ϝϯςφϯεΛܧଓ͠·͠ΐ͏ w%*4༑ୡͰ͢ʂ
HJUIVCʹͬͯΔϞδϡʔϧ ͋ͬͨΓ͠·ͤΜ͔ʁ
ා͘ͳ͍͔ΒΞοϓͯ͠ΈΑ͏ʂ
5IBOLZPV