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
オブジェクト指向について
Search
Takehiro Yamaguchi
January 01, 2019
Technology
0
1.4k
オブジェクト指向について
Takehiro Yamaguchi
January 01, 2019
Tweet
Share
More Decks by Takehiro Yamaguchi
See All by Takehiro Yamaguchi
tech boost_deeplearning
takexhero
0
110
【 tech boost】AI/DSエキスパート(ニューラルネットワーク)
takexhero
0
120
開発業務について
takexhero
0
600
セキュリティについて
takexhero
0
450
問題解決力について
takexhero
0
590
データベースについて
takexhero
0
1.3k
ネットワークについて
takexhero
0
620
Other Decks in Technology
See All in Technology
Amazon GuardDuty での脅威検出:脅威検出の実例から学ぶ
kintotechdev
0
120
夏休みWebアプリパフォーマンス相談室/web-app-performance-on-radio
hachi_eiji
0
250
Amazon S3 Vectorsは大規模ベクトル検索を低コスト化するサーバーレスなベクトルデータベースだ #jawsugsaga / S3 Vectors As A Serverless Vector Database
quiver
2
880
AIエージェントを現場で使う / 2025.08.07 著者陣に聞く!現場で活用するためのAIエージェント実践入門(Findyランチセッション)
smiyawaki0820
7
1.2k
オブザーバビリティ文化を組織に浸透させるには / install observability culture
mackerelio
0
110
生成AIによるソフトウェア開発の収束地点 - Hack Fes 2025
vaaaaanquish
34
15k
Foundation Model × VisionKit で実現するローカル OCR
sansantech
PRO
1
400
AIは変更差分からユニットテスト_結合テスト_システムテストでテストすべきことが出せるのか?
mineo_matsuya
1
450
【新卒研修資料】数理最適化 / Mathematical Optimization
brainpadpr
28
13k
【OptimizationNight】数理最適化のラストワンマイルとしてのUIUX
brainpadpr
2
510
20250807_Kiroと私の反省会
riz3f7
0
240
Backlog AI アシスタントが切り開く未来
vvatanabe
1
150
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.3k
Unsuck your backbone
ammeep
671
58k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
What's in a price? How to price your products and services
michaelherold
246
12k
A better future with KSS
kneath
239
17k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Gamification - CAS2011
davidbonilla
81
5.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Transcript
άϧʔϓϨοεϯ جૅࣝΛʹ͚ͭΑ͏ʂ
ࠤ༟࢙ʢ͞ͷͻΖ͠ʣ 31ࡀ ΤϯδχΞ Rails, Swift, Java, Python, PHP, JaaScript, σβΠϯ,ϚʔέςΟ
ϯά ϏδωεܥͷޮԽɺEC ϓϩάϥϛϯάߨࢣྺ3 ྦྷܭ500ਓҎ্ͷࢦಋ اۀݚम झຯ ಡॻ ಄͔ͭ͏͜ͱ
άϧʔϓϨοεϯͷత త جૅࣝͷशಘ ςʔϚ ϓϩάϥϛϯά։ൃۀͰඞཁͳITͷجૅࣝ ΦϒδΣΫτࢦɺωοτϫʔΫɺWebɺσʔλϕʔεɺ։ൃۀɺղܾ ରऀ ϓϩάϥϛϯάॳֶऀʗجૅΛݻΊ͍ͨϓϩάϥϛϯάܦݧऀ ΰʔϧ ࣗͰϓϩάϥϛϯά͕Ͱ͖ΔΑ͏ʹͳΔ
࣍ ࣗݾհλΠϜ5 ΦϒδΣΫτࢦͱ ΦϒδΣΫτࢦΛֶͿϝϦοτ ΦϒδΣΫτࢦ͕ੜ·ΕͨܦҢ ΦϒδΣΫτࢦͰେࣄͳେ͖ͳ̏ͭͷࢹ ϫʔΫ ΦϒδΣΫτͱϝοηʔδϯά ϫʔΫ
ྡಉ࢜Ͱࣗݾհ 5 1. ໊લ 2. ԿΛษڧ͍ͯ͠Δ͔ʁ 3. ࠷͍͍ۙ͋ͬͨ͜ͱ 4. ϓϩάϥϛϯάֶशͰ٧·ͬͨͱ͜Ζ
ୈ̍ճɹΦϒδΣΫτࢦ ݱࡏओྲྀͷϓϩάϥϛϯάݴޠ ʢRubyɺPHPɺJavaɺPythonͳͲʣ ͰΘΕ͍ͯΔ ॳֶऀʹཱ͔ͪͩΔେ͖ͳน OBJECT ORIENTED PROGRAMMING
ࠓճͷϨοεϯʹ͍ͭͯ ςʔϚ ΦϒδΣΫτࢦ త ॳֶऀ͕Ұ൪ཧղ͕͍ͨ͠ΦϒδΣΫτࢦΛཧղ͘͢͢͠ΔͨΊ ରऀ ϓϩάϥϛϯάॳֶऀʗجૅΛݻΊ͍ͨϓϩάϥϛϯάܦݧऀ ΰʔϧ ΦϒδΣΫτࢦͷ֓ཁɺجຊతͳߟ͑ํΛ͍ͬͯΔঢ়ଶ
ΦϒδΣΫτࢦͱʁ
ʲΦϒδΣΫτࢦͷ֓೦ʳ ̏D ≒̎D ਓؒͷੈք3࣍ݩɺίϯϐϡʔλͷੈք2࣍ݩɻ ίϯϐϡʔλʔਓ͕ؒ͏ͷͰɺਓؒͷΘΓʹࣄΛͯ͘͠ΕΔɻ ٯʹίϯϐϡʔλʔ͕͍ͬͯΔ͜ͱͯ͢ݱ࣮ੈքͷԿ͔ʹஔ͖͑ΒΕΔɻ w w
ʲΦϒδΣΫτࢦͷ֓೦ʳ ̏D ≒̎D ਓؒͷੈք3࣍ݩɺίϯϐϡʔλͷੈք2࣍ݩɻ ίϯϐϡʔλʔਓ͕ؒ͏ͷͰɺਓؒͷΘΓʹࣄΛͯ͘͠ΕΔɻ ٯʹίϯϐϡʔλʔ͕͍ͬͯΔ͜ͱͯ͢ݱ࣮ੈքͷԿ͔ʹஔ͖͑ΒΕΔɻ w w ମɺରɺత ʮԿ͔ʯͱʁ
ΦϒδΣΫτ
ʲΦϒδΣΫτࢦͷతʳ ։ൃΛޮԽ͢ΔͨΊ ϓϩάϥϜͷઃܭ Ͳ͜ʹԿͷϓϩάϥϜΛॻ͍ͨΒޮ͕͍͍͔ ։ൃΛࠔʹ͢Δओͳ̏ͭͷཁૉ ༷ͷมߋ ίʔυͷཧ όάͷमਖ਼
ΦϒδΣΫτࢦΛֶͿϝϦοτ
։ൃεϐʔυΛ্͛Δ͜ͱ͕Ͱ͖Δ ϓϩάϥϜͷઃܭ͕Ͱ͖ΔΑ͏ʹͳΔ ଞਓ͕ॻ͍ͨίʔυ͕ಡΊΔΑ͏ʹͳΔ
ͳΜͰॳֶऀʹͱͬͯ ΦϒδΣΫτࢦ͍͠ͷ͔ʁ
֓೦Λද͍ͯ͠ΔͷͰந͕ߴ͍ ։ൃۀͷܦݧ͕ͳ͍͔Β ଞਓͷίʔυΛಡΜͩ͜ͱ͕ͳ͍͔Β
ΦϒδΣΫτࢦ͕ੜ·ΕͨܦҢ
։ൃதʹൃੜͨ͠ʑͷ όά͕ଟൃ Ͳ͜ʹԿ͕ॻ͍ͯ͋Δ͔Θ͔Βͳ͍ ༷มߋʹେ͖ͳ͕͔͔࣌ؒͬͯ͠·͏ େنʹͳΕͳΔ΄Ͳ։ൃ͕ࠔʹͳ͍ͬͯ͘
։ൃΛޮԽ͢ΔΞΠσΟΞ͕ඞཁʂ ༷มߋʹڧ͘ ίʔυ͕ཧ͘͢͠ όά͕ൃੜͮ͠Β͍ɺ·ͨൃݟ͍͢͠ ࠜຊతʹΈͰղܾ͕ඞཁʂ
ʑͷࢼߦࡨޡͷ͏͑Ͱੜ·Εͨͷ͕ ΦϒδΣΫτࢦ աఔͰࢼ͞Εͨϓϩάϥϛϯάख๏ ɾߏԽϓϩάϥϛϯά ɾϞδϡϥϓϩάϥϛϯά
ΦϒδΣΫτࢦͰେࣄͳ3ͭͷࢦඪ
େ͖ͳ̏ͭͷࢦඪ ಠཱੑ ࠶ར༻ੑ ֦ுੑ ͜ͷ̏ͭͷੑ࣭͕ߴ͍΄Ͳྑ͍ϓϩάϥϜʹͳΔʂ
ಠཱੑ ґଘ͕ڧ͍ϓϩάϥϜมߋ͕͍͠
B H D C A F E G ґଘੑ͕ߴ͍ϓϩάϥϜ AʙH̍ͭͷॲཧ
B H D C A F E G ґଘੑ͕͍ϓϩάϥϜ
B H D C A F E G ґଘੑ͕ͳ͍ϓϩάϥϜ
ϓϩάϥϛϯάݴޠͰ ɹɹɹɹɹɹɹɹΑ͘ΘΕ͍ͯΔΈ Ϋϥε Πϯελϯε Ϟδϡʔϧ ϝιου είʔϓʢมؔͷࢀরൣғʣ ܧঝ ϙϦϞʔϑΟζϜ
·ͣۙͰҰ൪Α͘ݟΔ ʮΫϥεʯ͔ΒΈ͍͖ͯ·͠ΐ͏ʙʂ
ͦͦΫϥεͬͯԿʁ ԿͷͨΊʹ͋Δͷʁ ଘࡏҙٛʁ Ͳ͏͍͍ͬͯ͑ͷʁ Ϋϥεͬͯฉ͍ͯҰ൪࠷ॳʹࢥ͍ු͔Ϳͷʁ
ߟ͑ํʮֶߍͷΫϥεʯͱಉ͡ Ϋϥεʢclassʣʮڞ௨ͷੑ࣭Λ༗͢Δ෦ྨछྨʯͱ͍͏ҙຯͷ ݴ༿
ʲϫʔΫʳ̑ ΈΜͳͰߟ͑ͯΈΑ͏ খதߴͷֶߍͳͥΫϥεʹ͔Ε͍ͯΔͷ͔ʁ Ϋϥε͚͢Δ͜ͱͰ୭ʹͲΜͳϝϦοτ͕͋Γ·͔͢ʁ
ϝϦοτ ଞͷΫϥεͷӨڹΛड͚ͳ͍ ಉ͡බࣈͷੜె͕͍ͯཧָ͕ ੜెͷมԽʹ͙͢ؾ͚ͮΔ
ѱ͍ϓϩάϥϜͷӨڹൣғ͕ڱ·ΔͷͰɺඃΛ࠷খݶʹ͑ΒΕ Δ Ͳ͜ʹԿͷίʔυ͕ॻ͍ͯ͋Δ͔۠ผ͘͢͠Ѳ͕͍͢͠ ίʔυ͕͍ͷͰɺϛεѱ͍෦Λݟ͚͍ͭ͢ ϓϩάϥϜʹ͓͚ΔΫϥεͷϝϦοτ
Ϋϥεͷେ͖ͳ̏ͭͷ͍ํ ̍ɺӅͯ͠ ̎ɺ·ͱΊͯ ̏ɺͨ͘͞Μ࡞Δ
ʲϫʔΫʳߟ͑ͯΈΑ͏ʂ10 Ӆͯ͠ 1. ؔͳ͍ਓʹใΛެ։ʢڞ༗ʣ͢ΔͱͲ͏ͳΔ͔ʁ ·ͱΊͯ 2. ཧܥͱจܥʢ·ֶͨ͝ͱʹʣΛ·ͱΊΔͱͲ͏͍͏ϝϦοτ͕͋Δ͔ʁ ͨ͘͞Μ࡞Δ 3. ܗςϯϓϨʔτ͕͋ΕԿ͕خ͍͔͠ʁ
ΫϥεʮઃܭਤʯͷׂՌͨ͢ ̍ͭͷΫϥε̍ͭͷ֓೦Λද͢ ̍Ϋϥε̍ΦϒδΣΫτʢ̍֓೦ʣ͕جຊ ͲΜͳσʔλΛ͔ͭɺͲΜͳػೳʢৼΔ͍ʣΛ͔ͭΛఆٛ͢ Δ
ઃܭਤͱ͍͏ͱ
ઃܭਤ͍ͨΔͱ͜Ζʹ͋Δ ݐஙઃܭɺݐஙߏઃܭɺݐஙઃඋઃܭɺఉԂઃܭɺܠ؍ઃܭɺ ࢢઃܭઃܭɺઃܭɺఔઃܭɺ৴པੑઃܭ ιϑτΣΞઃܭɺԻڹઃܭɺଛইڐ༰ઃܭɺ σʔλϕʔεઃܭɺϑΥʔϧττϨϥϯτઃܭɺઃܭɺઃܭɺ ճ࿏ઃܭɺूੵճ࿏ઃܭɺਓੜઃܭɺҩༀઃܭɺ ϑΥʔϧττϨϥϯτઃܭɺޫֶઃܭɾϨϯζઃܭɺ࣭ઃܭɺ ίϯΫϦʔτࠎࡐͰͷ߹ઃܭɺΫϩοΫಉظઃܭɺ Ϣʔβʔத৺ઃܭɺϢʔβΠϯλϑΣʔεઃܭɺଛইڐ༰ઃܭɺ ΫϦʔϯϧʔϜઃܭɺ৭࠼ઃܭɺਤॻઃܭɺίϯϐϡʔλࢧԉઃܭɺ
ܖʹΑΔઃܭɺγεςϜϨϕϧઃܭɺΦʔϓϯઃܭ ͳͲ
ʲϫʔΫ 5ʳ ઃܭਤͷϝϦοτԿͰ͔͢ʁ ઃܭਤͬͯͳΜͰॻ͘ͷʁ ઃܭਤͬͯͳΜͷͨΊʹ͋Δʁ
ઃܭਤͷϝϦοτ ࣄલʹܭըΛཱͯΒΕΔ Կ͕ඞཁ͔͕ݟ͑Δ ࠶ݱ͕༰қ յΕͨΓͳ͘ͳͬͨΓͯ͠·ͨಉ͡ͷ͕࡞ΕΔ ಉ͡ͷΛେྔʹੜ࢈͢Δ͜ͱ͕Մೳ
ʲϫʔΫʳ10 ֶߍͷߍʹͳͬͨؾͰ෦׆ಈͷઃܭਤ ॻ͍ͯΈΑ͏ʂ ώϯτ: ɾ෦׆ಈͷͨΊʹԿ͕ඞཁʁ ɾݐ͔ͯͨΓͷֶߍ
ٿ෦ όεέ෦ ςχε෦ αοΧʔ෦ ͲΜͳ෦׆ Կ͕ඞཁʁ ϧʔϧ ෦һ ސ ಓ۩
ॴ ਧָ෦ ίʔϥε෦ ಓ෦ ؼ෦
Ϟϊ ɹɹόοτɿ20ຊ ɹɹϔϧϝοτɿ10ਓ ɹɹϘʔϧɿ200ٿ ɹɹάϩʔϒɿ10ਓ ɹɹωοτɿ5ݸ ɹɹϕʔεɿ4ͭ ɹɹϢχϑΥʔϜɿ10ਓ ɹ9ਓͷ෦һ+1ਓʢϚωʔδϟʔʣetc… ྫɿٿ෦ͷઃܭਤ
ৼΔ͍ ɹ෦һɿΔɺଧͭɺัΔɺΛ͔͚Δɺٳܜ͢Δ ɹϘʔϧɿͶΔɺඈͿ ɹάϩʔϒɿ։͘ɺด͡Δ
ٿ෦ ׆ಈ࣌ؒ์՝ޙ͔Β·Ͱͱ͢Δ ׆ಈޙάϥϯυඋΛߦ͏͜ͱ Ӎఱ࣌ߍͰجૅ࿅शΛߦ͏͜ͱ etc… ྫɿඞཁͳϧʔϧ ਧָ෦ ׆ಈ࣌ؒ์՝ޙ16͔࣌Β19࣌·Ͱ ׆ಈޙָثͷআɺཧΛߦ͏͜ͱ ߍࣷͰ࿅श͢Δ͜ͱ
etc…
࠶ར༻ੑͱ ଟछଟ༷ͳΞϓϦέʔγϣϯͷߏஙʹ͏͜ͱ͕Ͱ͖ΔιϑτΣΞཁૉͷೳྗ
ٿ෦ όεέ෦ ςχε෦ αοΧʔ෦ ڞ௨෦Λൈ͖ग़͢ => நԽ ਧָ෦ ίʔϥε෦ ಓ෦
จԽ෦ ϧʔϧ ӡಈ෦
ٿ෦ ڞ௨ͷϧʔϧ ӡಈ෦ͷϧʔϧ ׆ಈޙݿʹಓ۩Λ͠·͏͜ͱ ׆ಈޙͬͨॴΛඋ͢Δ͜ͱ ڞ༗͢Δ͜ͱͰมߋՃ͕؆୯ʹͳΔ όεέ෦ ςχε෦ αοΧʔ෦ ٿ෦
ٿ෦ όεέ෦ ڞ௨෦ ӡಈ෦ͷϧʔϧ ׆ಈޙݿʹಓ۩Λ͠·͏͜ͱ ׆ಈޙͬͨॴΛඋ͢Δ͜ͱ ςχε෦ αοΧʔ෦ άϥϯυͷϧʔϧ ӡಈͷݿΛ͏͜ͱ
ମҭؗͷϧʔϧ ମҭؗݿΛ͏͜ͱ
֦ுੑͱ ༷ͷมߋͷ͓͚ΔιϑτΣΞͷద༻ͷ͢͠͞
ٿ෦ ϧʔϧͷՃ ӡಈ෦ͷϧʔϧ ׆ಈޙݿʹಓ۩Λ͠·͏͜ͱ ׆ಈޙͬͨॴΛඋ͢Δ͜ͱ Ӎఱ࣌ߍͰجૅ࿅श͢Δ όεέ෦ମҭؗͰ࿅श͢Δ͔Βෆదͳϧʔϧ όεέ෦ ςχε෦ αοΧʔ෦
ٿ෦ όεέ෦ ϧʔϧͷՃ ӡಈ෦ͷϧʔϧ ׆ಈޙݿʹಓ۩Λ͠·͏͜ͱ ׆ಈޙͬͨॴΛඋ͢Δ͜ͱ ςχε෦ αοΧʔ෦ άϥϯυͷϧʔϧ ӡಈͷݿΛ͏͜ͱ
Ӎఱ࣌༻ېࢭ ମҭؗͷϧʔϧ ମҭؗݿΛ͏͜ͱ
ΦϒδΣΫτͱϝοηʔδϯά ΦϒδΣΫτࢦϓϩάϥϛϯάͷجຊߏ
ʮԿ͔ʢϨγʔόʔʣʯʹ ʮԿ͔ʢϝοηʔδʣʯΛ͓ئ͍͢Δ ΦϒδΣΫτʹϝοηʔδΛૹ৴͢Δ @teacher = Teacher.teach(student: 10) ड৴ଆΛϨγʔόʔ ૹ৴ଆΛϝοηʔδ
ཧ ਓؒͷࣄΛίϯϐϡʔλʔʹஔ͖͍͑ͯΔ ྫɿECγεςϜ ܾࡁཧ ૹཧ จཧ Ϋϥε ܾࡁΫϥε ૹΫϥε จΫϥε
σʔλ ໊ Ձ֨ αΠζ छྨ ࡏݿ ৼΔ͍ ɾใΛڭ͑Δ ɾࡏݿ͕͋Δ͔Ͳ͏ ͔͑Δ
ɾΛ୳͢ ɾΛՃ͢Δ ɾΛআ͢Δ ཧ͢Δਓ Ϋϥε ΦϒδΣΫτʹม͑Δ σʔλͱৼΔ͍Λͭ σʔλ ໊ Ձ֨ αΠζ छྨ ࡏݿ ৼΔ͍ ɾใΛڭ͑Δ ɾࡏݿ͕͋Δ͔Ͳ͏ ͔͑Δ ɾΛ୳͢ ɾΛՃ͢Δ ɾΛআ͢Δ
ཧ pink৭ͷ͋Γ·͔͢ʁ ݿ σʔλϕʔε ͋Δorͳ͍ ୳͢ ͋Δorͳ͍ ݕࡧ pink৭ͷΛ୳͍ͯͩ͘͠͞ ฦΓɺΓ
Ϋϥε
ཧ σʔλϕʔε ͋Δorͳ͍ ݕࡧ pink৭ͷΛ୳͍ͯͩ͘͠͞ ฦΓɺΓ Ϋϥε Product.find(color: pink) Ϋϥε
ΦϒδΣΫτ ୳͍ͯͩ͘͠͞ ϝοηʔδ ϐϯΫ৭ Ҿ ίϯτϩʔϥʔ
ཧ 3. ”ηΧϯυόοά” ͱฦ͢Δ 2. ใΛݟΔ 1. ͜ͷͷ໊শͳΜͰ͔͢ʁ @product =
Product.find(color: pink) @product.name class Product def name “ηΧϯυόοά” end end ΦϒδΣΫτ ໊લ ϝοηʔδ Πϯελϯεʢ࣮ʣ
ΫϥεͱΠϯελϯεͷؔ ECαΠτཧਓ ച্ཧ ཧ จཧ AdminUserΫϥε Πϯελϯε ച্ཧ ཧ จཧ
͋͘·Ͱઃܭਤ ݱ࣮ੈքͰ࠾༻͢Δ ͱߟ͑ͯOK ΠϯελϯεԽ ITԽ class AdminUser end def ച্ཧ end def ཧ end def จཧ end
ΫϥεͱΠϯελϯεͷؔ AdminUserΫϥε Πϯελϯε ΠϯελϯεԽ class AdminUser end def manage_sales end
def manage_products end def manage_orders end @admin = AdminUser.new ച্ཧΛ͍ͯͩ͘͠͞ @admin.manage_sales @admin
ʲϫʔΫʳΓ࣌ؒ ίʔυΛಡΜͰΈΑ͏ 1. ΫϥεΛௐΔ 2. ϝιουΛௐΔ 3. ࣭λΠϜ https://github.com/railstutorial/sample_app_rails_4 ͕ࣗࠓॻ͍͍ͯΔίʔυ·ͨ
ຊ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ ࠷ޙʹΞϯέʔτʹ͝ڠྗ͓ئ͍͠·͢m(_ _)m