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
Rails な受託の会社でぼくがやっていること / What I do in a Rails ...
Search
takkanm
March 22, 2019
Technology
6
13k
Rails な受託の会社でぼくがやっていること / What I do in a Rails consulting company
RailsDM 201903 での発表
takkanm
March 22, 2019
Tweet
Share
More Decks by takkanm
See All by takkanm
わたしの知っているRubyKaigiとESM / The relationship between RubyKaigi and ESM that I know
takkanm
0
410
Learn Programming Essence from Ruby patches
takkanm
4
2.3k
UpdateAdhoqToSupportRails5
takkanm
0
1.4k
That I speak when talking about language that starts from R
takkanm
3
2.5k
journey through the programming language(censored edition)
takkanm
1
270
10th anniversary Rubyist Magazine
takkanm
0
190
ordk03-ninja-talk
takkanm
0
580
ソーシャルコーディング時代のふつうのプログラマサバイバルガイド
takkanm
17
7.3k
bookshelf_in_my_head.pdf
takkanm
0
130
Other Decks in Technology
See All in Technology
実践アプリケーション設計 ③ドメイン駆動設計
recruitengineers
PRO
1
160
TypeScript入門
recruitengineers
PRO
8
1.6k
Gaze-LLE: Gaze Target Estimation via Large-Scale Learned Encoders
kzykmyzw
0
310
AIが住民向けコンシェルジュに?Amazon Connectと生成AIで実現する自治体AIエージェント!
yuyeah
0
260
認知戦の理解と、市民としての対抗策
hogehuga
0
320
LLMエージェント時代に適応した開発フロー
hiragram
1
410
EKS Pod Identity における推移的な session tags
z63d
1
200
サービスロボット最前線:ugoが挑むPhysical AI活用
kmatsuiugo
0
190
JOAI発表資料 @ 関東kaggler会
joai_committee
1
260
マイクロモビリティシェアサービスを支える プラットフォームアーキテクチャ
grimoh
1
200
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
2
20k
Go で言うところのアレは TypeScript で言うとコレ / Kyoto.なんか #7
susisu
5
1.5k
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
20k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Statistics for Hackers
jakevdp
799
220k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
How to train your dragon (web standard)
notwaldorf
96
6.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Documentation Writing (for coders)
carmenintech
73
5k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Transcript
Rails ͳडୗͷձࣾͰ ΅͕͍ͬͯ͘Δ͜ͱ ࡾଜ ӹོ a.k.a takkanm ӬγεςϜϚωδϝϯτ ΞδϟΠϧࣄۀ෦ /
Asakusa.rb
Who am I • ӬγεςϜϚωδϝϯτ ΞδϟΠϧࣄۀ෦ • RubyΞδϟΠϧάϧʔϓ νʔϑϓϩάϥϚʔ •
Asakusa.rb ϝϯόʔ • 1 of 6 ਓ͍ΔύʔϑΣΫτRubyஶऀ
ࠂ
None
https://esminc.connpass.com/event/123239/
ࠓͷ
Θͨ͠ͱ Rails • Ruby ֶੜͷͱ͖͔Β (2004)͙Β͍ • Rails 0.6
͙Β͍ʹ৮͚ͬͨͲɺ͓ࣄͰ͏Α͏ʹͳͬͨͷ 2008 ͷ Rails2 ͙Β͍ͷͱ͖ • Railsษڧձ@౦ژͱ͍͏ษڧձͷ N ͷ։࠵ऀ
ࠓͷ༰ ͦΜͳΘ͕ͨ͠ӬγεςϜϚωδϝϯτͱ͍͏ Rails ʹΑΔγε ςϜ։ൃΛϝΠϯͱͨ͠डୗձࣾͰͲ͏ࣄΛ͍ͯ͠Δ͔ͱ͍͏ Λ͠·͢ɻʮʑϓϩδΣΫτͰͲ͏ࣄΛ͍ͯ͠Δ ͔ʯɺʮ৽͍͕ؒ͠དྷͨͱ͖Ͳ͏͍ͯ͠Δ͔ʯɺʮϓ ϩδΣΫτ֎ͷ׆ಈΛͲ͏͍ͯ͠Δ͔ʯͱ͍͏؍Ͱ͓ ͑Ͱ͖Εͱࢥ͍·͢ɻ
What is ӬγεςϜϚωδϝϯτ ΞδϟΠϧࣄۀ෦ ?
ESMΞδϟΠϧࣄۀ෦ͷྺ࢙ • 2000 ͙Β͍ʹମͱͳΔࣄॴͷൃ • ݩɺXP ΞδϟΠϧએݴʹײԽ͞Εͨਓؒͨͪͷू·Γ • 2006 ͙Β͍͔Β
Ruby Ͱࣄ͍ͯͧ͘͠એݴ
ESMΞδϟΠϧࣄۀ෦now • Ruby ʹΑΔγεςϜ։ൃΛߦ͍ͬͯΔϝϯόʔ 21 ໊ • ϕςϥϯͱएख͕ࠞࡏ • ࣗϕςϥϯͱएखͷத͙ؒΒ͍(ͱ͓ͬͯΔ
ʑͷࣄ
Ӭͷࣄͱͯ͠Δ͜ͱ • Ҋ݅ަবͷஈ֊ͷଧͪ߹ΘͤݟੵΓ • νʔϜϝϯόʔͷબఆ • ϓϩδΣΫτͷӡӦɺ݉։ൃ
ׂѪ
ʑͷϓϩδΣΫτͷ ։ൃͷࡍʹ͍ͬͯΔ͜ͱ ҙ͍ࣝͯ͠Δ͜ͱ
ීஈ͍ͬͯΔ͜ͱ • ಋೖ͢ΔϥΠϒϥϦϛυϧΣΞͷબఆͱஅ • ίʔυϨϏϡʔ • ϓϩδΣΫτΛ͑ͯར༻Ͱ͖ΔΑ͏ʹ͢Δ
ϛυϧΣΞϥΠϒϥϦͷબఆ • ӡ༻ɾอकΛ୭͕Δ͔Λߟ͑Δ • ՄೳͳݶΓܾఆΛΒͤΔ
ྫ) background job ʹԿΛ͏͔ • sucker_punch Λ͍ΕͯɺՄೳͳݶΓ ActiveJob Ͱ࣮ݱͰ͖Δ ൣғͰϓϩδΣΫτΛਐΊΔ
• γεςϜͷ͜ͱ͕Θ͔͖ͬͯͨ͋ͨΓͰɺ͜ͷ··͢͢ΊΔ͔ɺ DB ΛΩϡʔͱͯ͠͏ͷʹ͢Δ͔ɺ
ίʔυϨϏϡʔ • ߟྀ࿙ΕͷέʔεύϑΥʔϚϯεʹؔΘΓͦ͏ͳ͕ͳ͍͔ Λ֬ೝ • ҙਤ͕ͪΌΜͱΘΔίϝϯτΛ৺͔͚Δ • ͕ࣗड͚ೖΕΔ֮ޛ͕ͯΔ͔Ͳ͏͔
ίʔυϨϏϡʔΏΔΊ • ઃܭํࣄલʹνʔϜͰ͢Γ͋ΘͤΔ • ίʔυϨϏϡʔͰݫ͍͠ײ͡ʹͳΔͷɺͦ͜·Ͱʹ͕͋ Δͱࢥ͍ͬͯΔͷͰɺͦ͜Λ͍͚ͯ͠ΔΑ͏ʹ͢Δ • ҰఆྔͷࢦఠΛ͠ͳ͍ͱ͍͚ͳ͍ͱஅͨ͠ΒɺϨϏϡʔΛࣙ ΊͯҰॹʹΔͱ͍͏͜ͱΛબ͢Δ
ϓϩδΣΫτΛ͑ͯར༻Ͱ͖ΔΑ͏ʹ͢ Δ • ϓϩδΣΫτͷίʔυΛॻ͖ͳ͕Βɺ൚༻తʹͰ͖ͦ͏ͳՕॴ ΛgemʹΓग़ͯ͠ΈΔ • ࣮ࡍɺ·ͨ͏͔Ͳ͏͔ޒޒ • େ࡞͡Όͳͯ͘࡞Δ͜ͱΛ༏ઌ
͜͏͍͏ϨϕϧͰgemʹ͍ͯ͠Δ • esminc/operate_do • AS::CurrentAttributes Έ͍ͨͳͷΛ࣮ݱ͢Δͭ • esminc/jis_x_0401 • JISX0401ͷͨΊͷϥΠϒϥϦ
• esminc/s3_reproxy_download • S3 ʹ͋ΔϑΝΠϧΛ X-REPROXY-URL ΛͬͯฦͤΔΑ͏ʹ͢Δ
͍ͬͯͯͲ͏͔ • ʮҙຯ͋ΔΜͰ͔͢ʯͱ͔ʮηϯεͳ͍ʯΈ͍ͨͳ͜ͱΛݴΘ ΕΔ͜ͱ͋Δ • ͜͏͍͏͜ͱ͕Ͱ͖ΔϑοτϫʔΫͷܰ͞ΛࣗͰ͍ͬͯ ͍ͨ • ෑډͷ͞Λԋग़ͯ͠ɺଞͷਓʹͬͯΒ͑ΔΑ͏ʹͨ͠ ͍
৽͍͕͖ؒͨ͠ͱ͖
Ӭଜʹ͋ͨΒ͍͕͖ؒͬͯͨ͠ • ͬͯ͘Δස 1, 2 ਓ͙Β͍(৽ଔআ͘ • Ruby ͷ͓ࣄܦݧΊ •
ҟۀछస৬
ΦϯϘʔσΟϯάࣄ
ΦϯϘʔσΟϯάࣄ "
ܾΊΒΕͨͷ͕ͳ͍ཧ༝ • ਓʹΑͬͯঢ়گ͕ҧ͏ • ೖࣾλΠϛϯάʹΑͬͯࣾঢ়گ͕ҧ͏ • Railsʹର͢Δڭҭࢿྉੈͷதʹ͋ΔͷͰࣗ࡞͢ΔϞνϕʔ γϣϯ͕͍
ͰɺͲ͏͍ͯ͠Δ͔ • ೖࣾΔ͜ͱܾ·͓ͬͯΓ์ஔ͍ͯ͠ΔΘ͚Ͱͳ͍ • ϓϩδΣΫτͷঢ়گͦͷϓϩδΣΫτͷϝϯόʔΛΈͯɺ͜ ͷਓ͕͍ΔͳΒ҆৺ͱ͍͏ϓϩδΣΫτͰͷ OJT
Θ͕ͨ͠ΈΔͱ͖ͷํ • ଞͷνʔϜʹଐ͞Ε͔ͯΒɺ৽͍͠ϝϯόʔͱͦͷϓϩδΣ ΫτͷνʔϜ͕ࠔΒͳ͍Α͏ʹ͍ͨ͠ • ද໘తͳٕज़ཁૉͳͲϓϩδΣΫτʹΑͬͯҧ͏ͷͰɺͦΕ ΒΛࢧ͑ΔͱͳΔࣝߟ͑ํΛ·ͣʹ͚ͭͯཉ͍͠
ϓϩδΣΫτʹೖͬͯࠔΔ͜ͱ • Ruby on Rails ͷίʔυ͕ॻ͚Δॻ͚ͳ͍͔ΑΓɺίϛϡχ έʔγϣϯ͕ͱΕͳ͍͜ͱ͕ͱͳΔ͜ͱ͕ଟ͍ • ϕςϥϯϦʔμʔͱͷࣝߟ͑ํͷΪϟοϓʹΑΓൃੜ͠ ͯͦ͏
ࠔΒͳ͍Α͏ʹͳΔͨΊʹ • Θ͔Βͳ͍͜ͱΛͪΌΜͱ͑ΒΕΔΑ͏ʹͳΔ • λεΫͷݟੵΓͱܭը͕Ͱ͖Δ • ࣄΛָ͘͠Ͱ͖ΔΑ͏ʹͳΔ
Θ͔Βͳ͍͜ͱΛ͑Δٕज़ॏཁ • Θ͔Βͳ͍͜ͱΛͪΌΜͱ͑Δͷ͍͠ • Θ͔Βͳ͍͜ͱ͕͋ΔͱɺͦͷΘ͔Βͳ͍··૬ஊͯ͠͠·͏ • ͦͷཻ͕େ͖͗͢Δͱɺฉ͖खԿ͕Θ͔Βͳ͍ͷ͔Θ͔Β ͣରԠ͕Ͱ͖ͳ͍
Θ͔Βͳ͍͜ͱΛཧղ͑͠ΒΕΔΑ͏ʹ • Λཧͯ͠ɺΓ͚ɺখ͘͞ղͰ͖ΔΑ͏ʹҙࣝͤ͞ Δ • ࣭Λͯ͠ɺҙ͍ࣝͯ͠ͳ͔ͬͨͱ͜ΖΛ͋ͿΓͩ͢ • ͍ͬͯΔ༻ޠ͕ਖ਼͍͔͠ͷ֬ೝ
λεΫͷݟੵΓͱܭը͕Ͱ͖Δ • ݟੵΓ͕Ͱ͖Δͱ͍͏͜ͱɺͦͷλεΫΛͲ͏͢ΕΕ Δ͔ͱ͍͏͜ͱ͕Θ͔Δͱ͍͏͜ͱ • ܭը͕Ͱ͖Δͱ͍͏͜ͱɺΞϥʔτΛ͋͛ΔλΠϛϯάΛࣗ ͰஅͰ͖Δ
ԿނݟੵΓͱܭըΛॏࢹ͢Δ͔ • ࣌ؒ༗ݶͳͷͰɺظ͢ΔظؒͰऴΘΔ͔ͱ͍͏͜ͱʹେ͖ ͍ؔ৺͕ΑͤΒΕΔ • ݟੵΓʹΑͬͯɺΔ͜ͱ͕໌֬ʹͳͬͨΓɺଞͷਓͱͷҙ ࣝ͋Θ͕ͤͰ͖ΔΑ͏ʹͳΔ • ܭըʹΑͬͯɺ͕ࣗͲ͜ʹ͍ͯɺຊདྷͲ͜ʹ͍ͳ͍ͱ͍͚ ͳ͍͔ΛҙࣝͰ͖ΔΑ͏ʹͳΔ
ࣄָ͍͠ʁ • Γ͍ͨͱࢥ͍ͬͯͨ͜ͱΛฏனؒʹͰ͖ΔΑ͏ʹͳΔͷͰɺ ؤுΓ͗͢Δ • λεΫΛҰਓͰᘳʹ͜ͳ͢ͱ͍͏ҙࣝͰΞϥʔτ͕͋͛ΒΕ ๊ͣ͑ࠐΉ • ࢦఠ͞ΕΔ͜ͱ͕ຯ
ଉൈ͖ͱܹ • దͳλΠϛϯάͰΛ͔͚ͯɺաूதΛආ͚Δ • Rails ։ൃํ๏ͳͲͷCͷΑ͏ͳΛҙࣝతʹ͢Δ • OSS ͷίϯτϦϏϡʔγϣϯνϟϯεΛڭ͑Δ •
ϓϩδΣΫτͱؔͷͳ͍ίʔυΛॻ͍ͯΒ͏
࠷ۙߦͬͨड͚ೖΕ
۩ମతʹͲ͏͍͏͜ͱΛ͔ͬͨ(1) • ࡞ۀΛᝦͰλεΫղͯ͠Β͍ɺݟੵΓΛ͠ɺΧϨϯμʔ ʹϚοϐϯάͯ͠ɺຖ࣮Λ֬ೝ͠ɺݟੵΓɺܭըͷ֬ೝ Λ͢Δ • ௨Γ͕͢ΓͷϝϯόʔʹΞδϟΠϧ TDD ͳͲͷӬͷΧϧ νϟʔͷՁʹͳ͍ͬͯΔ͜ͱͷࡶஊΛͯ͠Β͏
۩ମతʹͲ͏͍͏͜ͱΛ͔ͬͨ(2) • Γͳͦ͏ͳ͕ࣝΘ͔͖ͬͯͨͱ͜ΖͰɺීஈͷ࡞ۀͱผ ͷ՝(ࠓճ shell ࡞Γ)Λ༩͑Δ • ҧ͏ϓϩδΣΫτʹߦ͘લʹ;Γ͔͑ΓΛͯ͠ɺݱঢ়ͷ֬ೝͱ ࣍ͷظΛ͑Δ
ϓϩδΣΫτ֎ͷ׆ಈ
WebγεςϜ։ൃ͍͠ • ૿͑ଓ͚Δकඋൣғ • มΘΓଓ͚ΔτϨϯυ • ҠΓมΘΔࣗͷڵຯ
ࣗͷࣄʹର͢Δෆ҆ • ࣗͷಘҙྖҬͰղܾ͍ͯ͠Δ͚ͩͰɺຊʹͦΕ͕ྑ͍ํ๏ ͩͬͨͷ͔ • Rails + ݟͷͳ͍ͷϕετϓϥΫςΟε૬ͷ͜ͱ͕ਖ਼ ͍͔͠ݕূͰ͖ͳ͍
RailsʹಛԽͨ͠डୗձࣾͷδϨϯϚ • ઐՈΛޏ͑ΔΘ͚Ͱͳ͍ • ϓϩδΣΫτʹϩοΫΠϯ͞ΕΔͱ৽͍͜͠ͱΛܦݧͰ͖ΔՄ ೳੑ͕Լ͕Δ • Կͷٕज़ͷϓϩδΣΫτʹ͋ͨΔͷ͔༧ଌ͕ͨͯΕͳ͍
ԿނRailsΛࣙΊͳ͍ͷ͔(ݸਓͷݟղ) • ͓٬༷ͷΛզʑ͕ૉૣ͘ղܾ͢Δಓ۩ͱͯ͠ fit ͔ͨ͠Β • RubyΛબΜͰ͘ΕΔ͓٬༷ͱ૬ੑ͕Α͍ • RubyίϛϡχςΟ͕͖
ࠓޙRubyͰࣄΛ͍ͯͨ͘͠Ίʹ ΑΓ͏·͘ͳ͍͚ͬͯΔΑ͏ʹ
ͦ͜Ͱ࢝ΊͨऔΓΈ • ۀ࣌ؒͷ 10% Λҧ͏࡞ۀʹׂΓͯΔΈ͕͋Δ • ϓϩδΣΫτ֎ͷϝϯόʔͰνʔϜΛΉ • ࣗͷڵຯ͕͋Δٕज़ཁૉΛ༻͍ͯԿ͔Λ࡞Δ
͜ͷऔΓΈͷࢥ • Ұਓ͕શ෦͍ͬͯΔͱ͍͏ͷ͍͠ͷͰɺ୭͔͕Կ͔Λͬ ͍ͯΔͱ͍͏ঢ়گΛ࡞Δ • ϓϩδΣΫτͰͰ͖ͳ͍͜ͱΛΔ͜ͱͰʑͷܹΛ૿͢ • ීஈҙࣝ͠ͳ͍ͱࢼͤͳ͍͜ͱΛࢼͯ͠ܦݧͱͯ͑͠ΒΕ ΔΑ͏ʹ͢Δ
1 ଓ͚ͯΘ͔ͬͨ͜ͱ • ࠷ॳීஈͷ։ൃʹ͍͚ۙͲख͕·ΘΒͳ͍͜ͱΛҙ͕ࣝͨ͠ɺ ڵຯ͕ͦ͜·ͰͷͷΛܧଓ͢Δͷ͍͠ • औΓΈͷΰʔϧΛେ͖͗ͨ͘͢͠ • ܖͱ͕ͯ࣌ؒ֬͠อ͞Ε͍ͯΔͱ͍͑ɺϓϩδΣΫτঢ়گ ʹΑ͕ͬͯ࣌ؒ֬อ͞Εͳ͍
1ଓ͚ͨ݁ՌΛলͯ͠ • ՌΛٻΊͳ͍ • ษڧͰऴΘΒͳ͍Α͏ʹ͢Δ • ڵຯͱۀͷڑΛҙࣝ͢Δ
2ͷݱঢ় • 2 ਓνʔϜ͕ 2 ͭͱɺ 1 ਓνʔϜ͕ 1 ͭ
• ͍ͬͯΔ༰ɺΠϯϑϥɺϑϩϯτΤϯυɺαʔόϨεͳ Ͳ༷ʑ
·ͱΊ
ࣗͷࠜఈʹ͋Δ͜ͱ • ͪΌΜͱऴΘΒͤͭͭɺ͍͔ʹָ͕ࣗ͠ΊΔཁૉΛͭ͘Δ͔ • ࣗΛԿ͔͠ΒΞοϓσʔτ͍͖͔͚ͯͬ͘͠Λ࡞Δ
ͪΌΜͱऴΘΒͤͭͭɺָ͠ΊΔΑ͏ʹ • ݱ࣮Λݟͳ͕ΒऴΘΒͤΔ͜ͱ͕ɺΘͨ͠ͷࣄ • ࣄͱ͍͑ɺָ͘͠ͳ͍͜ͱ͋·ΓΓͨ͘ͳ͍ • ͜ΕΛཱ྆͢ΔͨΊʹɺࣗͷͰ͖Δ͜ͱΛ૿͍ͯ͘͠ඞཁ ͕͋Δ
ΞοϓσʔτΛ͢Δ͖͔͚ͬΛҙࣝ͢Δ • ಉ͡ΓํΛ͍ͯ͠Δ͜ͱɺΑ͍͜ͱ͔ͩΒͳͷ͔ɺଦੑͳ ͷ͔Λߟ͑Δ • ࠓΑΓΑ͍Γํ͕͋Δ͔ɺҧ͏͜ͱΛͬͯΈͳ͍ͱΘ͔ Βͳ͍
େࣄͳ͜ͱRubyɾRailsίϛϡχςΟ͔ ΒֶΜͩ • RubyRailsͷ·ΘΓʹ͍Δਓ͔ͨͪΒɺ͍ΖΜͳܹΛ͏͚ղ ऍͯ͠ɺࣗͷΓํΛࡧ͍ͯ͠Δ • RubyɾRailsίϛϡχςΟͰ͏͚ͨ͜ͱΛฦ͍͚ͯ͠ΔΑ͏ʹࣗ ͳ͍͖͍ͬͯͨ
࠷ޙʹ
OedoRubyKaigi02 • 2012/02 ʹߦΘΕͨ Asakusa.rb ͷ Meetup • جௐߨԋୡਓ Dave
Thomas • ςʔϚϥϕϧʹ͍ͭͯ
https://magazine.rubyist.net/ /articles/0039/ 0039-MetPragdaveAtAsakusarb.html
Ruby-ಓ(by Dave Thomas) • OOP ͚͕ͩ།Ұͷํ๏͡Όͳ͍ • खଓ͖ܕ͚͕ͩϓϩάϥϜΛॻͨͬͨ͘Ұͭͷํ๏Ͱͳ͍ • ”Α͍”ίʔυ͚͕ͩίʔυͳΘ͚͡Όͳ͍
• Ruby͕࠷্ͷϓϩάϥϛϯάݴޠͬͯΘ͚͡Όͳ͍ • ͦͦ࠷্ͷϓϩάϥϛϯάݴޠͳΜͯͳ͍
Α͍ߦಈΛ͠Α͏ by Dave Thomas Έͳ͞Μɺ࿅श͍ͯ͠·͔͢ʁɹࣗ৴खΛಈ͔ͯ͠࿅श͢Δ͜ ͱ͔Βੜ·Ε·͢ɻ͔ࣝΒੜ·Ε·ͤΜɻ͍ͭͲ͏ͬͯ࿅श ͨ͠Β͍͍ͩΖ͏ͱߟ͑·͠ΐ͏ɻͦΜͳΘ͚ͰɺΤΩεύʔτͱ ݺΕΔਓϕετϓϥΫςΟεɺϥϕϧΛ৴͢Δ͜ͱΊ·͠ΐ ͏ɻϥϕϧ͋ͳͨΛࢥߟఀࢭͤ͞·͢ɻϥϕϧ͋ͳͨΛʹΊ ·͢ɻϥϕϧ͕͋ͳͨΛڱΊΔ͜ͱʹͳΓ·͢ɻࣗࣗʹϥϕϧΛ
షΔͷΊ·͠ΐ͏ɻ͋ͳ͕ͨԿऀ͔͋ͳ͕ͨԿΛ͢Δ͔Ͱܾ ·Γ·͢ɻ໊ࢺͰͳ͘ಈࢺͰ͍·͠ΐ͏ɻΑ͍ߦಈΛ͠·͠ΐ͏ʂ