Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Introduce Sub::Meta kobaken a.k.a @kfly8 Perlͷ։ൃମݧΛྑ͍͖ͯ͘͠💪
Slide 2
Slide 2 text
ࣗݾհ • kobaken a.k.a @kfly8 • ϞόΠϧϑΝΫτϦʔ • ΤϯδχΞ৫։ൃऀ • Ωʔϫʔυ: ODHDɺίʔνϯάɺ 1on1ɺDevOpsɺJobDescription • Japan Perl Association ཧࣄ • ࠷ۙɺ່̑ࡀʹUNOͰෛ͚Δ
Slide 3
Slide 3 text
Perlͷ։ൃମݧΛྑ͍ͨ͘͠💪
Slide 4
Slide 4 text
։ൃମݧʹ͔ܽͤͳ͍ • ڧྗͳΤϥʔνΣοΫ • ิ • ϑΥʔϚολ • ύϑΥʔϚϯε্ • ͳͲ
Slide 5
Slide 5 text
ใ ߏจɾɾܕ औಘ ར༻
Slide 6
Slide 6 text
ใ ߏจɾɾܕ औಘ ར༻ PPI Compiler::Lexer PPR
Slide 7
Slide 7 text
ใ ߏจɾɾܕ औಘ ར༻ Perl::Critic Perl::Lint Perl::MinimumV ersion Perl::LanguageS erver Spellunker::Pe rl
Slide 8
Slide 8 text
ใ ߏจɾɾܕ औಘ ར༻ RBS steep Sorbet RBI TypeProf ࢀߟɿhttps://techlife.cookpad.com/entry/2020/12/09/120454
Slide 9
Slide 9 text
ใ ߏจɾɾܕ औಘ ར༻ Sub::Meta
Slide 10
Slide 10 text
ใ ߏจɾɾܕ औಘ ར༻ Sub::Meta Types::TypedCodeRef Boundary Types::HasTypedMethods
Slide 11
Slide 11 text
খ·ͱΊ • PerlͰ։ൃମݧΛྑ͍͖ͯ͘͠💪 • ͦͷͨΊʹɺϓϩάϥϜ͔Βใ Λऔಘ͠ར༻͢ΔྲྀΕΛଊ͑Δ • Sub::Metaɺ͜ͷྲྀΕͰ͍͏ਅ ΜதͷཱͪҐஔ • ؔͷϝλใΛར༻͘͢͠ ΔͨΊͷΦϒδΣΫτ܅
Slide 12
Slide 12 text
PerlͰؔͷϝλใΛ ѻ͏ͱ͖ͷࠞཚ ಛʹҾɺฦΓ
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
ؔaddͷϝλใ ໊ؔʁ add ύοέʔδʁ Foo Կߦ͔Βఆٛ͞Ε͍ͯΔʁ 3ߦ
Slide 15
Slide 15 text
use Sub::Identify; sub_name(\&add) # => add stash_name(\&add) # => Foo my ($file, $line) = get_code_location(\&add)
Slide 16
Slide 16 text
my $meta = Sub::Meta->new( sub => \&add ); $meta->subname # => add $meta->stashname # => Foo $meta->line # => 3
Slide 17
Slide 17 text
ͰɺҾʁ
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
ࢁ͋ΔPerlͷ όϦσʔγϣϯϞδϡʔϧୡ
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
ҾόϦσʔγϣϯ܅͝ͱʹ ϝλใͷऔΓѻ͏ͷ໘
Slide 27
Slide 27 text
ใ ؔͷϝλ Sub::Meta Data::Validator Smart::Args Type::Params Function::Parameters Sub::WrapInType …
Slide 28
Slide 28 text
DEMO
Slide 29
Slide 29 text
ฦΓόϦσʔγϣϯ܅ ಉ༷ͷΞϓϩʔνͰղܾ
Slide 30
Slide 30 text
ใ ؔͷϝλ Sub::Meta Return::Type Function::Return Sub::WrapInType …
Slide 31
Slide 31 text
·ͱΊ • Perlͷ։ൃମݧΛྑ͍͖ͯ͘͠ 💪 • Sub::MetaɺؔͷҾɺฦ ΓؚΊͨϝλใΛ Sub::Metaʹू͠ɺ౷Ұతͳ ΠϯλʔϑΣʔεͰؔͷϝλ ใΛѻ͑ΔΑ͏ʹ͢Δ܅
Slide 32
Slide 32 text
ࠓޙʁ • Sub::MetaͷܕදݱΛ҆ఆͤ͞ Δ(issue #42) • Boundary ( Interface࣮ )ʹؔ ໊͚ͩͰͳ͘ɺฦΓɺҾ ͷܕՃຯ͢Δ #1 • Ruby3 steepͷΑ͏ͳ੩తͳ νΣοΧʔͷPoC