Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
- Rでオブジェクト指向プログラミング- クラス設計入門の入門
yu_sekiya
January 21, 2023
Technology
1
670
- Rでオブジェクト指向プログラミング- クラス設計入門の入門
TokyoR#103応用セッションの資料です。
yu_sekiya
January 21, 2023
Tweet
Share
More Decks by yu_sekiya
See All by yu_sekiya
TokyoR97_BeginnersSession1
kotatyamtema
0
59
TokyoR88_BeginnersSession1
kotatyamtema
0
220
初心者セッション1-Rスタートアップ-
kotatyamtema
0
38
TokyoR77_BeginnersSession2
kotatyamtema
0
280
TokyoR76_BeginnersSession1.pdf
kotatyamtema
0
370
fukuokaR_BeginnersSession1
kotatyamtema
0
390
BeginnersSession1_72
kotatyamtema
0
230
Other Decks in Technology
See All in Technology
本社オフィスを移転し、 オフィスファシリティ・コーポレートIT を刷新した話
rotomx
3
1.2k
400種類のWeb APIをサポートしているデータパイプラインツールにおけるWeb APIとの共存戦略
cdataj
0
120
それでもどうしてRecoilを使うのか / Harajuku.ts Meetup Recoil
okunokentaro
11
3.4k
MoT/コネヒト/Kanmu が語るプロダクト開発xデータ分析 - 分析から機械学習システムの開発まで一人で複数ロールを担う大変さ
masatakashiwagi
2
560
チケットNFTの仕組み
sbtechnight
0
330
Pentesting Password Reset Functionality
anugrahsr
0
180
ステート管理を超えるRecoil運用の考え方
uhyo
7
5.3k
インフラ技術基礎勉強会 開催概要
toru_kubota
0
130
経営統合をきっかけに会社をエンジニアリングした話 / btconjp-2023
carta_engineering
0
100
LINE iOSエンジニアの日々 / LINE iOS Engineer Days
line_developers
PRO
1
130
2年で10→70人へ! スタートアップの 情報セキュリティ課題と施策
miekobayashi
1
200
【NGK2023S】 ノードエディタ形式の画像処理ツール「Image-Processing-Node-Editor」
kazuhitotakahashi
0
210
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
52
4.3k
Designing for humans not robots
tammielis
245
24k
Happy Clients
brianwarren
90
5.8k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
239
19k
Debugging Ruby Performance
tmm1
67
11k
How GitHub Uses GitHub to Build GitHub
holman
465
280k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.2k
Ruby is Unlike a Banana
tanoku
93
9.5k
Making the Leap to Tech Lead
cromwellryan
116
7.6k
The Cult of Friendly URLs
andyhume
68
5.1k
Designing for Performance
lara
600
65k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
Transcript
Ԡ༻ηογϣϯ 3ͰΦϒδΣΫτࢦϓϩάϥϛϯά Ϋϥεઃܭೖͷೖ 5PLZP3 !LPUBUZBNUFNB
ࣗݾհ 5XJUUFS*%!LPUBUZBNUFNB େֶͰͷઐߦಈੜଶֶ ཱҊdั֫d࣮ݧdੳ·ͰϫϯΦϖ ࠓ·Ͱ٬ઌ΅ͬͪੳˠΞύϨϧ௨ൢձࣾ ݱࡏҩྍݕࠪձࣾ 3ྺա͔͗ͨʁӬԕͷॳ৺ऀ ۙگͳΜ͔ͪΐͬͱ͍Ζ͍ΖมԽ͕͠ΜͲ͍ ɹɹࠓ͜ͷࠒɻ ࣗ༝ͱ͕࣌ؒཉ͍͠ɺ͋ͱࢿۚҰԯԁ͘Β͍
࠷ۙͷ͓ࣄ ͳ։ൃҊ݅ ϑϩʔਤઃܭॻͳΜͳ͍·· ίʔυ͚ͩདྷΔͱ͔ͳΜͳͷ͞ ౖ ͳΜͰ1ZUIPOͰ։ൃͯ͠Δͷʹ Ϋϥεઃܭͯ͠ͳ͍ͷ͞ʁ
ͦͦΫϥεͬͯ ͳΜͩΖ͏ʁ
త ΦϒδΣΫτࢦϓϩάϥϛϯάͱ ʙΫϥεͱͳΜͳͷ͔ʙ 3ͰΦϒδΣΫτࢦϓϩάϥϛϯά Ϋϥε࡞
࣍ ΦϒδΣΫτࢦϓϩάϥϛϯάͱ ΫϥεͱʙϓϩάϥϜͷઃܭਤͷ࠷খ୯Ґ ΫϥεΛ͏͝རӹ 3ͷΫϥεʙ3ೖͷೖ
ΦϒδΣΫτࢦϓϩάϥϛϯάͱ ΦϒδΣΫτࢦϓϩάϥϛϯάͱ ʮ͋ΔׂΛ࣋ͬͨϞϊʯ͝ͱʹΫϥεʢϓϩάϥϜશମͷ ઃܭਤʣΛׂ͠ɺϞϊͱϞϊͱͷؔੑΛఆ͍ٛͯ͘͜͠ ͱͰγεςϜΛ࡞Γ্͛Α͏ͱ͢ΔγεςϜߏͷߟ͑ํ IUUQTSPCPEPOFDPNCMPH
[email protected]
@PSJFOUFE දతͳݴޠɿQZUIPOɺKBWBTDSJQUɺ$ ɺ$
ΫϥεͱʙϓϩάϥϜͷઃܭਤͷ࠷খ୯Ґ Ϋϥεͱɿσʔλͱϝιουͷू߹ ʙΦϒδΣΫτͷઃܭਤʹ͋ͨΔͷ ཧղͷͨΊʹඞཁͳ༻ޠͱఆٛ ΠϯελϯεɿΫϥεΛݩʹ࡞ΒΕͨͷɺ࣮ମʹ͢Δ ͜ͱΛΠϯελϯεԽͱදݱɺΦϒδΣΫτͱ΄΅ಉٛ ϝιουɿΫϥεʹఆٛ͞Εͨॲཧಈ࡞ͷ͜ͱɺ3Ͱ ؔͱಉٛ
ϓϩύςΟɿΠϯελϯεʹ͍ͭͯͷใɺଐੑɺσʔλ ؚ·ΕΔ ΦϒδΣΫτɿʮରʯʮϞϊʯͱ͍͏ҙຯͰɺσʔλ ʢϓϩύςΟʣͱϝιουʢΫϥεʹఆٛ͞Εͨॲཧʣͷ ू·ΓɺΠϯελϯεͱ΄΅ಉٛ IUUQTXFCDBNQJPNBHB[JOFBSDIJWFT
ΫϥεΛ͏͝རӹ ΫϥεΛ͏͝རӹ ڞ௨͢Δ༰ͷίʔυΛ·ͱΊΔ͜ͱ͕Ͱ͖Δ ʙػೳ͝ͱʹΫϥεΛ·ͱΊΔ͜ͱͰݟ௨͕͠ྑ͘ͳΔ ಉ͡༰ΫϥεΛ͍ճ͢͜ͱ͕Ͱ͖Δ ʙΫϥεΛܧঝ͢Δ͜ͱͰಉ͜͡ͱΛ܁Γฦ͠ॻ͔ͳͯ͘ྑ͍ɺɹ ɹػೳՃ͕؆୯ʹͳΔ
σόοάվम͕͘͢͠อकཧίετΛԼ͛Δ ʙػೳ͝ͱʹ·ͱ·͍ͬͯΔͷͰมߋՕॴ͕গͳ͍ ෳਓͰ։ൃ͢Δͱ͖ʹศར ʙΫϥεؒͰͷׯব͕গͳ͍ͷͰΫϥε͝ͱʹ͚ͯ։ൃ͕Ͱ͖Δ ظؒվम͠͏ɺن͕େ͖͍ɺෳਓͰ։ൃ͢Δ ͍ͣΕ͔ͷཁૉ͕͋Δ։ൃΫϥεΛͬͨઃܭ͕ศར
3ͷΫϥεʙ3ೖͷೖ 3ͰΦϒδΣΫτࢦϓϩάϥϛϯά ʙ3ͱͱؔܕݴޠ ɹؔʹϝιου ɹΫϥεʹϝιουͱσʔλͷू·Γ 3ͰΦϒδΣΫτࢦతॻ͖ํ͕Ͱ͖Δ 3ͷΫϥε̏ͭɿࠓճ3ΛͬͯΫϥεΛ࡞ Ϋϥε ಛ 4
ຊ࣭తʹΦϒδΣΫτͷΫϥεଐੑ DMBTTBUSJCVUF จࣈྻɻ࠷ॳʹΫϥεΛఆٛͨ͠Γ ͤͣɺΦϒδΣΫτΛੜ͠ɺޙ͔ΒଐੑΛϖλϖλష͍ͬͯ͘Πϝʔδɻ݁ߏద 4 4ΑΓຊ֨తʹΦϒδΣΫτࢦɻ Ϋϥεؚ͕Ή͖σʔλͰ͋Δεϩοτ TMPU ͱͦͷܕ UZQF ͕໌ࣔతʹදݱ SFQSFTFOUBUJPO ͞ΕɺҟͳͬͨܕͷσʔλΛؚ·ͳ͍Α͏ʹνΣοΫػೳ͕ಇ͘ 3 ΑΓࣗવͳΦϒδΣΫτࢦɺ3ύοέʔδΛΠϯετʔϧͯ͠͏ QBCMJDϝϯόͱQSJWBUFϝϯό͕͋Δ ΫϥεΛ·͍ͨͰಈ࡞͢ΔܧঝʢεʔύʔΫϥεʣ͕Ͱ͖Δ
3ͷΫϥεʙ3ೖͷೖ 3Λͬͯʮྑ͍ίʔυѱ͍ίʔυͰֶͿઃܭೖʯͷ࠷ॳʹ ग़ͯ͘ΔήʔϜγεςϜͷ)1ཧΫϥεΛ࣮ͯ͠ΈΔ IUUQTHJIZPKQCPPL Ϋϥεͷ༰ɾ݅ QͷώοτϙΠϯτ )1 Λදݱ͢ΔΫϥε ܭࢉ͍ͨ͜͠ͱɿώοτϙΠϯτͷݮগɺώοτϙΠϯτͷճ෮ ೖྗɿ࠷ॳͷώοτϙΠϯτɺड͚ͨ߈ܸͷɺճ෮͞Εͨ
݅ɿͯ͢ͷ࣮ ώοτϙΠϯτ )1 ͷൣғ)1 ड͚ͨ߈ܸͷ ճ෮͞Εͨ
3ͷΫϥεʙ3ೖͷೖ )JUQPJOU3$MBTT )JUQPJOU QVCMJDMJTU JOJUJBM)1/" JOJUJBMJ[FGVODUJPO JOJUJBM)1
\ TUPQJGOPU JTOVNFSJD JOJUJBM)1 MFOHUI JOJUJBM)1 JOJUJBM)1JOJUJBM)1 TFMGJOJUJBM)1JOJUJBM)1 ^ μϝʔδΛड͚ͨͱ͖ͷܭࢉ )1EBNBHFGVODUJPO EBNBHF"NPVOU \ TUPQJGOPU JTOVNFSJD EBNBHF"NPVOU MFOHUI EBNBHF"NPVOU EBNBHF"NPVOU /FX)1TFMGJOJUJBM)1EBNBHF"NPVOU /FX)1JGFMTF /FX)1 /FX)1 DBU Γ)1 /FX)1 Ͱ͢ ^ ճ෮Λड͚ͨͱ͖ͷܭࢉ )1SFDPWFSGVODUJPO SFDPWFSZ"NPVOU \ TUPQJGOPU JTOVNFSJD SFDPWFSZ"NPVOU MFOHUI SFDPWFSZ"NPVOU SFDPWFSZ"NPVOU /FX)1TFMGJOJUJBM)1 SFDPWFSZ"NPVOU /FX)1JGFMTF /FX)1 /FX)1 DBU Γ)1 /FX)1 Ͱ͢ ^
3ͷΫϥεʙ3ೖͷೖ )JUQPJOU3$MBTT )JUQPJOU QVCMJDMJTU JOJUJBM)1/" JOJUJBMJ[FGVODUJPO JOJUJBM)1
\ TUPQJGOPU JTOVNFSJD JOJUJBM)1 MFOHUI JOJUJBM)1 JOJUJBM)1JOJUJBM)1 TFMGJOJUJBM)1JOJUJBM)1 ^ μϝʔδΛड͚ͨͱ͖ͷܭࢉ )1EBNBHFGVODUJPO EBNBHF"NPVOU \ TUPQJGOPU JTOVNFSJD EBNBHF"NPVOU MFOHUI EBNBHF"NPVOU EBNBHF"NPVOU /FX)1TFMGJOJUJBM)1EBNBHF"NPVOU /FX)1JGFMTF /FX)1 /FX)1 DBU Γ)1 /FX)1 Ͱ͢ ^ ճ෮Λड͚ͨͱ͖ͷܭࢉ )1SFDPWFSGVODUJPO SFDPWFSZ"NPVOU \ TUPQJGOPU JTOVNFSJD SFDPWFSZ"NPVOU MFOHUI SFDPWFSZ"NPVOU SFDPWFSZ"NPVOU /FX)1TFMGJOJUJBM)1 SFDPWFSZ"NPVOU /FX)1JGFMTF /FX)1 /FX)1 DBU Γ)1 /FX)1 Ͱ͢ ^ ΫϥεͷॳظԽϝιου )1EBNBHFϝιου )1SFDPWFSϝιου
3ͷΫϥεʙ3ೖͷೖ )JUQPJOU3$MBTT )JUQPJOU QVCMJDMJTU JOJUJBM)1/" JOJUJBMJ[FGVODUJPO JOJUJBM)1
\ TUPQJGOPU JTOVNFSJD JOJUJBM)1 MFOHUI JOJUJBM)1 JOJUJBM)1JOJUJBM)1 TFMGJOJUJBM)1JOJUJBM)1 ^ μϝʔδΛड͚ͨͱ͖ͷܭࢉ )1EBNBHFGVODUJPO EBNBHF"NPVOU \ TUPQJGOPU JTOVNFSJD EBNBHF"NPVOU MFOHUI EBNBHF"NPVOU EBNBHF"NPVOU /FX)1TFMGJOJUJBM)1EBNBHF"NPVOU /FX)1JGFMTF /FX)1 /FX)1 DBU Γ)1 /FX)1 Ͱ͢ ^ ճ෮Λड͚ͨͱ͖ͷܭࢉ )1SFDPWFSGVODUJPO SFDPWFSZ"NPVOU \ TUPQJGOPU JTOVNFSJD SFDPWFSZ"NPVOU MFOHUI SFDPWFSZ"NPVOU SFDPWFSZ"NPVOU /FX)1TFMGJOJUJBM)1 SFDPWFSZ"NPVOU /FX)1JGFMTF /FX)1 /FX)1 DBU Γ)1 /FX)1 Ͱ͢ ^ ΫϥεͷॳظԽ 3ͷ߹ɿ`JOJUJBMJ[F`ʹGVODUJPOͱͯ͠ࢦఆ ಛ Πϯελϯε࡞࣌ʹࣗಈతʹҰ͚ͩݺΕΔɻ ॳظԽϝιουʹҾ͕͋Δ߹ɺΠϯελϯε࡞࣌ʹҾΛઃఆ͢Δඞཁ͕͋Δɻ ͝རӹ ϝιουͷ࣮ߦΕΛ͛Δɻ Πϯελϯε࡞͔࣌͠Θͳ͍͜ͱ͕໌֬ʹͳΔɻ ΠϯελϯεมͷͷઃఆΛڧ੍Ͱ͖Δɻ ΫϥεͷॳظԽϝιου
3ͷΫϥεʙ3ೖͷೖ )JUQPJOU3$MBTT )JUQPJOU QVCMJDMJTU JOJUJBM)1/" JOJUJBMJ[FGVODUJPO JOJUJBM)1
\ TUPQJGOPU JTOVNFSJD JOJUJBM)1 MFOHUI JOJUJBM)1 JOJUJBM)1JOJUJBM)1 TFMGJOJUJBM)1JOJUJBM)1 ^ μϝʔδΛड͚ͨͱ͖ͷܭࢉ )1EBNBHFGVODUJPO EBNBHF"NPVOU \ TUPQJGOPU JTOVNFSJD EBNBHF"NPVOU MFOHUI EBNBHF"NPVOU EBNBHF"NPVOU /FX)1TFMGJOJUJBM)1EBNBHF"NPVOU /FX)1JGFMTF /FX)1 /FX)1 DBU Γ)1 /FX)1 Ͱ͢ ^ ճ෮Λड͚ͨͱ͖ͷܭࢉ )1SFDPWFSGVODUJPO SFDPWFSZ"NPVOU \ TUPQJGOPU JTOVNFSJD SFDPWFSZ"NPVOU MFOHUI SFDPWFSZ"NPVOU SFDPWFSZ"NPVOU /FX)1TFMGJOJUJBM)1 SFDPWFSZ"NPVOU /FX)1JGFMTF /FX)1 /FX)1 DBU Γ)1 /FX)1 Ͱ͢ ^ )1EBNBHFϝιου TUPQJGOPUͰEBNBHF"NPVOUϓϩύςΟͷ݅ઃఆ JOJUJBMJ[FϝιουͰઃఆͨ͠TFMGJOJUJBM)1Λݺͼग़͠ ΫϥεͷॳظԽϝιου
3ͷΫϥεʙ3ೖͷೖ )JUQPJOU3$MBTT )JUQPJOU QVCMJDMJTU JOJUJBM)1/" JOJUJBMJ[FGVODUJPO JOJUJBM)1
\ TUPQJGOPU JTOVNFSJD JOJUJBM)1 MFOHUI JOJUJBM)1 JOJUJBM)1JOJUJBM)1 TFMGJOJUJBM)1JOJUJBM)1 ^ μϝʔδΛड͚ͨͱ͖ͷܭࢉ )1EBNBHFGVODUJPO EBNBHF"NPVOU \ TUPQJGOPU JTOVNFSJD EBNBHF"NPVOU MFOHUI EBNBHF"NPVOU EBNBHF"NPVOU /FX)1TFMGJOJUJBM)1EBNBHF"NPVOU /FX)1JGFMTF /FX)1 /FX)1 DBU Γ)1 /FX)1 Ͱ͢ ^ ճ෮Λड͚ͨͱ͖ͷܭࢉ )1SFDPWFSGVODUJPO SFDPWFSZ"NPVOU \ TUPQJGOPU JTOVNFSJD SFDPWFSZ"NPVOU MFOHUI SFDPWFSZ"NPVOU SFDPWFSZ"NPVOU /FX)1TFMGJOJUJBM)1 SFDPWFSZ"NPVOU /FX)1JGFMTF /FX)1 /FX)1 DBU Γ)1 /FX)1 Ͱ͢ ^ TUPQJGOPUͰSFDPWFSZ"NPVOUϓϩύςΟͷ݅ઃఆ JOJUJBMJ[FϝιουͰઃఆͨ͠TFMGJOJUJBM)1Λݺͼग़͠ )1SFDPWFSϝιου ΫϥεͷॳظԽϝιου
3ͷΫϥεʙ3ೖͷೖ )JUQPJOU3$MBTT )JUQPJOU QVCMJDMJTU JOJUJBM)1/" JOJUJBMJ[FGVODUJPO JOJUJBM)1
\ TUPQJGOPU JTOVNFSJD JOJUJBM)1 MFOHUI JOJUJBM)1 JOJUJBM)1JOJUJBM)1 TFMGJOJUJBM)1JOJUJBM)1 ^ μϝʔδΛड͚ͨͱ͖ͷܭࢉ )1EBNBHFGVODUJPO EBNBHF"NPVOU \ TUPQJGOPU JTOVNFSJD EBNBHF"NPVOU MFOHUI EBNBHF"NPVOU EBNBHF"NPVOU /FX)1TFMGJOJUJBM)1EBNBHF"NPVOU /FX)1JGFMTF /FX)1 /FX)1 DBU Γ)1 /FX)1 Ͱ͢ ^ ճ෮Λड͚ͨͱ͖ͷܭࢉ )1SFDPWFSGVODUJPO SFDPWFSZ"NPVOU \ TUPQJGOPU JTOVNFSJD SFDPWFSZ"NPVOU MFOHUI SFDPWFSZ"NPVOU SFDPWFSZ"NPVOU /FX)1TFMGJOJUJBM)1 SFDPWFSZ"NPVOU /FX)1JGFMTF /FX)1 /FX)1 DBU Γ)1 /FX)1 Ͱ͢ ^ Ϋϥεͷ͝རӹ )1EBNBHFϝιουͱ)1SFDPWFSϝιουͷ྆ํͰ ڞ௨ͯ͠͏JOJUJBM)1ϓϩύςΟͷఆ͕ٛճͷهࡌͰࡁΉ ڞ௨͢Δ߲ΛҰʹݟΒΕΔͷͰվमσόοά͕ Γ͍͢
3ͷΫϥεʙ3ೖͷೖ UFTU)Q)JUQPJOUOFX UFTU)Q)JUQPJOUOFX &SSPSJOJOJUJBMJ[F JOJUJBM)1JOJUJBM)1JTOPU536& UFTU)Q)JUQPJOUOFX
&SSPSJOJOJUJBMJ[F JOJUJBM)1JOJUJBM)1JTOPU536& ΦϒδΣΫτΛੜ ࢦఆͨ͠ൣғΛ͑ͨ߹
3ͷΫϥεʙ3ೖͷೖ UFTU)Q)1EBNBHF Γ)1Ͱ͢ UFTU)Q)1EBNBHF Γ)1Ͱ͢ μϝʔδΛड͚ͨ߹ͷܭࢉ
࠷ॳͷ)1ΑΓখ͞ͳμϝʔδ ࠷ॳͷ)1ΑΓେ͖ͳμϝʔδ
3ͷΫϥεʙ3ೖͷೖ UFTU)Q)1SFDPWFS Γ)1Ͱ͢ UFTU)Q)1SFDPWFS Γ)1Ͱ͢ ճ෮ͨ͠߹ͷܭࢉ
࠷େΑΓগͳ͍ճ෮ ࠷େΑΓଟ͍ճ෮
3ͷΫϥεʙ3ೖͷೖ ࠓճग़དྷͨ͜ͱ ɾ3Λͬͯ؆୯ͳΫϥεΛ࣮ͯ͠ڍಈΛ֬ೝͨ͠ ·ͩग़དྷ͍ͯͳ͍͜ͱ ɾQSJWBUFͷڍಈΛࢼ͢ ɾܧঝͷڍಈΛࢼ͢ ɾ3ಛ༗ͷڍಈͷ֬ೝ
·ͱΊ w ΫϥεͱΦϒδΣΫτࢦϓϩάϥϛϯάͷհ w 3ύοέʔδΛͬͯΫϥεΛ࡞ͯ͠Έͨ w ·ͩ·ͩΫϥεઃܭʹ3ʹཧղ͕ઙ͍ͷͰ ͍Ζ͍Ζࢼ͢ 3ͰΦϒδΣΫτࢦϓϩάϥϛϯάత ։ൃ͕Ͱ͖Δ
ࢀߟࢿྉ ɾ"EWBODFE3ষ IUUQTBEWSIBEMFZO[SIUNM ɾʦ༁ʧ3WJHOFUUF3Ϋϥεೖ IUUQTRJJUBDPNOBLBNJDIJJUFNTEFGEBD ɾ3DMBTTͬͦ͘͞ௐࠪSTUBUTK IUUQTRJJUBDPN
[email protected]
JUFNTCCGGCFBB
&/+0: