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
10
15k
Develop to Survive - YAPC::Hakodate 2024 Keynote
YAPC::Hakodate 2024のキーノートスライドです。
moznion
October 07, 2024
Tweet
Share
More Decks by moznion
See All by moznion
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
2
1.3k
AIレシート読み取り機能をRuby on Rails on AWSで実現するLLMにまつわるアレコレ / AI-based receipt reading function powered by LLM on Ruby on Rails
moznion
1
7
これはPerl? それともRuby? クイズ〜〜〜〜〜!!!- Perl or Ruby Quiz
moznion
3
2.5k
Perl 5 OOP機構30年史 - Perl 5's OOP Mechanism over the past 30 years
moznion
1
950
RuboCopのカスタムCopを書いてContributionしてみる - Contributing a Custom Cop to RuboCop: A Hands-on Experience
moznion
0
69
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
Other Decks in Technology
See All in Technology
ヤプリQA課題の見える化
gu3
0
160
【令和最新版】ロボットシミュレータ Genesis x ROS 2で始める快適AIロボット開発
hakuturu583
2
1.5k
Bring Your Own Container: When Containers Turn the Key to EDR Bypass/byoc-avtokyo2024
tkmru
0
770
Storage Browser for Amazon S3を触ってみた + α
miura55
0
110
スケールし続ける事業とサービスを支える組織とアーキテクチャの生き残り戦略 / The survival strategy for Money Forward’s engineering.
moneyforward
0
250
🌏丸い地球を効率的に平たくする 〜🗺️地図の幾何学とWeb地図技術〜
syotasasaki593876
0
120
Evolving Architecture
rainerhahnekamp
3
240
Unlearn Product Development - Unleashed Edition
lemiorhan
PRO
2
170
JAWS-UG20250116_iOSアプリエンジニアがAWSreInventに行ってきた(真面目編)
totokit4
0
110
Alignment and Autonomy in Cybozu - 300人の開発組織でアラインメントと自律性を両立させるアジャイルな組織運営 / RSGT2025
ama_ch
1
2.1k
チームが毎日小さな変化と適応を続けたら1年間でスケール可能なアジャイルチームができた話 / Building a Scalable Agile Team
kakehashi
1
190
プロダクト組織で取り組むアドベントカレンダー/Advent Calendar in Product Teams
mixplace
0
680
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Typedesign – Prime Four
hannesfritz
40
2.5k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Fireside Chat
paigeccino
34
3.1k
Designing for humans not robots
tammielis
250
25k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
19
2.3k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Making the Leap to Tech Lead
cromwellryan
133
9k
Measuring & Analyzing Core Web Vitals
bluesmoon
5
200
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.5k
Building Applications with DynamoDB
mza
92
6.2k
It's Worth the Effort
3n
183
28k
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$;Δ͞ͱ ҬͷίϛϡχςΟͱ͔Ͷ വؗ;Δ͞ͱɺΑ͔ͬͨͰ͢Ͷ
ݴ͍͔ͨͬͨ͜ͱ·ͱΊ ݸਓٕͷ࣌ͩ<ཁग़య> ͱʹ͔͘࡞Γ·͘Δ͜ͱͰҰఆղܾ͕Ͱ͖Δ ͦͯ͠ྔ͕࣭ʹసԽ͢ΔλΠϛϯά͕ͯདྷΔ ࡞ͬͨͷΛࣺͯΔͷѱ͍͜ͱͰͳ͍ ͱࢥ͏
৺ͷ;Δ͞ͱ Ձج४ ͕͋ΔͱΒ͕͠๛͔ʹͳΔ ͱʹ͔͘खΛಈ͔͢ਓ͕Ұ൪ΧοίΠΠʂ
͍͖ͬͯ·͠ΐ͏