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
ruby13
Search
MATSUOKA Kohei
July 03, 2014
Technology
0
430
ruby13
MATSUOKA Kohei
July 03, 2014
Tweet
Share
More Decks by MATSUOKA Kohei
See All by MATSUOKA Kohei
ゼロからわかるRuby超入門の歩き方
machu
2
4.4k
最近のtDiary
machu
1
1.7k
ruby15
machu
0
500
ruby12
machu
1
310
ruby11
machu
0
320
ruby10
machu
0
330
ruby09
machu
0
280
ruby08
machu
0
240
ruby07
machu
0
410
Other Decks in Technology
See All in Technology
Where will it converge?
ibknadedeji
0
190
pprof vs runtime/trace (FlightRecorder)
task4233
0
170
Function calling機能をPLaMo2に実装するには / PFN LLMセミナー
pfn
PRO
0
950
Why Governance Matters: The Key to Reducing Risk Without Slowing Down
sarahjwells
0
110
Adminaで実現するISMS/SOC2運用の効率化 〜 アカウント管理編 〜
shonansurvivors
2
270
定期的な価値提供だけじゃない、スクラムが導くチームの共創化 / 20251004 Naoki Takahashi
shift_evolve
PRO
3
330
about #74462 go/token#FileSet
tomtwinkle
1
420
AWS 잘하는 개발자 되기 - AWS 시작하기: 클라우드 개념부터 IAM까지
kimjaewook
0
110
SoccerNet GSRの紹介と技術応用:選手視点映像を提供するサッカー作戦盤ツール
mixi_engineers
PRO
1
190
AI駆動開発を推進するためにサービス開発チームで 取り組んでいること
noayaoshiro
0
220
Why React!?? Next.jsそしてReactを改めてイチから選ぶ
ypresto
10
4.5k
多野優介
tanoyusuke
1
460
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
A Tale of Four Properties
chriscoyier
160
23k
How to Think Like a Performance Engineer
csswizardry
27
2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
9
580
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Music & Morning Musume
bryan
46
6.8k
Optimizing for Happiness
mojombo
379
70k
Documentation Writing (for coders)
carmenintech
75
5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
19
1.2k
Facilitating Awesome Meetings
lara
56
6.6k
Transcript
3VCZߨٛୈճ 8FCΞϓϦ࡞࣮श χϑςΟגࣜձࣾدෟߨٛ ࣾձՊֶʹ͓͚Δใٕज़ͱίϯςϯπ࡞***
দԬߒฏ ߨࢣ ຊి৴ి᷂ UXJUUFS!NBDIV IUUQTHJUIVCDPNNBDIV IUUQXXXNBDIVKQEJBSZ
લճͷ͓͞Β͍
ࣗಈϦϩʔυ w ຖճ6OJDPSOΛ࠶ىಈ͢Δͷ͕໘ w ίʔυΛमਖ਼͢ΔͱɺࣗಈͰϦϩʔυͯ͘͠ΕΔ HFNTJOBUSBDPOUSJC (FNpMF BQQSC SFRVJSFTJOBUSB
SFRVJSFTJOBUSBSFMPBEFS 4JOBUSB3FMPBEFS ݕࡧ
σόοά༻Τϥʔը໘ w Τϥʔը໘Ͱσόοάʢղੳʣ͕Ͱ͖Δ HFNCFUUFS@FSSPST HFNCJOEJOH@PG@DBMMFS (FNpMF BQQSC SFRVJSFCFUUFS@FSSPST !
VTF#FUUFS&SSPST.JEEMFXBSF #FUUFS&SSPSTBQQMJDBUJPO@SPPU@@EJS@@ CFUUFS@FSSPST ݕࡧ
ࣗಈͰ)5.-Τεέʔϓ w )5.-ʹมΛදࣔ͢Δͱ͖ʹɺηΩϡϦςΟରࡦͷͨ Ί)5.-Τεέʔϓͱ͍͏ॲཧ͕ඞཁͰ͢ w FSVCJTΛ͏ͱɺࣗಈͰ)5.-Τεέʔϓͯ͘͠Ε·͢ HFNFSVCJT (FNpMF BQQSC
SFRVJSFFSVCJT TFUFSC FTDBQF@IUNMUSVF 944߈ܸ ݕࡧ
͍ํͷҙ ࣗಈϦϩʔυͱσόοά༻Τϥʔ ը໘ɺ։ൃ͢Δͱ͖͚ͩ༗ޮ ʹ͠·͠ΐ͏ɻ ΞϓϦΛެ։͢Δͱ͖ແޮʹɻ
ςϯϓϨʔτ &SC ͷॻ͖ํ ֮͑Δ͜ͱ͚ͭͩ 3VCZͷίʔυΛ࣮ߦ 3VCZͷίʔυ 3VCZͷίʔυΛ࣮ߦ͠ɺ݁ՌΛදࣔ 3VCZͷίʔυ
#.*Λ)5.-ʹग़ྗ QPTUCNJEP IFJHIUQBSBNT<IFJHIU>UP@G XFJHIUQBSBNT<XFJHIU>UP@G !CNJXFJHIUIFJHIU FSCCNJ FOE BQQSC
WJFXTCNJFSC GPSNBDUJPOCNJNFUIPEQPTU DN JOQVUOBNFIFJHIUUZQFUFYU ମॏ LH JOQVUOBNFXFJHIUUZQFUFYU JOQVUWBMVF#.*ΛܭࢉʂUZQFTVCNJU GPSN ! JG!CNJ ͋ͳͨͷ#.*!CNJSPVOE Ͱ͢ɻ FOE CNJΛ!CNJʹॻ͖͑ ʢ!ͷҙຯ͋ͱͰઆ໌͠·͢ʣ !CNJมΛදࣔ
ςϯϓϨʔτʹ͍ͨ͠ มʹ!Λ͚ͭΔ BQQSC HFUUFTUEP NFTTBHF)FMMP FSCUFTU FOE ϝοηʔδ NFTTBHFͰ͢ɻ
WJFXTUFTUFSC NFTTBHFมݟ͑ͳ͍ HFUUFTUEP !NFTTBHF)FMMP FSCUFTU FOE ϝοηʔδ !NFTTBHFͰ͢ɻ !Λ͚ͭΔͱΈ͑ΔΑ͏ʹͳΔ
;ͭ͏ͷม 4JOBUSB"QQMJDBUJPO QPTUEP Z FOE BQQSC Z WJFXTCNJSC
HFUEP Y FOE Y Z มͷ༗ޮൣғ είʔϓ ϒϩοΫ Zมݟ͑ͳ͍
!ม Πϯελϯεม 4JOBUSB"QQMJDBUJPO QPTUEP !Z FOE BQQSC !Y WJFXTCNJSC
HFUEP !Y FOE !Y !Z มͷ༗ޮൣғΦϒδΣΫτ !Zม͕ݟ͑Δ
ͱΓ͋͑ͣɺ ςϯϓϨʔτʹͨ͠ ͍มʹ!Λ͚ͭΔ ͱ֮͑Ε0,
લճͷԋश՝ ग़ྗ݁ՌͷΧελϚΠζ
՝ग़ྗ݁ՌͷΧελϚΠζ #.*ͷʹΑͬͯɺʮ૫ͤܕʯɺʮී௨ʯɺ ʮଠΓ͗ΈʯͷମܕදࣔͰ͖ΔΑ͏ʹ 8FCΞϓϦΛमਖ਼͍ͯͩ͘͠͞ɻ
$-*ΞϓϦͷ߹ʢୈճ3VCZߨ࠲ΑΓʣ Λฉ͘ QVUT͋ͳͨͷΛڭ͍͑ͯͩ͘͞ DN IFJHIUHFUTUP@G ମॏΛฉ͘ QVUTͭ͗ʹମॏΛڭ͍͑ͯͩ͘͞ LH
XFJHIUHFUTUP@G #.*Λܭࢉ͢Δ CNJXFJHIUIFJHIU #.*Λڭ͑Δ QVUT͋ͳͨͷ#.*\CNJ^Ͱ͢z ! JGCNJ QVUT૫ͤܕͰ͢ FMTJGCNJ QVUTී௨Ͱ͢ FMTF QVUTଠΓ͗ΈͰ͢ FOE ՝ग़ྗ݁ՌͷΧελϚΠζ
՝ग़ྗ݁ՌͷΧελϚΠζ w ମܕͷܭࢉΞϓϦͱςϯϓϨʔτͷͲͪΒͰΔ͔ʁ w ςϯϓϨʔτͰܭࢉ͢ΔͱJG͕ෳࡶʹɻ w ϩδοΫΞϓϦ BQQSC ଆʹ·ͱΊΔͱεοΩϦ ͠·͢ɻ
QPTUCNJEP !CNJ !TUZMFඪ४ FSCCNJ FOE JG!CNJ #.*!CNJSPVOE Ͱ͢ɻ ମܕ!TUZMFͰ͢ɻ FOE BQQSC WJFXTCNJFSC ࣮ࡍʹఆ ϩδοΫΛॻ͘
8FCΞϓϦ ࡞࣮श IUUQTXXXqJDLSDPNQIPUPTCSF
8FCΞϓϦ࡞࣮श w ͖ͳ8FCΞϓϦΛ࡞ͬͯΈ·͠ΐ͏ w ݶͷߨٛΛཤम͍ͯ͠ΔํɺͦΕΛ༏ઌ͠ ͯ0,Ͱ͢ɻͪΖΜผͰ0,ɻ w લճͷ՝͕·ͩͷਓɺ·ͣ՝͔Β ઓͯ͠Έ·͠ΐ͏ɻ
8FCΞϓϦ࡞࣮श w ࡞ͨ͠8FCΞϓϦΛάϧʔϓͰհ͍ͯͩ͘͠͞ʢൃ ද࣌ؒਓҎʣ w 8FCΞϓϦͷσϞʢ࡞్தͰ0,Ͱ͢ʣ w ͦͷ8FCΞϓϦΛ࡞Ζ͏ͱࢥͬͨཧ༝ w ָ͔ͬͨ͠ͱ͜Ζɺۤ࿑ͨ͠ͱ͜Ζ
w ࠓޙϓϩάϥϛϯάΛͬͯΈ͍͔ͨɺ·ͨɺͦͷཧ༝ w ൃදʹΉ͚ͯϓϨθϯࢿྉΛ࡞Δඞཁͳ͍Ͱ͢
εέδϡʔϧ w ݄ɺ݄̓ w ࣮शͷ࣌ؒʹ͠·͢ɻग़੮Χϯτ͠·͢ɻ w ݄ w ࡞ͬͨ8FCΞϓϦΛάϧʔϓͰհͯ͠Β͍·͢ɻ ͍ͯ͠ͳͯ͘ɺͰ͖ͨͱ͜Ζ·ͰΛհ͍ͯͩ͘͠͞ɻ
w ͕Μͬͯʹདྷ͍ͯͩ͘͞ɻ w ߹͕͋ͬͯͲ͏ͯܽ͠੮͢Δਓɺࣄલʹ࿈བྷ͍ͩ͘͞ɻ
͓ͷྫ ʮੜ·Ε͔ͯΒԿͨͬͨʁʯ w ੜ݄Λೖྗ͢Δͱɺࠓ͕ੜ·Ε͔ͯΒԿ͔ Λදࣔ ʮจࣈԽ͚ղফπʔϧ 63-σίʔυϑΥʔϜ ʯ
w 8JLJQFEJBΞΫηεղੳͰొͨ͠Ͱ࢝·Δಾͷจ ࣈྻΛಡΊΔܗࣜʹม&ˠ͍ ʮ༣ศ൪߸͔Βॅॴมʯ w ༣ศ൪߸Λೖྗ͢ΔͱɺରԠ͢ΔॅॴΛදࣔ͢Δ ʮ8JLJQFEJBΞΫηεղੳ8FCΞϓϦ൛ʯ w ୈճʙୈճͰ࡞ͨ͠8JLJQFEJBΞΫηεղੳΛ 8FCΞϓϦԽ
͓ͷྫ ʮϐλΰϥ҉߸ʯ w ϑΥʔϜʹೖྗͨ͠จࣈΛεΩϡλϨʔ҉߸ Ͱ҉߸Խ͢Δɻγʔβʔ҉߸ͰՄɻ ʮ͋ͯήʔϜώοτϒϩʔʯʲ্ڃʳ w ܻͷΛͯΔήʔϜɻࣈͷͱҐஔ͕ਖ਼
͚͠Ε)*5 ͚ͩਖ਼͚͠Ε#*5&ͱදࣔɻ ྫ͑ɺਖ਼ղ͕ʮʯͰ༧͕ͨ͠ ʮʯͰ͋Εɺ)*5 #*5&ͱͳΔɻϑ δςϨϏͷ/VNFSOɻ
͓ͷώϯτ
ώϯτੜ·Ε͔ͯΒԿʁ w 3VCZͰΛѻ͏ΦϒδΣΫτɺ5JNFͱ%BUFͷछྨ ͕͋Γ·͢ɻͲͬͪΛͬͯܭࢉͰ͖·͢ɻ ࠓΛද͢ΦϒδΣΫτΛ࡞Δ 5JNFOPX %BUFUPEBZ
ੜΛද͢ΦϒδΣΫτΛ࡞Δ 5JNFMPDBM %BUF OFX ੜ͔Βࠓ·ͰͷΛܭࢉ͢Δ UPEBZCJSUI ˡ5JNFͷ߹ੜ·Ε͔ͯΒͷඵ
ώϯτ63-σίʔυ w &63-Τϯίʔυ͞Εͨจࣈྻ w ݩʹ͢ʹ$(*VOFTDBQFϝιουΛ͍·͢ w ͍ํୈճ3VCZߨٛΛࢥ͍ग़͍ͯͩ͘͠͞ & ͍
63-σίʔυ 63-Τϯίʔυ
ώϯτ༣ศ൪߸͔Βॅॴม w ༣ศ൪߸σʔλຊ༣ศͷαΠτ͔ΒμϯϩʔυͰ͖·͢ɻ ʮ༣ศ൪߸σʔλʯͰݕࡧɻ w ༣ศ൪߸ͱॅॴ͕$47ܗࣜʹͳ͍ͬͯ·͢ɻจࣈίʔυ͕ 4)*'5+*4ͳͷͰ65'ʹม͠ͳ͍ͱจࣈԽ͚͠·͢ɻ w શࠃͯ͢ͷσʔλϑΝΠϧ͕େ͖͍ͷͰɺ͖ͳಓݝʹ ݶఆ͢Δͱ͍͍Ͱ͠ΐ͏ɻ
w جຊతͳॲཧ8JLJQFEJBΞΫηεղੳͷલ෦ͱࣅ͍ͯ· ͢ɻϑΝΠϧΛ։͍ͯɺಛఆͷ༣ศ൪߸ؚ͕·ΕΔߦΛݟ͚ͭͯɻ
ώϯτ8JLJQFEJBΞΫηεղੳ w ୈdճͰ࡞ͨ͠ίʔυΛ8FCΞϓϦԽ w ࠷ޙͷදࣔ෦ʢϥϯΩϯάʣΛςϯϓϨʔτ ʹҠͯ͠ɺ)5.-Ͱ៉ྷʹදࣔ͠·͠ΐ͏ w ࣮ફతͳ8FCΞϓϦͰຖճܭࢉͤͣʹϥϯΩ ϯάΛσʔλϕʔεͳͲʹอଘ͠·͕͢ɺͦ͜ ·ͰΒͳͯ͘0,Ͱ͢ʢͬͯ0,ʣ
ώϯτϐλΰϥ҉߸ w ʹࡉ͍ࢴΛר͖͚ɺॎʹจࣈΛॻ͘ w ࢴΛ΄Ͳ͘ͱɺಾͷจࣈྻͱͳΔ w ಛఆͷߦʹมͯ͠ॎಡΈ IUUQKBXJLJQFEJBPSHXJLJ҉߸࢙ ͍
· Ͱ ͔ Μ ͨ Μ ʹ ͔ ͍ Ͳ ͘ Ͱ ͖ · ͢ ͍ · Ͱ ͔ Μ ͨ Μ ʹ ͔ ͍ Ͳ ͘ Ͱ ͖ · ͢ ͍ Μ ͍ · · ͨ Ͳ ͢ Ͱ Μ ͘ ʹ Ͱ ͔ ͔ ͖ ฏจ ҉߸จ ม 伴
ώϯτ͋ͯήʔϜ ώοτϒϩʔ w SBOE ͰϥϯμϜͳܻͷࣈΛ࡞ Ͱ͖Δ͕ɺॏෳνΣοΫ͕େมɻ w UP@BTBNQMF
KPJOͩͱॏෳ͠ͳ͍ ܻͷࣈΛ࡞ΕΔ "SSBZTBNQMFࢀর w ϥϯμϜͳࣈ్தܦաηογϣϯʹอଘ ͢Δɻ͍ํʮ4JOBUSBTFTTJPOʯͰݕࡧɻ
ࢀߟࢿྉ
BCD ࣮ߦ݁Ռ QVUTBCD ॻࣜ 3VCZίʔυ ࣮ߦ݁Ռ TIFMMίϚϯυ MT
ࡶஊɾ࣭༻GBDFCPPLάϧʔϓ IUUQTXXXGBDFCPPLDPNHSPVQTIJUPUTVCBTIJSC ɾՃೖඇՃೖࣗ༝Ͱ͢ ɾՃೖඇՃೖʹؔ͠·ͤΜ ɾࢀՃऀҰཡެ։͞Ε·͢ ɾࢀՃऀελοϑͱҰࡢɺࡢɺࠓͷडߨऀͰ͢ ɾॻ͖ࠐΈࢀՃऀͷΈݟ͑·͢ ɾرऀΞΫηεͯ͠ࢀՃਃ͍ͯͩ͘͠͞ ɾࡶஊɺ࣭ɺٞͳͲԿͰؾʹͤͣͲ͏ͧʙ ɾ࣭ʹ͑ΒΕΔਓ͍͑ͯ͋͛ͯͩ͘͞
ɾߨࢣਞ͓͑͠·͢ ɾೖͬͨΒܰࣗ͘ݾհ͓Ͷ͕͍͠·͢