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
12
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
オブザーバビリティの Primary Signals
onk
PRO
2
2.8k
Cache Stampede
onk
PRO
1
1.7k
ORM - Object-relational mapping
onk
PRO
1
3.3k
デュアルトラックアジャイルとの向き合い方
onk
PRO
4
10k
技術記事を書く&楽しむチームの作り方
onk
PRO
0
27
グルーミングしながら進めるプロダクト開発
onk
PRO
0
29
エンジニアの個人ブランディングと技術組織
onk
PRO
0
29
Hatena::Letの式年遷宮
onk
PRO
0
15
cpanfile が Ruby でパースできることに気づいた俺たちは
onk
PRO
0
45
Other Decks in Technology
See All in Technology
四国クラウドお遍路 2024 in 高知 オープニング
yukataoka
0
180
SAVEPOINT α版
savepoint
0
580
CRTO/CRTL/OSEPの比較・勉強法とAV/EDRの検知実験
chayakonanaika
1
1k
DroidKaigi 2024 たすけて!ViewModel
mhidaka
4
470
エンジニア視点で見る、 組織で運用されるデザインシステムにするには
shunya078
1
280
Segment Anything Model 2
tenten0727
2
380
技術ブログや登壇資料を秒で作るコツ伝授します
minorun365
PRO
23
5.3k
自社開発した大規模言語モデルをどうプロダクションに乗せて運用していくか〜インフラ編〜
pfn
PRO
22
6.5k
Optuna: a Black-Box Optimization Framework
pfn
PRO
1
100
OR学会2024秋_短期収益と将来のオフ方策評価性能を考慮したクーポン割当方策混合比の決定
recruitengineers
PRO
4
390
プロダクトエンジニアを支えるための開発生産性向上施策
tsukakei
0
120
エンジニア向け会社紹介資料
caddi_eng
15
250k
Featured
See All Featured
Visualization
eitanlees
142
15k
How GitHub (no longer) Works
holman
310
140k
Agile that works and the tools we love
rasmusluckow
327
20k
Fashionably flexible responsive web design (full day workshop)
malarkey
401
65k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
45
4.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
28
1.6k
5 minutes of I Can Smell Your CMS
philhawksworth
201
19k
Designing for humans not robots
tammielis
248
25k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
34
1.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
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 ͜͜·ͰΔͱ$֦ு͕૿͑Δ͔ʁ