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
はじめてのRuby 第11章 / Ruby Practice 11
Search
muttan
November 22, 2016
Programming
0
140
はじめてのRuby 第11章 / Ruby Practice 11
muttan
November 22, 2016
Tweet
Share
More Decks by muttan
See All by muttan
さわやか待ち時間LINE botを作った話 / Sawayaka LINE bot
bath_poo_
0
100
コンテナ開発入門 1回目/Introduction to Container Development 1
bath_poo_
0
150
ISUCONってなんだ / What is ISUCON
bath_poo_
0
330
Web技術の基本 8回目 / Introduction to Web technologies 8th class
bath_poo_
0
170
Web技術の基本 7回目 / Introduction to Web technologies 7th class
bath_poo_
0
150
Web技術の基本 6回目 / Introduction to Web technologies 6th class
bath_poo_
1
240
Web技術の基本 5回目 / Introduction to Web technologies 5th class
bath_poo_
0
120
Web技術の基本 4回目 / Introduction to Web technologies 4th class
bath_poo_
0
200
Web技術の基本 3回目 / Introduction to Web technologies 3rd class
bath_poo_
0
240
Other Decks in Programming
See All in Programming
読まないコードリーディング術
hisaju
0
120
コードを読んで理解するko build
bells17
1
120
推しメソッドsource_locationのしくみを探る - はじめてRubyのコードを読んでみた
nobu09
2
360
データベースのオペレーターであるCloudNativePGがStatefulSetを使わない理由に迫る
nnaka2992
0
250
もう僕は OpenAPI を書きたくない
sgash708
6
1.9k
kintone開発を効率化するためにチームで試した施策とその結果を大放出!
oguemon
0
330
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
300
オレを救った Cline を紹介する
codehex
15
13k
Jakarta EE meets AI
ivargrimstad
0
640
Ça bouge du côté des animations CSS !
goetter
2
160
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
320
CDKを使ったPagerDuty連携インフラのテンプレート化
shibuya_shogo
0
120
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
4 Signs Your Business is Dying
shpigford
183
22k
Speed Design
sergeychernyshev
28
820
Scaling GitHub
holman
459
140k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
11
1.3k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Transcript
ͨͷ͍͠3VCZୈষ
ͨͷ͍͠ ʋ ?@?P ϊ
3VCZ
ୈճ
ୈষϒϩοΫ
ϒϩοΫͱ
w ϒϩοΫͱ ϝιουݺͼग़͠ͷࡍʹҾͱҰ ॹʹ͢͜ͱ͕Ͱ͖ΔॲཧͷմʢFBDIUJNFT ϝιουΛར༻͢Δࡍʹͨ͠ͷʣ w ҎԼͷྫͰճϒϩοΫ͕࣮ߦ͞ΕΔʢEP FOEͷ·Ͱͷ෦͕ϒϩοΫʣ ϒϩοΫͱ
w ͜ͷΑ͏ͳݺͼग़͠ํΛ ϒϩοΫ͖ݺͼग़͠ PSϒϩοΫ͖ϝιουݺͼग़͠ͱݺͿʢ෮शʣ ϒϩοΫͱʢ෮शʣ ΦϒδΣΫτϝιου໊ Ҿ ʜ EPcม ม
ʜc ॲཧ FOE ΦϒδΣΫτϝιου໊ Ҿ ʜ \cม ม ʜc ॲཧ ^ ϒϩοΫม
ϒϩοΫͱ
w ʢࠓݱࡏʣ࠷ۙͳϒϩοΫͷ͍Έͪͱ͠ ͯ ܁Γฦ͠ʹ༻͢Δͷ͕͋Δ w ϒϩοΫΛड͚औΔϝιουͷ͏ͪ ܁Γฦ͠Λ ߦ͏ͷΛΠςϨʔλͱ͍͏ ܁Γฦ͠
w ྫʣྻͷ֤ཁૉΛେจࣈʹͯ͠ग़ྗ͢Δ w ྫʣ)BTIͷ֤ཁૉΛऔΓग़͠ ߹ܭΛٻΊΔ
)BTI<LFZ WBMVF>ͱ͍͏ྻ͕͞ΕΔ ܁Γฦ͠ 1IBTI@FBDISC࣮ߦ
w ྫͷϓϩάϥϜ ଟॏೖͷϧʔϧΛద༻͢ Δͱ ϒϩοΫมͷड͚औΓํΛҎԼͷΑ͏ʹ ͢Δ͜ͱͰ͖Δ w
JUFN<LFZ WBMVF> LFZ WBMVFJUFNͱಉ͡ϧʔϧ ܁Γฦ͠ cJUFNcˠcLFZ WBMVFc 1IBTI@FBDISC࣮ߦ
w ΠςϨʔλҎ֎ʹ ޙॲཧΛ࣮֬ʹ࣮ߦͤ͞Δ ͱ͍͍ͬͨํΛ͢Δ͜ͱͰ͖Δ ఆܕͷॲཧΛӅ͢ DMPTF͕ͳ͍
w 'JMFPQFOϝιουʹϒϩοΫΛ͢ͱ ϑΝΠϧ ΦϒδΣΫτΛϒϩοΫมͱͯ͠Ұ͚ͩϒϩο ΫΛىಈ͢Δ w ໌ࣔతʹDMPTFΛॻ͔ͳͯ͘෦Ͱดͯ͘͡Ε ͍ͯΔʢΤϥʔ͕ى࣮ͬͯ֬͜ʹด͡Δʣ ఆܕͷॲཧΛӅ͢ DMPTF͕ͳ͍
1pMF@PQFOSC࣮ߦ
w pMF@PQFOSCҎԼͷΑ͏ͳॲཧ͕෦తʹߦΘ Ε͍ͯΔ͜ͱʹͳΔ ఆܕͷॲཧΛӅ͢
w 'JMFPQFOϝιουʹϒϩοΫΛ͢ͱ ϑΝΠϧ Λѻ͏্Ͱ࣮֬ʹඞཁʹͳΔॲཧʢϑΝΠϧΛ ด͡Δ ΤϥʔॲཧʣΛॻ͔ͣͱߦ͏ w ܾ·Γ͖ͬͨॲཧϝιουʹҕͶ Ϣʔβʔଆ Ͱඞཁͳॲཧ͚ͩهड़͢Δͱ(00%
ఆܕͷॲཧΛӅ͢
w ཁૉͷฒସ͑Λ͢ΔTPSU TPSU@CZϝιουΛ ྫʹߟ͑Δ w ιʔτͷج४༷ʑ͋ΔͨΊ ͦͷج४͝ͱʹιʔ τϝιουΛࢦఆ͍ͯͯ͠ϝιου͕ଟ͢ ͗Δ w
ͦͷͨΊ"SSBZTPSU ൺֱج४ΛϒϩοΫͰ ͢͜ͱͰ্هͷʹରԠ͍ͯ͠Δ ܭࢉͷҰ෦Λࠩ͠ସ͑ʢιʔτॱͷࢦఆʣ
w Ҿແ͠Ͱ"SSBZTPSU ΛݺΜͩ߹ ԋࢉࢠͰൺֱ ͨ͠ॱʹͳΔ
w จࣈྻͷ߹ࣙॻॱʹͳΔ w େจࣈখจࣈେจࣈ͕༏ઌ͞ΕΔ ܭࢉͷҰ෦Λࠩ͠ସ͑ʢιʔτॱͷࢦఆʣ ݅ ݁Ռ BC ʢΑΓখ͍͞ʣ BC BC ʢΑΓେ͖͍ʣ
w "SSBZTPSUͷྫʢϒϩοΫͳ͠ʣ w "SSBZTPSUͷྫʢจࣈͰঢॱιʔτʣ ϒϩοΫ࠷ޙͷ͕࣮ࣜߦ݁ՌͱͳΔͷͰ BC ͷͱ͖CBͰൺֱ͠ͳ͚ΕͳΒͳ͍
ܭࢉͷҰ෦Λࠩ͠ସ͑ʢιʔτॱͷࢦఆʣ
w "SSBZTPSUͷྫ w ͭͷ݁ՌʢBSSBZTPSUͷ߹ʣ <lz lz lz lz
lz>ͱͳΔ w ͭͷ݁ՌʢϒϩοΫΛͨ͠߹ʣ<lz lz lz lz lz>ͱͳΔ ܭࢉͷҰ෦Λࠩ͠ସ͑ʢιʔτॱͷࢦఆʣ
w ޮతʹιʔτ͍ͨ͠ ܭࢉͷҰ෦Λࠩ͠ସ͑ ϒϩοΫ͕ճݺΕ͍ͯͯ ݺ ͼग़͠ͰճMFOHUIϝιουΛ ݺͿͷͰਏ͍ 1TPSU@DPNQ@DPVOUSC࣮ߦ
w ޮతʹιʔτ͍ͨ͠ w ͚ͩMFOHUIϝιουΛݺͿΑ͏ʹ͍ͨ͠ ܭࢉͷҰ෦Λࠩ͠ସ͑
ϒϩοΫ͕ճݺΕ͍ͯͯ ݺ ͼग़͠ͰճMFOHUIϝιουΛ ݺͿͷͰਏ͍ 1TPSU@DPNQ@DPVOUSC࣮ߦ
w ͦ͜ͰTPSU@CZϝιουΛར༻͢Δ w JUFNMFOHUIͷ෦ʹؔͯ͠ 0 O
ʹͳΔͷͰ ޮ͕ྑ͍ʢ͚ͩࢀর͢Δ͜ͱʹͳΔʣ ܭࢉͷҰ෦Λࠩ͠ସ͑
ϒϩοΫ͖ϝιουΛ࡞Δ
w ZJFMEͱ͍͏໋ྩΛݺͿ͜ͱͰ ϝιουʹ༩͑Β ΕͨϒϩοΫΛ࣮ߦ͢Δ͜ͱ͕Ͱ͖Δ ϒϩοΫΛ࣮ߦ͢Δ 1NZMPPQSC࣮ߦ OVNͱͳͬͨΒ ແݶϧʔϓ͔Βൈ͚Δ
w ϒϩοΫมΛ͢͜ͱͰॲཧΛมԽͤ͞ Λ ฦ͢ϝιουΛ࣮ͯ͠ΈΔ w GSPN͔ΒUP·ͰͷΛॱʹऔΓग़͠ ԿΒ ͔ͷՃΛߦ͔ͬͯΒ߹ܭ͢ΔϝιουΛ࡞ ͯ͠ΈΔ ϒϩοΫมΛ͢
݁ՌΛಘΔ
ϒϩοΫมΛ͢ ݁ՌΛಘΔ O Oͷೋ CMPDL͕༩͑ΒΕ͍ͯͨΒ 1UPUBMSC࣮ߦ
w ZJFMEʹҾΛ͢ͱ ͦͷ͕ϒϩοΫมʹ֨ ೲ͞ΕΔ w Ͱ ෳͷϒϩοΫมΛͨ͠߹Ͳ͏ͳΔ
ͷ͔ ϒϩοΫมΛ͢ ݁ՌΛಘΔ Oͷೋ͕ฦΔ
ϒϩοΫมΛ͢ ݁ՌΛಘΔ 1CMPDL@BSHT@UFTUSC࣮ߦ ϒϩοΫมΛcBcͰड͚औΔ <OJM> <> <> ϒϩοΫมΛcB C DcͰड͚औΔ
<OJM OJM OJM> < OJM OJM> < > ϒϩοΫมΛc BcͰड͚औΔ <> <> < >
w ZJFMEͷҾͷͱϒϩοΫมͷ͕ҧ͍ͬͯ ͯݺͼग़͢͜ͱ͕Ͱ͖Δ w ϒϩοΫมͷ΄͏͕ଟ͍߹OJMͱͳΔ w ϒϩοΫม͕Γͳ͍߹ Λड͚औΔ͜ ͱ͕Ͱ͖ͳ͍ ͱ͕ड͚औΕ͍ͯͳ͍ʣ
ϒϩοΫมΛ͢ ݁ՌΛಘΔ 1CMPDL@BSHT@UFTUSC࣮ߦ ϒϩοΫมΛcBcͰड͚औΔ <OJM>ZJFME <>ZJFME <>ZJFME
w มͷܗࣜͰड͚औΔͱ ϒϩοΫมΛ·ͱ Ίͯྻͱͯ͠ड͚औΔ w ϝιουఆٛͷࡍʹͰ͖ͯͨ Ҿͷ͕ෆఆͷ ߹ͱࣅͨಈ͖ ϒϩοΫมΛ͢ ݁ՌΛಘΔ
ϒϩοΫมΛc BcͰड͚औΔ <> <> < >
w ͜͜ͰͰ͢ w ͜ͷͱ͖ͳΜͱग़ྗ͞ΕΔͰ͠ΐ͏͔ʁ
ϒϩοΫͷ࣮ߦΛ੍ޚ͢Δ
w ͑OJM w ϒϩοΫͰCSFBL͕ൃੜͨ͠߹ ϝιουݺ ͼग़͠ͷ·Ͱͬͯ͠·͏ͨΊ w Կ͔Λฦ͍ͨ͠ͱ͖ lCSFBLzͷΑ͏ʹҾ Λ͢ͱྑ͍
ϒϩοΫͷ࣮ߦΛ੍ޚ͢Δ
w OFYUಉ༷ʹࢦఆͨ͠Λฦ͢ࣄ͕Ͱ͖Δ w OFYUͷ߹ ϒϩοΫͷͦͷճͷ࣮ߦΛதஅ࣍͠ ͷॲཧʹҠΔʢCSFBLͷΑ͏ʹऴΘΒͳ͍ʣ w OFYUʹԿࢦఆ͠ͳ͚ΕOJM ࢦఆͨ͠߹ͦ ͷ͕ฦΔ
ϒϩοΫͷ࣮ߦΛ੍ޚ͢Δ
w 1SPDOFXϝιουʹϒϩοΫΛ͢͜ͱͰ ϒ ϩοΫͷΦϒδΣΫτΛ࡞͢Δ͜ͱ͕Ͱ͖Δ w DBMMϝιουͰݺͼग़͢ͱ
ϒϩοΫʹॻ͔Εͨ ॲཧΛ࣮ߦ͢Δ͜ͱ͕Ͱ͖Δ ϒϩοΫΛΦϒδΣΫτͱͯ͠ड͚औΔ 1QSPDSC࣮ߦ
w ϝιουʹϒϩοΫΛ࣌͢ ໌ࣔతʹϒϩοΫ Λड͚औΔมΛࢦఆ͢Δ͜ͱ͕Ͱ͖Δ ϒϩοΫΛΦϒδΣΫτͱͯ͠ड͚औΔ ม໊Ͱड͚औΔ 1QSPDSC࣮ߦ
w Ҿ໊ͱ͢Δͱ ࣗಈతʹ1SPDΦϒδΣΫτͱ ͯ͠͞ΕΔͷͰ ݺͼग़࣌͢ʮҾ໊DBMMʯ ͱ͢Δ ϒϩοΫΛΦϒδΣΫτͱͯ͠ड͚औΔ 1SPDΦϒδΣΫτʹͳΔ DBMMͰݺͼग़͢
w ม໊ͷલʹΛ͚ͭͯड͚औΔҾͷ͜ͱΛ 1SPDมͱ͍͏ w ϒϩοΫΛ͞ͳ͍߹1SPDมOJMʹͳΔͷ Ͱ ϒϩοΫ͕Ҿ͖͞Ε͍ͯΔ͔Ͳ͏͔ม ͕OJM͔ͦ͏Ͱͳ͍͔Ͱஅ͢ΕΑ͍ w 1SPDҾͯ͢ͷҾͷதͰҰ൪࠷ޙʹͳͬ
ͯͳ͚ΕͳΒͳ͍ ϒϩοΫΛΦϒδΣΫτͱͯ͠ड͚औΔ
w 1SPDΦϒδΣΫτͱͯ͠ड͚औΔ͜ͱͰ ͖ͳ λΠϛϯάͰݺͼग़͢͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔ w ϝιουͷݺͼग़͠ҾΛʮ1SPDΦϒδΣΫ τʯͷܗࣜͰ͢͜ͱͰ ଞͷϝιουʹ1SPD ΦϒδΣΫτΛ͢͜ͱ͕Ͱ͖Δ ϒϩοΫΛΦϒδΣΫτͱͯ͠ड͚औΔ
w ྫʣ1SPDΦϒδΣΫτΛதܧ͢Δ ϒϩοΫΛΦϒδΣΫτͱͯ͠ड͚औΔ 1DBMM@FBDISC࣮ߦ
ϩʔΧϧมͱϒϩοΫม
w ֎Ͱ࡞ΒΕͨϩʔΧϧมΛϒϩοΫ͔Βࢀ র͢Δ͜ͱ͕Մೳ w ϒϩοΫมͱͯ͠ΘΕΔม ϒϩοΫͷ ֎ଆͷͷͱผͱͯ͠ѻΘΕΔ ϩʔΧϧมͱϒϩοΫม 1MPDBM@BOE@CMPDLSC࣮ߦ Z֎ଆͷϩʔΧϧ
มΛࢀর
w ϒϩοΫͰఆٛ͞Εͨม ϒϩοΫͷ֎Ͱ ࢀর͢Δ͜ͱͰ͖ͳ͍ ϩʔΧϧมͱϒϩοΫม Z͕ϒϩοΫͷ֎Ͱએݴ͞Ε͍ͯͳ͍ ͨΊ/BNF&SSPSͱͳΔ
w ϒϩοΫมҎ֎ʹ ϒϩοΫͰͷΈ༗ޮͳม Λ࡞Δ͜ͱ͕Ͱ͖Δ w ϒϩοΫมͷ͋ͱʹηϛίϩϯzzͰ۠ͬͯ એݴ͢Δ ϩʔΧϧมͱϒϩοΫม 1MPDBM@BOE@CMPDLSC࣮ߦ ϒϩοΫϩʔΧϧม
ࠓճͷ ·ͱΊ
·ͱΊ w ϒϩοΫͱ ϝιουݺͼग़͠ͷࡍʹҾͱҰ ॹʹ͢͜ͱ͕Ͱ͖Δॲཧͷմ w ܁Γฦ͠ ఆܕͷॲཧΛӅ͢ ܭࢉͷҰ෦Λࠩ͠ ସ͑Δͱ͍ͬͨͷʹ͏͜ͱ͕Ͱ͖Δ
w 1SPDOFXϝιουʹϒϩοΫΛ͢͜ͱͰ ϒ ϩοΫͷΦϒδΣΫτΛ࡞͢Δ͜ͱ͕Ͱ͖Δ w είʔϓʹؾΛ͚ͭΑ͏