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
Develop to Survive - YAPC::Hakodate 2024 Keynote
Search
moznion
October 07, 2024
Technology
9
14k
Develop to Survive - YAPC::Hakodate 2024 Keynote
YAPC::Hakodate 2024のキーノートスライドです。
moznion
October 07, 2024
Tweet
Share
More Decks by moznion
See All by moznion
これはPerl? それともRuby? クイズ〜〜〜〜〜!!!- Perl or Ruby Quiz
moznion
3
2.4k
Perl 5 OOP機構30年史 - Perl 5's OOP Mechanism over the past 30 years
moznion
1
930
RuboCopのカスタムCopを書いてContributionしてみる - Contributing a Custom Cop to RuboCop: A Hands-on Experience
moznion
0
65
AWS上に構築する メンテ容易なElasticsearch System / Maintainable Elasticsearch system on AWS
moznion
2
3.9k
PROXY Protocol aware Proxy Server on Node.js
moznion
2
2.5k
Perl meets AWS Lambda
moznion
0
4.7k
ソフトウェア開発における 「設計」と「パフォーマンス」の相互作用 / Interaction Between Design and Performance on Software Development
moznion
12
6.9k
Javaカードの世界 / The world of Java Card
moznion
9
13k
無限にスケールする上に自律的なJenkinsに見る夢~AWS篇~ / Dream of autonomous and infinite scalable Jenkins with AWS
moznion
21
7k
Other Decks in Technology
See All in Technology
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
220
podman_update_2024-12
orimanabu
1
260
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
150
Qiita埋め込み用スライド
naoki_0531
0
860
ハイテク休憩
sat
PRO
2
140
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
280
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
240
Storage Browser for Amazon S3
miu_crescent
1
140
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
muziyoshiz
2
2.2k
フロントエンド設計にモブ設計を導入してみた / 20241212_cloudsign_TechFrontMeetup
bengo4com
0
1.9k
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
1
230
OpenShift Virtualizationのネットワーク構成を真剣に考えてみた/OpenShift Virtualization's Network Configuration
tnk4on
0
130
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Agile that works and the tools we love
rasmusluckow
328
21k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Practical Orchestrator
shlominoach
186
10k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Automating Front-end Workflow
addyosmani
1366
200k
How to Ace a Technical Interview
jacobian
276
23k
Docker and Python
trallard
42
3.1k
A Tale of Four Properties
chriscoyier
157
23k
Producing Creativity
orderedlist
PRO
341
39k
Transcript
Develop to Survive :"1$)BLPEBUF,FZOPUF !NP[OJPO
Taiki Kawakami @moznion PAUSE ID: MOZNION Software Engineer at SmartBank,
inc. വؗࢢग़ ͖ͳPerlͷػೳ: wantarray built-in: do, kill, die
EBOUIFRVFTUJPOXFMDPNF
0QFOUIF'VUVSFʂʂʂʂʂʂ
ίʔυॻ͍ͯ·͔͢ʂʂʂʂ
ιϑτΣΞϓϩμΫτΛ <Δ> ͱ͍͏͜ͱ ίʔυΛॻ͚ͩ͘Ͱͳ͍ ίʔυΛॻ͚ͩ͘Ͱཱ͠ͳ͍ ͔͠͠ίʔυΛॻ͔ͳ͍ͱ࣮ݱෆՄೳ ͭ·ΓίʔυΛॻ͔Ͷବ
ιϑτΣΞϓϩμΫτΛ <Δ> ͱ͍͏͜ͱ ίʔυΛॻ͚ͩ͘Ͱͳ͍ ίʔυΛॻ͚ͩ͘Ͱཱ͠ͳ͍ ͔͠͠ίʔυΛॻ͔ͳ͍ͱ࣮ݱෆՄೳ ͭ·ΓίʔυΛॻ͔Ͷବ ͱ͍͏ͷݐલͰɺݸਓతʹ୯ʹίʔυΛॻ͍ͯ
ϞϊΛ࡞Δͷ͕͖ Ϗδωεͷ͕ແ͍Θ͚Ͱͳ͍
ίʔυΛॻ͘ͱ͍͏ߦҝͷݪମݧ
ίʔυΛॻ͘ͱ͍͏ߦҝͷݪମݧ
ίʔυΛॻ͘ͱ͍͏ߦҝͷݪମݧ ͭ·Γͩͯ͜ະདྷେֶͷ։ֶ ͋ͨΓ ࣌খֶੜ ࠓͰݴ͏ϩʔίʔυͰήʔϜ࡞ΓϫʔΫγϣοϓΈ͍ͨͳͷ͕͋ͬͨ
ͦ͜ͰͷήʔϜ ͷΑ͏ͳͷ ࡞Γ͕ίʔσΟϯάͷݪମݧ
৭ʑ͋Γവؗߴઐೖֶ ͦ͏ͨ͠ݪମݧ͕͋ͬͨͨΊവؗߴઐใֶՊʹೖֶ ͱ͍͏ͷΛ៉ྷʹܨ͛ΔͨΊͷϑΟΫγϣϯ ຊػցֶՊʹೖͬͯΤϯδϯΛΔͭΓͩͬͨ ༮ೃછ͕ʮ͜Ε͔Βύιίϯʯͱݴ͍ͬͯͨͷͰӨڹ͞Εͯ ใֶՊग़ئมߋ
ͦͦະདྷେͰͷϫʔΫγϣοϓͷ͜ͱ͔ͬ͢ΓΕ͍ͯͨ
വؗߴઐͷ͓͔͛Ͱϝγ͕৯͍͑ͯΔ 𝓑𝓲𝓰 𝓣 𝓱𝓪𝓷𝓴𝓼 ిࢠճ࿏ɺϋʔυΣΞɺιϑτΣΞɺωοτϫʔΫΛ ମܥతʹֶͨ
ಛʹຊ֨తͳϓϩάϥϛϯάͱͷग़ձ͍େ͖͔ͬͨ ݁ہ͜ΕͰࠓ·ͰͳΜͱ͔৯͍͑ͯΔ ͋ͱιϑτΣΞֶͱϢʔβʔΠϯλʔϑΣʔε
ߴઐࡏֶ࣌ͷ༷ࢠ ΓιϑτΣΞ͖ͩͬͨͷͰ৭ʑͱ࡞͍ͬͯͨ 8JOͷ5XJUUFS$MJFOUΛ+BWBXJUI4XJOHͰ࡞ͬͨΓ͍ͯͨ͠ ͋ͱαϯϓϥʔΞϓϦΛ࡞ͬͨΓͱ͔ ͜ͷ࣌ͱ͘ʹΦʔϓϯιʔεͱ͍͏ͷΛΒͣ
ͦͦϥΠϒϥϦͱ͍͏ͷΛཧղ͍ͯ͠ͳ͔ͬͨ
৭ʑ͋Γटେֶ౦ژฤೖ ֶඅͱ༡ͿΧωΛՔ͙ඞཁ͕ग़͖ͯͨ ༡ͿΧωཉ͠͞ʹۀ༻ػցΛ࡞ΔձࣾͰόΠτΛ࢝ΊΔ
ಥવͷ1FSMͷ֮Ί
ಥવͷPerlͷ։؟ ࣌͋ͨΓ 8FCܥͷϓϩάϥϛϯάΛ΄΅Βͳ͍ঢ়گ ͳ͔ͥʮ͜Β͔Βͷ࣌1FSMͩʂʂʯͱͳΔ ஶऀ͜ͷ࣌ɺطʹ3VCZPO3BJMTW͕ੈͷதʹग़͍ͯΔ
4/.1.*#ͷղऍثͳͲΛ1FSMͰΰϦΰϦॻ͘ʑ
Hachioji.pmͱͷᬍ टେֶ ࡏീԦࢠ ɺͦͯ͠1FSMͱ͘Εʜʜ )BDIJPKJQNͱग़ձ͏ͷඞવ *5ษڧձΧϨϯμʔͷ͓͔͛Ͱ͋Δ
࣌Βͳ͔ͬͨ8FCۀքͷݟΛζϧζϧٵ͑ͨ ࣌)BDIJPKJQNͰ1FSMͰνϟοτπʔϧΛࣗ࡞͍ͯͨ͠ IUUQTHJUIVCDPNV[VMMBZBODIB ͦΕͰίϛϡχέʔγϣϯ͍ͯͨ͠ߗͳूஂ
Hachioji.pmͱͷᬍ टେֶ ࡏീԦࢠ ɺͦͯ͠1FSMͱ͘Εʜʜ )BDIJPKJQNͱग़ձ͏ͷඞવ *5ษڧձΧϨϯμʔͷ͓͔͛Ͱ͋Δ
࣌Βͳ͔ͬͨ8FCۀքͷݟΛζϧζϧٵ͑ͨ ࣌)BDIJPKJQNͰ1FSMͰνϟοτπʔϧΛࣗ࡞͍ͯͨ͠ IUUQTHJUIVCDPNV[VMMBZBODIB ͦΕͰίϛϡχέʔγϣϯ͍ͯͨ͠ߗͳूஂ
ϥΠϒϥϦॻ͖࢝Ί ͜ͷ͋ͨΓ͔ΒϥΠϒϥϦΛॻ͍ͯެ։͢ΔΑ͏ʹͳͬͨ ͪΌΜͱ(JU)VCΛ͍͡ΊΔΑ͏ʹ $1"/ʹͪΒ΄ΒΞοϓϩʔυͯͨ͠Γ͍ͯͨ͠ ͜ͷ࣌Ͱʮଞਓ͕ศརʹ͑Δʯͱ͍͏͜ͱಛʹߟ͓͑ͯΒͣ
ࣗݾදݱɾࣗݾຬͷΑ͏ͳ׆ಈʹཹ·͍ͬͯͨ
ͯͳΠϯλʔϯ2013
ͯͳΠϯλʔϯ2013 िؒʹΔαϚʔΠϯλʔϯ લिؒ࠲ֶ 8FCͷجຊɺ1FSMɺJ04"QQɺ%#ɺࣗવݴޠॲཧͳͲΛ ͔ͬ͠Γͱڭ͑ͯ͘ΕΔΧϦΩϡϥϜ ޙिؒϓϩμΫγϣϯίʔυΛ৮Δ0+5ܗࣜ
ͯͳϒϩά"UPN1VC"1*Λ࡞ͬͨ IUUQTIBUFOBDPKQJOUFSOQSPKFDUTJOEFYIUNM
ͯͳΠϯλʔϯ2013 ༻Ͱಈ͘8FCΞϓϦΛ৮ΕΔوॏͳମݧ ͦͯ͠3'$ΛಡΈͳ͕Β࣮͢Δॳͷମݧ ञΛҿΈ͍͚͗ͯ͢ͳ͍ͱ͍͏͜ͱΔ ͯͳΠϯλʔϯ࠷ߴʂʂʂʂʂʂ
ΈΜͳߦ͜͏
-*/&ฤ
LINEͰΞϧόΠτΛ࢝ΊΔ 1FSM͕ॻ͚Δਓؒͱ͍͏͔͠͞Β͔-*/&ʹόΠτͰޏΘΕΔ ϓϩμΫγϣϯͰಈ͍͍ͯΔڊେ8FC"QQΛ৮Δମݧ ޙʹઌʹ͋ͷنͷ1FSMͷ"QQΛ৮ͬͨ͜ͱͳ͍
৭ʑ͋ΓLINEʹब৬ ͱʹ͔͘৭ʑͳαʔϏεͷ্ཱͪ͛ʹؔΘͬͨ ͪΖΜͦͷޙͷӡ༻ ͪΌΜͱۀͰ ͭ·Γଞਓͷ ʹཱͭϥΠϒϥϦ ϛυϧΣΞͷॏཁੑΛڧ͘ೝࣝ࢝͠ΊΔ
͜ͷ͋ͨΓ͔Β࡞෩͕एׯมΘͬͯ͘Δ ศརͰ͋ΕখཻͰϥΠϒϥϦπʔϧʹ͢Δͱ͍͏ελΠϧ
Perl::Lint HPDDZ͞Μ͕࣌࡞ΒΕ͍ͯͨ$PNQJMFS-FYFSΛόοΫΤϯυʹ ͨ͠ ࣌Ͱ ߴͳ1FSMͷ-JOUFSΛ։ൃ͍ͯͨ͠ IUUQTHJUIVCDPNNP[OJPO1FSM-JOU 5IF1FSM'PVOEBUJPOͷ4QPOTPSFE1SPKFDUʹͳͬͨ
ݴ͍ͰεϙϯαʔϑΟʔΛ֫ಘͰ͖Δͷ͕ͩʜʜ ࠓߟ͑ΔͱͰਃͨ͠ͷ͓͔͔ͬͨ͠ͷͰʁʁʁʁʁ
Perl::LintͰYAPC::EUߦ͘ 1FSM-JOUΛͻͬ͛ͯ͞:"1$&6(SBOBEBߦͬͨ ࣌ͬ͞ͺΓӳޠ͕Ͱ͖ͣ MFTUSSBU͞Μʹॿ͚ͯΒͬͨ ͔͠͠ӳޠͰϓϨθϯ͠ͳ͖ΌͩΊͩͬͨͷͰ͜͜ؾ߹Ͱ
ࢥ͍ͷ΄͔ϓϨθϯͷέ͕Α͔ͬͨͷ͔ɺ"GUFS1BSUZͰ ৭ʑͳਓʹΛ͔͚ͯΒͬͨ ͜ͷΜͰएׯւ֎Ͱͷ׆ಈʹର͢Δڵຯ͕ग़ͯ͘Δ
Perl::LintͰYAPC::EUߦ͘ 1FSM-JOUΛͻͬ͛ͯ͞:"1$&6(SBOBEBߦͬͨ ࣌ͬ͞ͺΓӳޠ͕Ͱ͖ͣ MFTUSSBU͞Μʹॿ͚ͯΒͬͨ ͔͠͠ӳޠͰϓϨθϯ͠ͳ͖ΌͩΊͩͬͨͷͰ͜͜ؾ߹Ͱ
ࢥ͍ͷ΄͔ϓϨθϯͷέ͕Α͔ͬͨͷ͔ɺ"GUFS1BSUZͰ ৭ʑͳਓʹΛ͔͚ͯΒͬͨ ͜ͷΜͰएׯւ֎Ͱͷ׆ಈʹର͢Δڵຯ͕ग़ͯ͘Δ
LINE ͱʹ͔͘τϥϑΟοΫ͕ΰπ͔ͬͨ UPLVIJSPNʮ8FCαʔϏεͷ໘ന͞τϥϑΟοΫͷྔʹൺྫ͢Δʯ ΞυςΫʹ৮ΕΒΕͨͷوॏͳମݧ ۀن͕͍͢͝
ࡏ੶தʹ্͢Δͱ͍͏Πϕϯτ͋ͬͨ
ιϥίϜฤ
ελʔτΞοϓͰΓ͍ͨཉ ͕ࣗΕΔ͜ͱશ෦Γ͍ͨͱ͍͏ؾ࣋ͪ ߴʹۀ͞Εͨ৫ͦΕͦΕͰྑ͍Ұํ ࠷దԽͷ݁Ռ ྗࢼ͠ʹࣅͨײ֮ʁ
ͪΖΜҰൃͯͨ͋ͬͨ͞
ιϥίϜʹస৬ ೖࣾʹ,%%*ʹങऩ͞ΕΔ Ұൃ͕௵͞Εͨܗʹ ϛογϣϯΫϦςΟΧϧͳγεςϜ ܞଳిίΞωοτϫʔΫ ͕ "84্Ͱߏங͞Ε͍ͯΔͱ͍͏ઌӶతͳڥ
8FCٕज़ͱηϧϥʔٕज़ͷ༥߹ͱ͍͏ܗ
ελʔτΞοϓϚΠϯυ (ͱʹ͔͘Δ) 8FCٕज़ͷԠ༻ ϨϕϧωοτϫʔΫ ࢹվળɺӡ༻վળ ৽ػೳɾ৽αʔϏε࡞Γ·͘Γ
ίΞωοτϫʔΫ։ൃ (ϓϩτίϧελοΫ։ൃ ඪ४༷ΛಡΈͳ͕ΒͷίʔσΟϯάܦݧ͕͜͜Ͱ׆͖͖ͯͨ +BWB$BSE ͳͲͳͲʜʜ
ถ ৭ʑͳࣄ͕͋Γ4PSBDPN(MPCBM *ODग़ ΞϝϦΧ߹ऺࠃϫγϯτϯभγΞτϧҠॅ ίϩφਅͬΓͷλΠϛϯάͰͷҠॅͰΧΦεʂʂʂ ։ൃۀΛͭͭ͠ݱͷΧελϚʔαϙʔτతͳ͜ͱΛͨ͠Γ
ςΫχΧϧηʔϧεͱڠۀͨ͠Γ
ؼࠃɺͦͯ͠స৬ ͘Β͍ΞϝϦΧͰੜ׆ͯ͠ຊؼࠃ ্ͦͯ͢͠Δͱ͍͏Πϕϯτ͕͋ͬͨ ্λΠϛϯάͰࣾΛܦͯݱ৬4NBSU#BOLస৬
ࠓʹࢸΓɺ༷ʑࢥ͏͜ͱ
ιϑτΣΞϓϩμΫτ࡞ΓνʔϜϫʔΫ ͦΕͦ͏ ྫ֎͋Δ νʔϜϫʔΫͳͯ͘͠ޭͳ͍ ྫ֎͋Δ
͕ͩνʔϜΛνʔϜͨΒ͠Ί͍ͯΔͷݸਓ ͜͜࠷ۙνʔϜʹର͢ΔϑϨʔϜϫʔΫʹয͕ͨΓ͕ͪʹ ͳ͓ͬͯΓɺݸਓʹϑΥʔΧε͞Εͳ͍͜ͱʹएׯҧײ ͦΕ͘Β͍ख़ͨ͠ۀքʹͳ͖ͬͯͨͱ͍͏ݟํͰ͖Δ
ݸਓٕʹΑΔߩݙ ݸਓͷڧ͍ٕྔɺϞνϕʔγϣϯͦͯ͠ύογϣϯ͕ϓϩδΣΫτΛ ਪਐ͢ΔέʔεΛΑ͘ݟ·ͤΜ͔ʁ ݸਓٕΛຏ͘͜ͱʹΑΓϓϩμΫτ͕ྑ͘ͳΔͱ͍͏ͷਅͩͱࢥ͏
ݸਓٕʹΑΔߩݙ ຏ͔Εͨݸਓٕ͕ू·Δ͜ͱʹΑΔνʔϜϫʔΫͲ͏͔ʁ ࢍ൱྆͋Δ ͦ͏Ͱͳ͍ঢ়گͰͳΜͱ͔͢Δͷ͕ιϑτΣΞֶͰʁʁ ݸਓٕΤϯδχΞϦϯάͷΈʹݶΒͳ͍
ڵຯυϦϒϯͰݸਓٕΛຏ͘ ະͷٕज़υϝΠϯͷࢿྉجຊతʹಡΊಡΉ΄Ͳʹ͘ शಘͨ͠ͿΜ७ਮʹྗʹͳΔ ಡ·ͳ͍ͱʹ͔ͳ͍ ಡΈΒͳͯ͘ྑ͍
ΩϟϦΞઙΊͷ͜ΖʹಡΜͩຊ͕ࠓͷ݂ʹͳ͍ͬͯΔ࣮ײ͕͋Δ ࣮ࡍɺ࣌Θ͔Βͳ͍ͱ͜Ζଟ͋ͬͨ͘
ͱʹ͔͘େྔʹ࡞ͬͨ ೖΕͨࣝΛ্ͬͨͰखΛಈ͔ͯ͠େྔʹϞϊΛ࡞ͬͨ ࣄͰ͏ͱ͍͏ΑΓझຯͰΔ͜ͱ͕ଟ͔ͬͨ ࠷ॳશવବବͩͬͨΑ͏ʹࢥ͏ ࣍ୈʹίπ͕௫Ί͖ͯͯԠ༻͕ޮ͘Α͏ʹͳ͖ͬͯͨ
ྔ͕࣭ʹసԽ͢Δ ࡞ͬͨΒ֎ʹग़͢ͱ͍͏ͷॏཁ ϨϏϡʔ͞ΕΔ উखʹఴä
ͱʹ͔͘େྔʹ࡞ͬͨ ͱʹ͔͘࡞Δ͜ͱͰࣄΛղܾ͠Α͏ͱ͍ͯͨ͠ ͋Δ͍ຬͨ͞ΕΑ͏ͱ͍ͯͨ͠ ࠶ൃ໌্ʂʂʂʂ ࠶ൃ໌͔ΒಘΒΕΔݟ͕ଟʑ͋Δ ઌਓͷܙ
ྺ࢙తܦҢ ݱͷٕज़ʹΑΔผղ
ࣗͨͪͷͨΊͷେྔੜ࢈ Ռʹର͢Δ֬ೝΛ͍͍͍ͪͪͬͯΔͱͦ͜Ͱ͢Δ ͦ͜ͰಉظΛऔΔͱՄॲ͕࣌ؒ݁ՌతʹݮΔ ඞཁʹͳΓͦ͏ͳϞϊɾύλʔϯՄೳͳݶΓશ෦࡞ͬͯΈΔ ͦͷஈ֊Ͱ֬ೝΛऔͬͯෆཁͳͷࣺͯΔͱ͍͏ελΠϧ
ࢍ൱྆͋Δ
ࣗͨͪͷͨΊͷେྔੜ࢈ େྔੜ࢈ʹ׳Εͯ͘Δͱ࡞Δεϐʔυ্͕͍ͬͯ͘ ߴʹϞϊΛ࡞ΕΔͱ͍͏ͷͦΕ͚ͩͰϝϦοτ ࢼߦճΛ७ਮʹ૿͢͜ͱ͕Ͱ͖Δ ࣭ͱྔ͕ಉډ͢Δ
͋Δਓ [୭?] ݴ͍·ͨ͠ 4IVUUIF VQBOEXSJUFTPNFDPEF ӵΈਓΒͣ ͱʹ͔͘खΛಈ͔ͯ͠࡞Δͷ͕ඒಙͱ͍͏ελΠϧ
ଟ͘ͷ߹ʮͦ͜ʹ͋Δͷʯ͔͠৴͡ΒΕͳ͍ ϕʔεϥΠϯͱͳΔͷ͕͋Δͱ͔ͦ͜Β͕ٞͰ͖Δ ࡞ΔࣺͯΔ·͔ͣͦ͜Β
ݸਓٕͷ্࠶ݱ͢Δͷ͔ʁ ҃ΔҰఆ·Ͱ࠶ݱͤ͞Δํ๏͋Δͱࢥ͏ ͦΕʮڭҭʯͦͷͷͰʁ ͔݁͠͠ՌΛ͍·͍ͪଌΓʹ͍͘ͱ͍͏ͷ͕͍͠ϙΠϯτ ϋʔυεΩϧΑΓιϑτεΩϧͷൺॏ͕ڧ͍ʁ
30ࡀ·ͰͳΜͰΔϚΠϯυ ࡀ·ͰͳΜͰΖ͏ͱࢥ͍ͬͯͨ ιϑτΣΞΤϯδχΞϦϯάʹݶΒͣ Ұ࣌ظηʔϧεʹ͍͍ͬͭͯͨ͘͜ͱ͋Δ ͦͷҰͱͯ͠ʮւ֎Ͱಇ͘ʯͱ͍͏ͷ͋ͬͨ
ίϯϑΥʔτκʔϯ͔Βग़ଓ͚Δͱ͍͏ੜଘઓུ
ίϯϑΥʔτκʔϯ͔Βग़ଓ͚Δ αοΧʔຊදकాӳਖ਼બख ͕ࣗҰ൪Լखͩͱࢥ͏ڥͷ΄͏͕͖ ΤϦοΫɾΫϥϓτϯ εςʔδʹ্͕ͬͨΒ͕ࣗҰ൪্ख͍ͱࢥ͑ɻ εςʔδΛ߱ΓͨΒ͕ࣗҰ൪Լखͩͱࢥ͑ɻ
ͱ͍͑
;Δ͞ͱ͕͋Δͱྑ͍
;Δ͞ͱ͕͋Δͱྑ͍ Γ1FSM͕ࣗͷ৺ͷ;Δ͞ͱ ͜͏͍ͬͨ;Δ͞ͱ͕͋ΔͱͦΕΛࣗͷՁج४ʹͰ͖Δ ൺֱ Ԡ༻
ͭ·Γ:"1$;Δ͞ͱ ҬͷίϛϡχςΟͱ͔Ͷ വؗ;Δ͞ͱɺΑ͔ͬͨͰ͢Ͷ
ݴ͍͔ͨͬͨ͜ͱ·ͱΊ ݸਓٕͷ࣌ͩ<ཁग़య> ͱʹ͔͘࡞Γ·͘Δ͜ͱͰҰఆղܾ͕Ͱ͖Δ ͦͯ͠ྔ͕࣭ʹసԽ͢ΔλΠϛϯά͕ͯདྷΔ ࡞ͬͨͷΛࣺͯΔͷѱ͍͜ͱͰͳ͍ ͱࢥ͏
৺ͷ;Δ͞ͱ Ձج४ ͕͋ΔͱΒ͕͠๛͔ʹͳΔ ͱʹ͔͘खΛಈ͔͢ਓ͕Ұ൪ΧοίΠΠʂ
͍͖ͬͯ·͠ΐ͏