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使いの国のRubyist
Search
Takafumi ONAKA
PRO
May 12, 2018
Technology
0
120
Perl使いの国のRubyist
2018-05-12 RejectKaigi 2018
Takafumi ONAKA
PRO
May 12, 2018
Tweet
Share
More Decks by Takafumi ONAKA
See All by Takafumi ONAKA
強いチームと開発生産性
onk
PRO
44
17k
ADRを運用して3年経った僕らの現在地
onk
PRO
22
23k
1文字エイリアスのすゝめ
onk
PRO
0
70
すこやかなサービス運営のための PWG (Performance Working Group)
onk
PRO
0
1k
オブザーバビリティの Primary Signals
onk
PRO
2
6.1k
Cache Stampede
onk
PRO
1
2.2k
ORM - Object-relational mapping
onk
PRO
2
3.8k
デュアルトラックアジャイルとの向き合い方
onk
PRO
5
13k
技術記事を書く&楽しむチームの作り方
onk
PRO
0
2.1k
Other Decks in Technology
See All in Technology
事業価値と Engineering
recruitengineers
PRO
8
5.4k
Kubernetes における cgroup v2 でのOut-Of-Memory 問題の解決
pfn
PRO
0
450
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
2
280
生成AI時代のデータ基盤
shibuiwilliam
4
2.5k
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
3
1.2k
ヘブンバーンズレッドのレンダリングパイプライン刷新
gree_tech
PRO
0
450
AI時代に非連続な成長を実現するエンジニアリング戦略
sansantech
PRO
3
940
役割は変わっても、変わらないもの 〜スクラムマスターからEMへの転身で学んだ信頼構築の本質〜 / How to build trust
shinop
0
160
ガチな登山用デバイスからこんにちは
halka
1
200
つくって納得、つかって実感! 大規模言語モデルことはじめ
recruitengineers
PRO
32
12k
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
150
Automating Web Accessibility Testing with AI Agents
maminami373
0
470
Featured
See All Featured
Visualization
eitanlees
147
16k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Automating Front-end Workflow
addyosmani
1370
200k
What's in a price? How to price your products and services
michaelherold
246
12k
Code Reviewing Like a Champion
maltzj
525
40k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Rails Girls Zürich Keynote
gr2m
95
14k
RailsConf 2023
tenderlove
30
1.2k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
Typedesign – Prime Four
hannesfritz
42
2.8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
284
13k
Transcript
1FSM͍ͷࠃͷ3VCZJTU 3FKFDU,BJHJ େೳ࢙BLBJEPOL
ࣗݾհ w େೳ࢙BLBJEPOL w ݄·ͰυϦίϜͱ͍͏ձࣾͰ3BJMTΛॻ͍ ͍ͯ·ͨ͠ɻ3BJMTྺ͙Β͍ w ݄͔Βɺͯͳͱ͍͏ձࣾͰ1FSMΛॻ͍ͯ ͍·͢ɻ1FSMྺϲ݄ w
ࠓژ͔Βདྷ·ͨ͠
1FSMɻ
1FSMɻ w ʮઈରʹॻ͖ͨ͘ͳ͍ʯͱࢥ͍ͬͯΔਓ͕গͳ͘ͳ͍ͱࢥ͏ w ͦ͏Ͱͨ͠
1FSMɻ w ه߸ଟ͗͢Δ͠ ͱ͔!ͱ͔ͱ͔ w ޙ͚ͷΦϒδΣΫτࢦ͕ෆ֨ͩ͠ w Ҿ͕ແͯ͘!@͔ΒऔΓग़͞ͳ͖Ό͍͚ͳ͍͠
1FSMɻ w ਖ਼ɺژͷసډͱ͍͏ϥΠϑΠϕϯτ͕ແ͔ͬͨΒ·ͩ3VCZ ॻ͍͍ͯͨͱࢥ͍·͢ w Ͱ·͊ɺඈͼࠐΜ͔ͩΒʹຊؾͰΔΑɺͱ͍͏Θ͚Ͱɺࠓ ʮ1FSM͍ͷࠃͷ3VCZJTUʯͱ͍͏Λ͠·͢ w λΠτϧ:"1$"TJBͷ͋ΜͪΆ͘ΜΠϯεύΠΞ
ΞδΣϯμ w 3VCZ͔Β1FSM w ࠷ۙͷ1FSMͱ࠷ۙͷ3VCZ w 1FSMͱ3VCZͷܑఋؔ w 1FSMʹ׳ΕΔͨΊʹԿΛ͔ͬͨ w
։ൃ͍ͯͯ͠ϏοΫϦͨ͠ͱ͜Ζ w $1"/Ϟδϡʔϧฤ w ·ͱΊ
3VCZ͔Β1FSM w ʮ1FSM͔Β3VCZʯ͍ͬͯ͏ެࣜυΩϡϝϯτ
3VCZ͔Β1FSM w ͜ͷʮ1FSMͱͷྨࣅʯʮ1FSMͱͷҧ͍ʯ͕ʮ3VCZ͔Β1FSMʯͷ ཱͰศར w ݱͷ1FSMͰղܾ͍ͯ͠Δͱ͍͏ͷ͕ޙͰ͔ͬͨ
࠷ۙͷ1FSMͱ࠷ۙͷ3VCZ w DQBOUT IUUQTDQBOUTDQBOBVUIPSTPSH 2009 21070 2010 22227 2011
21910 2012 22647 2013 25760 2014 27272 2015 22999 2016 19982 2017 16352 2018 6052 => 17096 ϖʔε
࠷ۙͷ1FSMͱ࠷ۙͷ3VCZ w SVCZHFNTPSH IUUQTSVCZHFNTPSHQBHFTEBUB Version.group("TO_CHAR(created_at, 'YYYY')").count.sort # => [["2009",
39336], ["2010", 59267], ["2011", 82608], ["2012", 104318], ["2013", 125526], ["2014", 155369], ["2015", 132626], ["2016", 121681], ["2017", 108671], ["2018", 36498]] => 105485 ϖʔε
࠷ۙͷ1FSMͱ࠷ۙͷ3VCZ w ͲͪΒ͕ϐʔΫͰಷԽ͕ݟ͑·͢Ͷ w શظͷ͙Β͍ʁ w ଞͷݴޠௐͯͳ͍ΜͰ͕͢ɺؤு͍͖ͬͯ·͠ΐ͏
1FSMͱ3VCZͷܑఋؔ w ·ͩ8FC෦͔͠ݟͯͳ͍ͷͰଟ͘ޠΕ·ͤΜ͕
8FC։ൃͷྺ࢙ w $(*͙࣌Β͍ w ૉͷ$(* w ϦΫΤετΛड͚ΔͨͼʹQFSMΛىಈ͢Δ w "QBDIF NPE@QFSM
w QFSMࣗͷىಈίετ͕ແ͘ͳΔ
8FC։ൃͷྺ࢙ w 'BTU$(*͙࣌Β͍ w ΞϓϦέʔγϣϯΛGDHJରԠ͓͍ͯͯ͠ɺϓϩηεΛ্ཱͪ͛ଓ ͚Δ w "QBDIFͰ͋Δඞཁ͕ͳ͘ͳΓɺMJHIUUQE͕ྲྀߦΔ w 3BJMTY͙Β͍
w MJHIUUQE NPOHSFMͱ͔UIJOͱ͔ջ͔͍͠Ͱ͢Ͷ
8FC։ൃͷྺ࢙ w 84(*࣌ʙ w 3BDL։ൃ։͕࢝ W͕ w 3BJMTW͕ w 1MBDL։ൃ։͕࢝
W͕ w ʮϓϥοΫاۀʯ͕ྲྀߦޠͩͬͨͷ͕͙Β͍
3VCZπʔϧͱ1FSMQPSU w #VOEMFS w #VOEMFS w ։ൃ։͕࢝ W͕ w $BSUPO
w ։ൃ։͕࢝ W͕
3VCZπʔϧͱ1FSMQPSU w "OZFOW w SCFOW w QMFOW
3VCZπʔϧͱ1FSMQPSU w 8FC"QQMJDBUJPO4FSWFS w 6OJDPSO w 4UBSNBO 4UBSMFU w 8FC"QQMJDBUJPO4FSWFS
/PO#MPDLJOH w QVNB w 5XJHHZ
3VCZπʔϧͱ1FSMQPSU w ͷΑ͏ͳײ͡Ͱɺग़ࣗͦ͜1FSM͕3VCZͷܑ͓͞Μ ͓࢞͞Μ ͩ ͬͨͷͷɺ࠷ۙٯͷྲྀΕ͕ଟ͔ͬͨҹͰ͢
֓೦ͷมԽ͕ݮͬͨ w 3BJMT͔Β֓೦͕มΘΔΑ͏ͳେ͖ͳมߋ͕ͳ͍͠ɺ͔ͦ͜ Β8FCΞϓϦ։ൃࣗମ͕ਐԽ͕ࢭ·ͬͯΔҹ͕͋Δ w εϚϗΞϓϦ41"ੜ·Εͨ w +40/4DIFNBลΓಉ࣌ൃੜతʹʹΓ্͕ͬͯҰॹ ʹҭͬͨؾ͕͢Δ w
࠷ۙ(SBQI2-H31$͕Γ্͕͖͍ͬͯͯΔͷͰɺ։ൃ͠ ָ͍͍ͯͯ͠
ͯ͢ͷݟ͕ͦͷ··͑Δ w ͱ͍ͬͨลΓͰɺಛʹ8FC։ൃͷจ຺Ͱ·ͬͨ͘ಉ͡ݟ͕ ͑ΔͷͰۤ࿑͢Δ͜ͱແ͔ͬͨ w ڥߏங͢ΔͷʹSCFOWೖΕͯCVOEMFJOTUBMMͯ͠SBJMTTͱ͔ w ຊ൪ڥʹ8FCαʔόͱΞϓϦέʔγϣϯαʔό͕͋ͬͯɺ XPSLFSىಈͱ͔γάφϧૹͬͯ࠶ىಈͱ͔
1FSMʹ׳ΕΔͨΊʹԿΛ ͔ͬͨ
1FSMʹ׳ΕΔͨΊʹͬͨ͜ͱ w ॳΊͯͷ1FSMΛಡΜͩ w ͍ΘΏΔϦϟϚຊ w ʹୈ൛͕ग़͍ͯ·͢
1FSMʹ׳ΕΔͨΊʹͬͨ͜ͱ w )BUFOB5FYUCPPLΛಡΜͩ w ͜ΕͱʮॳΊͯͷ1FSMʯ͚ͩͰ࣮ίʔυ ͕ಡΊΔΑ͏ʹͳΔຊʹੌ͍ڭՊॻ w ಥવͷએ ࠓͷʮͯͳαϚʔΠϯλʔ ϯʯࣄલొडத
1FSMʹ׳ΕΔͨΊʹͬͨ͜ͱ w DBSUPOJOTUBMM࣌ʹย͔ͬΒHIRHFU͢Δ ϚϯΛॻ͍ͨ w HFNTSDͷQFSM൛ ޙʹDQBOHIRΛݟ ͚ͭΔʜʜ w
ϝλϑΝΠϧʹSFQPTJUPSZ͕ࡌͬͯͳ͍ $1"/Ϟδϡʔϧ͕݁ߏ͋Δ w Ұ୴ϦετΛ͚࣋ͬͨͲɺ13ͯ͠ճΒͳ ͍ͱͳ͊
1FSMʹ׳ΕΔͨΊʹͬͨ͜ͱ w BXFTPNFQFSMΛோΊͨ w )BDIJPKJQN w ࣾͷ()&͔Β৽͠Ίͷ1MBDLϓϩμΫτͷDQBOpMFΛूܭͯ͠ ோΊͨ w
3BJMT%FWFMPQFST.FFUVQͷͱ͖ͷ͚ΜͪΌΜ͘Μ͞Μͷε ΫϦϓτ͕ਆ
1FSMʹ׳ΕΔͨΊʹͬͨ͜ͱ w ͋ͱ࣮Ͱ&OVNFSBCMFͷϝιου܈Λ͍·͘Δͷͱɺςετ Λॻ͘ͷͱ w -JTU6UJM -JTU.PSF6UJMT -JTU6UJMT#Z w 5FTU
5FTU888.FDIBOJ[F14(* .PEVMF4QZ w ฏߦͯ͠ϝλϓϩάϥϛϯάͷษڧߦͬͨ w ͍ͬͯΔπʔϧͷ࣮ํ๏͕ਪଌͰ͖ΔΑ͏ʹͳΔ
։ൃ͍ͯͯ͠ϏοΫϦͨ͠ͱ ͜Ζ
@͕͋Δ w ҉తͳϒϩοΫม w ϓϩμΫτίʔυͰϒϩοΫม͕͙Β͍ෆཁʹ my $array = ["a", "b",
"c"]; for (@$array) { print $_ . "\n"; } my $array2 = [map { $_ . "foo"; } @$array];
͕͋Δ w EFpOFE͔Ͳ͏͔ͷԋࢉࢠ
͕͋Δ w Α͘ΔccͷϝϞԽ w GBMTZͳͩͱࠔΔ def foo @foo ||= heavy_method
end # heavy_method ͕ boolean Λฦ͢ͱ͖ʁ def foo return @foo if defined?(@foo) @foo = heavy_method end
͕͋Δ w MPHJDBMPSͱEFpOFEPS͕͋ΔͱεοΩϦ sub foo { shift->{_foo} //= heavy_method }
VTFͰSFRVJSFͱNJYJO w ϥΠϒϥϦଆʹGPP CBSΛ&91035͢Δͱॻ͍͓ͯ͘ͱ package Hoge; use parent 'Exporter'; our
@EXPORT = qw/foo bar/; sub foo { ... } sub bar { ... }
VTFͰSFRVJSFͱNJYJO w ͏ͱ͖ʹҙͷ͚ؔͩΛNJYJOͰ͖Δ package Fuga; use Hoge qw/foo/;
VTFͰSFRVJSFͱNJYJO w ͜Ε͓ͦΒ͘จԽతͳϞϊͰɺ1FSM3VCZͱҧͬͯؔܕ ݴޠͷॱ൪ͰݺͿͷͰʮΦϒδΣΫτʹϝιουΛੜ͢ʯͷͰ ͳ͘ɺʮϝιουΛNJYJOͯ͠͏ʯʹͳΔͷͩΖ͏ w ͦͯ͠ϝιου໊͕ॏෳ͠·͘ΔͷͰબΔΑ͏ʹͳ͍ͬͯΔ # perl reverse
uniq grep { $_ ~= /foo/ } <ARGV>; # ruby IO.read(ARGF).lines.grep {|l| l ~/foo/ }.uniq.reverse
είʔϓΛҙʹ࡞ΕΔ w ϨΩγΧϧείʔϓͱϦϑΝϨϯεΧϯτࣜ($ sub hoge { my $foo = 'foo';
my $bar = 'bar'; { my $foo = 'baz'; print $foo . $bar . "\n"; # => 'bazbar' } print $foo . $bar . "\n"; # => 'foobar' }
είʔϓΛҙʹ࡞ΕΔ w (VBSE͕͑Δ sub hoge { { # ͜ͷϒϩοΫͷதͰ͚ͩ memcached
্ཱ͕͕ͪΔ my $guard = Proc::Guard->new(command => ["memcached", "-p", "11211"]); # do something ... } # ͜͜Ͱ memcached ͕ఀࢭࡁΈ }
είʔϓΛҙʹ࡞ΕΔ w ҙʹείʔϓΛ࡞ΕΔͱ͜Μͳʹศརͳͷ͔ʔ w PQFOͨ͠ޙDMPTF͠ͳͯ͘είʔϓΛൈ͚ͨͱ͖ʹউखʹΫ ϩʔζ͞ΕΔ w 3VCZͩͱCMPDLͰݺͿ͚ͩͳͷ͚ͩΕͲʮൈ͚ͨͱ͖ʹσετ ϥΫλ͕ݺΕΔʯշײ
είʔϓΛҙʹ࡞ΕΔ w ֤ݴޠͰΈͳ͞Μؤுͬͯ·͢ w 3VCZͰείʔϓΛͣΕͨͱ͖ʹࣗಈͰԿ͔Λ͢ΔcUFDI൙ཞݪ w IUUQTMPXSFBMOFU w 5SBDF1PJOUͷɻ3VCZ,BJHJຊฤͷUBHPNPSJTKPLFSͷൃදΛָ͓͠Έʹ w
1)1Ͱ1FSMͰ͍͏ͱ͜Ζͷ(VBSEΛ͢ΔͰʂʂV[VMMB͕ϒϩά w IUUQV[VMMBIBUFCMPKQFOUSZ w 1FSMͷ4DPQF(VBSEΛ$PNNPO-JTQͰ࣮͢Δͧʂʂʂ-BNCEBΧΫςϧ w IUUQTXJOEZNFMUIBUFOBCMPHDPNFOUSZ
μΠφϛοΫείʔϓ͕͋Δ our $foo = 'foo'; sub print_foo { print $foo
. "\n"; } print_foo; # foo { local $foo = 'bar'; print_foo; # bar } print_foo; # foo
μΠφϛοΫείʔϓ͕͋Δ w είʔϓͱ͍ಓΛཧղͨ͠ͱ͖ʹ3VCZ͔Β1FSMʹΓସ Θͬͨײ͕͡͠·ͨ͠ɻΦϒδΣΫτͰͳͯ͘είʔϓΛ࿔Δͷ ͕1FSM8BZ
μΠφϛοΫείʔϓ͕͋Δ w 3VCZ,BJHJͷ࣭ίʔφʔͰEZOBNJDTDPQF ཉ͍͠ʂͬͯݴͬͨΒ.BU[ʹʮEZOBNJD TDPQFΛΘͳ͍ͨΊʹ3VCZΛ࡞͍ͬͯ Δʯͱ͑ΒΕͨͷͰϜγϟΫγϟͯͬ͠ ͨɻ w 1FSM͔Β3VCZʹདྷͨઌਓ͕ډΔͷͰʮͳΔ ΄Ͳͳ͊ʯͱͳΔ
࣮ߦ࣌ܕνΣοΫ͕ී௨ w 1FSMք࠷ۙ·ͰԾҾ͕ແ͔ͬͨͷͰɺҾΛड͚औΔํ๏Λ ͔Γ͘͢͢Δ$1"/Ϟδϡʔϧ͕։ൃ͞Εͨ sub foo { my ($num, $str)
= @_; print $num . "\n"; print $str . "\n"; } foo(1, "a");
࣮ߦ࣌ܕνΣοΫ͕ී௨ use Smart::Args::TypeTiny qw(args); sub create { args my $id
=> 'Id', my $title => 'Str', my $description => 'Maybe[Str]', my $comment => { isa => 'Str', optional => 1 }, # do something... } # ͏ͱ͖ hash Λ͢ create( id => 1, title => "title", description => undef, );
࣮ߦ࣌ܕνΣοΫ͕ී௨ w W ͰTVCGPP OVN TUS ͱॻ͚ΔΑ͏ʹͳͬͨ ͚ΕͲɺ)BTIΛͯ͠ܕνΣοΫΛߦ͏ํ͕ศརͳͷͰɺΘΕ ͳ͍ͱࢥ͏
ίϯςΫετ͕͋Δ my $a = localtime; my @b = localtime; use
Data::Dumper; print Dumper $a; # $VAR1 = 'Fri May 4 16:14:45 2018'; print Dumper @b; # $VAR1 = 45; # $VAR2 = 14; # $VAR3 = 16; # $VAR4 = 4; # $VAR5 = 4; # $VAR6 = '118'; # $VAR7 = 5; # $VAR8 = 123;
ίϯςΫετ͕͋Δ w TJ[F!BSSBZͰݸ͕औΕΔͷ͙͢׳ΕΔ͚ͲϏϏΔ w TDBMBSDPOUFYUͷதͰDPOUFYU͕͔Εɺԋࢉࢠ͕ܕΛ࣋ͭ Α͏ʹݟ͑Δ w Λ͏ͱΓ*OUʹͳΔ w
Λ͏ͱΓ͕4USʹͳΔ w +BWB4DSJQUͬΆ͍ w WBSOVN GPP w WBSTUSGPP
ίϯςΫετ͕͋Δ w WPJEDPOUFYUඇৗʹྑ͍ w ΓΛมʹೖΕ͍ͯΔ͔Ͳ͏͔͕ݺΕͨϝιου͔Β͔Δ w NBQ͡Όͳͯ͘FBDIΛ͑Έ͍ͨͳϠπ w ΓͷੜΛলུ͢Δ͜ͱͰύϑΥʔϚϯε্͕͛ΒΕΔ w
(VBSE༻ͷϝιουͰଋറΛΕ͍ͯͨΒౖΔͱ͔ w 3VCP$PQͰ-JOU7PJEDPQ͕ܯࠂग़ͯ͠·͢ w ڈ͍ͩͿݡ͘ͳͬͨͷͰ͍ͬͯͩ͘͞ɻQPDLF
TUSJDUNPEF͕͋Δ w NZΛ͚ͳ͍มએݴͷېࢭͱ͔ w ݅ࣜͰೖ͔Ͳ͏͔͕ݟ͚͍͢ w JG NZGPPCBS w
ϝλϓϩېࢭͱ͔ w Ұ෦͚ͩڐ༰͢Δ͜ͱ͕Ͱ͖Δ w ͚ͦͩ͜είʔϓΛ͚ͯڐՄͰ͖Δͷศར
TUSJDUNPEF͕͋Δ sub foo { print @_ . '\n'; } my
$method_name = 'foo'; { # ಈతʹϝιου໊Λܾఆͯ͠ݺͼग़͢ͷΛ͚ͩ͜͜ڐՄ no strict 'refs'; &{$method_name}('bar'); }
TUSJDUNPEF͕͋Δ w 3VCZʹTUSJDUNPEFΛೖΕΑ͏ͬͯఏ ҊɺਐḿͲ͏Ͱ͔͢
$1"/Ϟδϡʔϧฤ
ΩϥΩϥωʔϜ͡Όͳ͍ӕ w -81MJCXXXQFSMखڧ͔ͬͨ w 5IF4DIXBSU[.JOJPO͕+PC2VFVFͳͷ͔Δʁ w 5FTU.PSF 5FTU.PTUͱ͔ɺ-JTU 6UJMͱ͔ w
֮݁͑Ζ
5*.5085%*ແ͔ͬͨ͜ͱʹ ͍ͨ͠ w ۀίʔυ0OF8BZʹدͤΔͷ͕େਖ਼ٛ
QPE 4:/014*4 ͕ඞͣ͋Δ w ͜ΕຊʹૉΒ͍͠ɺ͕ w ࠷ۙ (JU)VCͷ͓͔͛Ͱ 3&"%.&NEʹ6TBHFΛࡌͤΔͷ͕ ී௨ʹͳͬͨ
QPE 4:/014*4 ͕ඞͣ͋Δ w 3VCZϦϑΝϨϯεϚχϡΞϧͷαϯϓϧίʔυΛίϐϖՄೳʹ͢Δ
ΔΓ·ߋ৽ͷ͖͔͚ͬ
ΔΓ·ߋ৽ͷ͖͔͚ͬ
ࠓ͙͢ࢀՃ
ࠓ͙͢ࢀՃ
.PEVMF$PSF-JTU w ߦҎ্ͷڊେ)BTIͰཧ͞Ε͍ͯΔ 5.027009 => { delta_from => 5.027008, changed
=> { 'B::Op_private' => '5.027009', ... # 140ߦ 'warnings' => '1.41', }, removed => { 'Module::CoreList::TieHashDelta'=> 1, } }, 5.027010 => { delta_from => 5.027009, changed => { 'App::Prove' => '3.42', ... # 193ߦ
NBUSJYDQBOUFTUFSTPSH͕͋Δ w IUUQNBUSJYDQBOUFTUFSTPSH EJTU:".-4ZDL w ͜Ε94Λ࡞Γ·͘ΔจԽͱܨ͕ͬͯΔͱࢥ͏
DQBONΛ͏ͱQFSMόʔδϣϯ Λऩू w IUUQDQBONFUBECQMBDLQFSMPSHWFSTJPOT
CMFBE#SFBLT$1"/͕͋Δ w উखʹͯ͢ͷ$1"/ϞδϡʔϧΛ࠷৽ͷQFSM CMFBE ͰϏϧυ ͯ͠ςετ௨ͯ͠ɺࣦഊͨ͠ΒQQʹ࿈བྷ͢Δޓॿձ w QFSMQPSUFST.-ʹྲྀΕͯ͘Δ w SVCZEFWΈ͍ͨͳϠπ
CMFBE#SFBLT$1"/͕͋Δ w ޓੑͷҡ࣋Λڧ͍͘ٻΊ͍ͯΔײ w QFSMEPDQFSMQPMJDZ w %PXOUIJTSPBEMJFTNBEOFTT ޓੑΛࣦͬͨઌڰؾͰ͢ w
XFWFIFMEPVSTFMWFTUPBGBSIJHIFSTUBOEBSEUIBO CBDLXBSEDPNQBUJCJMJUZCVHXBSEDPNQBUJCJMJUZ ޙํޓੑ ΑΓΔ͔ʹߴ͍ʮޙํʮόάʯޓੑʯΛक͖ͬͯ·ͨ͠
$1"/54 w $1"/ϞδϡʔϧͷςετΛߦͬͯ౷ܭදࣔ w IUUQTDQBOUTDQBOBVUIPSTPSH w ྑ໊͍લͰ͢Ͷ 4FF1BOUT
$1"/54 w $)"/(&-0(͕͋Δ͔ͱ͔ w ϥΠηϯε͕͋Δ͔ͱ͔ w ࣗಈΠϯετʔϧ͕Ͱ͖Δ͔ͱ͔ w .&5"ZNMʹQFSMWFSTJPO͕ॻ͍ͯ͋Δ͔ͱ͔ w
શϑΝΠϧʹVTFTUSJDU͕͋Δ͔ͱ͔
.JOJMMB w $1"/ϞδϡʔϧͷܗΛ࡞Δ$1"/Ϟδϡʔϧ w CVOEMFHFNΈ͍ͨͳϠπ w ಥવͷએ ৄ͘͠ࠓ݄ͷ8&# %#1SFTT7PM w
94ͷܗΛੜͰ͖Δ w NJOJMOFXQ94
ґଘ͕ؔಈతʹܾ·Δ w DQBOJOTUBMM࣌ʹ w .BLFpMFQMΛ࣮ߦ w ґଘؔͷղܾ w NBLF NBLFJOTUBMMΛ࣮ߦͯ͠ϑΝΠϧඋ
ґଘ͕ؔಈతʹܾ·Δ w .BLFpMFQMͰಈతʹґଘ͕ܾ·Δ ͜ͱ͕͋Δ w +40/94͕ೖ͍ͬͯͳ͍߹ͷΈ$1BOFM+40/94Λґଘʹ Ճ͢Δɺͱ͔ʜʜɻ w ਖ਼͍͠ॱͰDQBOJOTUBMM͠ͳ͍ͱ࠷ऴతͳґଘ͕มΘͬͯ͠·͏ w
όʔδϣϯ͚ͩͳΒͱ͔͘ϥΠϒϥϦ͢ΒมΘΔͷҟৗ w ࠷ۙTUBUJDJOTUBMM͕ྲྀߦ͖͍ͬͯͯ·͢
·ͱΊ
·ͱΊ w 3VCZͱ1FSMͷܑఋؔ w XFC։ൃͷ্Ͱඞཁͳಓ۩΄΅Ұॹ w 1FSMޓੑΛඇৗʹେࣄʹ͢ΔจԽ w ޓੑΛॏࢹͨ͘͠ͳͬͨΒʮͲ͏͍͏ख๏Λͱ͍ͬͯΔ͔ʯΛ ோΊʹདྷͯཉ͍͠
w ͜͜·ͰΔͱ$֦ு͕૿͑Δ͔ʁ