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講義 第12回
Search
Kuniaki IGARASHI
June 30, 2012
Technology
370
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ruby講義 第12回
Gem
Kuniaki IGARASHI
June 30, 2012
More Decks by Kuniaki IGARASHI
See All by Kuniaki IGARASHI
RailsTokyo 4 GarnetTech373
igaiga
0
130
ActiveJobUpdates
igaiga
1
700
roppongirb_20250911
igaiga
1
780
igaiga Ruby Association Activity Report 2025 LT
igaiga
1
160
KaigiOnRails2024
igaiga
16
25k
RuboSensei
igaiga
0
370
Shibuya.rb-2023-04-27-igaiga
igaiga
1
610
Ginza Rails27 igaiga
igaiga
9
14k
tork09igaiga
igaiga
2
430
Other Decks in Technology
See All in Technology
NANDでも描画したい!
nichica906
0
200
Rust×eBPFでEDRっぽいものをつくる
sunlife3
1
380
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
290
Go 1.27 の標準パッケージに uuid が入った!のでいろいろ喋る / go_127_std_go_uuid
convto
3
540
Software Supply Chain Attackからクラウド環境を守るためにできること
lhazy
2
290
ハーレムエンジニアリング
kazuma777777
0
190
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
2027年のMetricKit
kantacky
0
130
AI時代に、人は何を、どう学ぶのか #pbl_pub / What and How Do We Learn in the AI Era?
takaking22
1
180
ホームラボ紹介
y_sera15
0
220
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
2
460
巨大気象データと戦う ― サロゲートモデル学習を高速化する圧縮技術
gpuunite_official
0
170
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
470
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
380
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Git: the NoSQL Database
bkeepers
PRO
432
67k
YesSQL, Process and Tooling at Scale
rocio
174
15k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
490
Automating Front-end Workflow
addyosmani
1369
210k
Transcript
3VCZߨٛ ୈճ3VCZೖ ,VOJBLJ*("3"4)*JHBJHB BUҰڮେֶ ࣾձՊֶʹ͓͚Δใٕज़ͱίϯςϯπ࡞ᶙ χϑςΟגࣜձࣾدෟߨٛ
ࠓͷߨٛͷࣄલ४උ HFNJOTUBMMTQSFBETIFFU 7.ͰTVEPHFNJOTUBMMTQSFBETIFFU HFNJOTUBMMUXJUUFS 7.ͰTVEPHFNJOTUBMMUXJUUFS ΈΜͳͰҰ੪ʹΔͱॏ͍ͨͷͰɺ ૣ͘ண͍ͨํ ૣΊʹ͓ئ͍͠·͢ɻɿʣ
χϑςΟגࣜձࣾ ఏڙ
ߨࢣ ޒेཛྷ໌ גࣜձࣾສ༿ɹΤϯδχΞ
5FBDIJOH"TTJTUBOU ᖛ࡚݈ޗ ΫοΫύουגࣜձࣾɹΤϯδχΞ
ઌिͷ ͓͞Β͍
ܧঝ طʹఆٛ͞Ε͍ͯΔΫϥεΛ֦ுͯ͠৽͠ ͍ΫϥεΛ࡞Δ͜ͱΛܧঝͱ͍͍·͢ɻ ʢطʹ͋Δ͍ͨম͖ͷܕΛར༻ͯ͠ɺগ͠ҧ͏ ৽͍͍ͨ͠ম͖ͷܕΛͭ͘ΔΑ͏ͳͷͰ͢ɻ
ܧঝ DMBTT#PPL BUUS@BDDFTTPSUJUMF QSJDF FOE DMBTT.BHB[JF BUUS@BDDFTTPSUJUMF QSJDF OVNCFS FOE
ͨͱ͑#PPLΫϥεͱ.BHB[JOFΫϥε ࡶࢽ Λ࡞Δͱ͠·͢ɻ ผʑʹఆٛΛॻ͍͍͍ͯͷͰ͕͢ɺڞ௨߲ ͨ͘͞Μ͋Γ·͢ɻ
ܧঝ DMBTT#PPL BUUS@BDDFTTPSUJUMF QSJDF FOE DMBTT.BHB[JF BUUS@BDDFTTPSUJUMF QSJDF OVNCFS FOE
ͨͱ͑#PPLΫϥεͱ.BHB[JOFΫϥε ࡶࢽ Λ࡞Δͱ͠·͢ɻ ผʑʹఆٛΛॻ͍͍͍ͯͷͰ͕͢ɺڞ௨߲ ͨ͘͞Μ͋Γ·͢ɻ
ܧঝ DMBTT#PPL BUUS@BDDFTTPSUJUMF QSJDF FOE DMBTT.BHB[JOF#PPL BUUS@BDDFTTPSOVNCFS FOE ͦΜͳͱ͖ɺܧঝΛ͏ͱศརͰ͢ɻ DMBTT.BHB[JOF#PPLͱॻ͘͜ͱͰɺ#PPLΫϥεΛܧঝͨ͠
.BHB[JOFΫϥεΛఆٛͰ͖·͢ɻ.BHB[JOFΫϥε#PPLΫϥε ͷੑ࣭Λड͚ܧ͗·͢ɻԿΛड͚ܧ͙͔Λ࣍ͷϖʔδͰղઆ͠·͢ɻ DMBTT#PPL BUUS@BDDFTTPSUJUMF QSJDF FOE DMBTT.BHB[JOF BUUS@BDDFTTPSUJUMF QSJDF OVNCFS FOE ಉ͡ಈ࡞ ܧঝΛͬͨॻ͖ํ ܧঝΛΘͳ͍ॻ͖ํ
ܧঝ DMBTT#PPL BUUS@BDDFTTPSUJUMF QSJDF FOE DMBTT.BHB[JF#PPL BUUS@BDDFTTPSOVNCFS FOE ྫ͑#PPLΫϥεΛܧঝͨ͠ .BHB[JOFΫϥεɺUJUMFͱQSJDFΛ
ड͚ܧ͍Ͱ͍·͢ɻྫ͑ɺˣͷΑ͏ͳ ίʔυΛॻ͘͜ͱ͕Ͱ͖·͢ɻ DMBTTΫϥε໊εʔύʔΫϥε໊ Ϋϥεͷఆٛ FOE ܧঝ͢Δ߹ͷॻࣜ εʔύʔΫϥεͱɺܧঝݩͷ Ϋϥε Ϋϥε Ͱ͢ɻ ܧঝͨ͠ΫϥεɺΫϥεͷશͯͷΠϯελϯεมɺϝιο υͳͲΛड͚ܧ͗·͢ɻ NBHB[JOF.BHB[JOFOFX NBHB[JOFUJUMF$BO$BN QNBHB[JOFUJUMF$BO$BN
.PEVMF ϝιουΛڞಉར༻͢ΔΈ
.PEVMF ΫϥεͰϞδϡʔϧΛJODMVEF͢ΔͱɺNPEVMFʹఆٛ͠ ͯ͋ΔϝιουΛΫϥεՃ͢Δ͜ͱ͕Ͱ͖·͢ɻ NPEVMF(SFFUJOH EFGIFMMP QVUT)FMMP FOE FOE DMBTT"MJDF JODMVEF(SFFUJOH
FOE BMJDF"MJDFOFX BMJDFIFMMPIFMMP JODMVEFͨ͠"MJDFΫϥεʹ IFMMPϝιου͕Ճ͞Ε ·͢ɻ ϞδϡʔϧΛఆٛ͠·͢ɻ ϞδϡʔϧʹϝιουΛ ఆٛ͠·͢ɻ
.PEVMF NPEVMF(SFFUJOH EFGIFMMP QVUT)FMMP FOE FOE DMBTT"MJDF JODMVEF(SFFUJOH FOE DMBTT"MJDF
EFGIFMMP QVUT)FMMP FOE FOE JODMVEFͨ͠"MJDFΫϥεӈͷΑ͏ʹॻ͍ͨ͜ͱͱಉ͡ʹ ͳΓ·͢ɻ ಉ͡
.PEVMF ෳͷΫϥεͰಉ͡ϝιουΛར༻͍ͨ͠ͱ͖ʹNPEVMF Λ͏ͱॏෳΛͳͤ͘ΔͷͰศརͰ͢ɻ NPEVMF(SFFUJOH EFGIFMMP QVUT)FMMP FOE FOE DMBTT"MJDF JODMVEF(SFFUJOH
FOE BMJDF"MJDFOFX BMJDFIFMMPIFMMP DMBTT#PC JODMVEF(SFFUJOH FOE CPC#PCOFX CPCIFMMPIFMMP ͠IFMMPϝιουͰදࣔ͢ Δ)FMMPΛ͜Μʹͪʹม͍͑ͨ ߹͜ͷϞδϡʔϧ͚ͩมߋ͢Εྑ͍
.PEVMFͷจ๏ NPEVMFϞδϡʔϧ໊ ϝιουఆٛ FOE DMBTT4BNQMF JODMVEFϞδϡʔϧ໊ FOE NPEVMFఆٛ JODMVEF ಡΈࠐΈ
JODMVEFͱSFRVJSFͷҧ͍ SFRVJSFpMFOBNF DMBTT4BNQMF JODMVEF(SFFUJOH FOE JODMVEF4BNQMFΫ ϥεʹ(SFFUJOH ϞδϡʔϧͰఆٛ͞Εͯ ͍ΔϝιουΛՃ͢Δ ໋ྩ
SFRVJSFଞͷϑΝΠ ϧ SC Ͱఆٛ͞Ε͍ͯ ΔϝιουΫϥεɺ ϞδϡʔϧΛಡΊΔΑ ͏ʹ͢Δ໋ྩ
࣍ (FN
(FN 3VCZͷϥΠϒϥϦཧγεςϜ
ϥΠϒϥϦɿ ଞͷϓϩάϥϜ͔ΒಡΈࠐΜͰར༻͢Δͨ ΊͷϓϩάϥϜ (FN ͨ͘͞ΜͷศརͳϥΠϒϥϦ͕ωοτ্ʹ ެ։͞Ε͍ͯ·͢ɻͦΕΒΛΠϯετʔϧ ͢ΔͳͲɺཧͯ͘͠ΕΔΈ͕(FN Ͱ͢ɻ
(FNͷྫ ɾ&YDFMϑΝΠϧΛಡΈॻ͖͢Δ ɾUXJUUFSͳͲ༗໊ͳ8FCαʔϏεͷΞΫ ηεΛ؆୯ʹͯ͘͠ΕΔ ɾը૾ΛϦαΠζͨ͠ΓΤϑΣΫτΛ͔͚Δ ͳͲͳͲສछྨͷϥΠϒϥϦ͕ެ։͞Ε͍ͯ·͢
HFNΛհɺཧ͍ͯ͠ΔαΠτ IUUQSVCZHFNTPSH
(FNͷ͍ํ TIFMM͔ΒHFNίϚϯυΛͬͯΠϯετʔϧ HFNJOTUBMMHFN໊ ˞VCVOUVͷ߹TVEPHFNJOTUBMMHFN໊ ίʔυͰSFRVJSFHFN໊ ˞VCVOUVͷ߹TVEPHFNJOTUBMMHFN໊ SFRVJSFHFN໊ ͜͜ͰHFNΛ͏ίʔυΛॻ͖·͢ɻ HFNύοέʔδͷΠϯετʔϧ
(FNͷ͍ํ TIFMM͔ΒHFNMJTUίϚϯυͰҰཡදࣔ HFNMJTU ΠϯετʔϧࡁͷHFNύοέʔδҰཡΛදࣔ
TQSFBETIFFU &YDFMϑΝΠϧΛૢ࡞͢ΔHFN
TQSFBETIFFU &YDFMϑΝΠϧΛಡΈॻ͖͢ΔHFN &YDFM͕Πϯετʔϧ͞Ε͍ͯͳͯ͘ɺ 8JOEPXTҎ֎Ͱಈ࡞͠·͢ɻ HFNJOTUBMMTQSFBETIFFU TIFMM͔ΒҎԼͷίϚϯυΛ࣮ߦ͢ΔͱΠϯετʔ ϧͰ͖·͢ɻ ˞VCVOUVͷ߹TVEPHFNJOTUBMMTQSFBETIFFU
TQSFBETIFFUHFNԋश &YDFMϑΝΠϧΛ৽ن࡞ SFRVJSFTQSFBETIFFU CPPL4QSFBETIFFU8PSLCPPLOFX TIFFUCPPLDSFBUF@XPSLTIFFU TIFFU< >UFTUJOH CPPLXSJUF FYBNQMFYMT طଘͷ&YDFMϑΝΠϧΛ։͍ͯผ໊Ͱอଘ
SFRVJSFTQSFBETIFFU CPPL4QSFBETIFFUPQFO FYBNQMFYMT TIFFUCPPLXPSLTIFFU QTUSTIFFU< > TIFFU< >IFMMP CPPLXSJUF FYBNQMFYMT HFNJOTUBMMTQSFBETIFFU TQFSFBETIFFUHFNΛΠϯετʔϧ ˞4QSFBETIFFU8PSLCPPL ɺ4QSFBETIFFUϞδϡʔϧͷதͷ 8PSLCPPLΫϥεͷҙຯͰ͢ɻઌि આ໌ͨ͠Ϟδϡʔϧʹ͜ͷΑ͏ʹछ ྨΛ໊͚ͯલΛ͚ͭΔ͍ํ͋Γ ·͢ɻ·ͨ࣍ճҎ߱ͷߨٛͰग़͖ͯͨ ࡍʹઆ໌͠·͢ɻ
5XJUUFS UXJUUFSΛݕࡧͨ͠Γૢ࡞ͨ͠Γ͢ΔHFN
IUUQUXJUUFSSVCZGPSHFPSH
UXJUUFSHFNԋश UXJUUFSͰϢʔβʔ͕ͭͿ͍͍ͯΔʮ࠷ۙฉ͍͍ͯΔۂʯΛௐΔ SFRVJSFUXJUUFS 5XJUUFSTFBSDI OPXQMBZJOH SQQ SFTVMU@UZQFSFDFOU FBDIEPcTUBUVTc QVUT\TUBUVTGSPN@VTFS^\TUBUVTUFYU^
FOE HFNJOTUBMMUXJUUFS UXJUUFSHFNΛΠϯετʔϧ OPXQMBZJOHͱ͍͏ݴ༿ೖΓͷUXFFUΛ࠷৽݅ݕࡧ͢Δ ݅ ͜ͷݴ༿ΛؚΉ ͭͿ͍ͨϢʔβʔ ͭͿ͖༰
ԋशղઆɹจࣈྻදࣔ QVUT\TUBUVTGSPN@VTFS^\TUBUVTUFYU^ \ม໊^ͱॻ͘ͱɺจࣈྻʹมͷ༰ΛຒΊࠐΉ͜ͱ͕Ͱ͖· ͢ɻ OBNFJHBSBTIJ QVUT"VUIPS\OBNF^"VUIPSJHBSBTIJ มOBNFͷத͕දࣔ͞ΕΔ OBNFJHBSBTIJ UFYU"VUIPS\OBNF^ UFYU"VUIPSJHBSBTIJ
ಉ͡ಈ࡞ ҎԼͷͭͷίʔυಉ͡ಈ࡞Ͱ͢ɻ
ԋशղઆɹจࣈྻදࣔ 3VCZʹछྨͷจࣈྻͷදݱํ๏͕͋Γ·͢ɻ μϒϧΫΦʔτͱγϯάϧΫΦʔτͰ͢ɻ લͷϖʔδͰઆ໌ͨ͠มͷதΛදࣔ͢Δ߹μϒϧΫΦʔτΛ ͏ඞཁ͕͋Γ·͢ɻ OBNFJHBSBTIJ QVUT"VUIPS\OBNF^"VUIPSJHBSBTIJ มOBNFͷத͕දࣔ͞ΕΔ OBNFJHBSBTIJ QVUT"VUIPS\OBNF^"VUIPS\OBNF^
มOBNFͷத͕දࣔ͞Εͣɺͦͷ··ग़ྗ͞ΕΔ μϒϧΫΦʔτɿ\ม໊^ͱॻ͘ͱมͷதΛදࣔ γϯάϧΫΦʔτɿ\ม໊^ͱॻ͘ͱͦͷ··දࣔ
ԋशղઆҾͷ)BTIͷলུܗ 5XJUUFSTFBSDI OPXQMBZJOH SQQ SFTVMU@UZQFSFDFOU ͜ͷ෦ɺݟ׳Εͳ͍ॻ͖ํΛ͍ͯ͠·͢ɻ 5XJUUFSTFBSDI OPXQMBZJOH \SQQ SFTVMU@UZQFSFDFOU^
লུ͠ͳ͍Ͱॻ͘ͱҎԼͷΑ͏ʹͳΓ·͢ɻ ൪ͷҾจࣈྻ ൪ͷҾ)BTIͰ\^Λলུ 3VCZͰΑ͘ΘΕΔςΫχοΫͰɺͨͱ͑ෳͷΦϓγϣϯΛҾ ͱ͍ͯͨ͠͠ͱ͖ʹ)BTIΛ͢͜ͱ͕͋Γ·͢ɻΩʔ͕આ໌จ ͷΛͯ͘͠ΕͯಡΈ͍͔͢ΒͰ͢ɻ ͦͷࡍʹᐆດʹͳΒͳ͚Ε)BTIͷ\^Λলུͯ͠ॻ͚·͢ɻ
None
ߨٛࢿྉஔ͖ ߨٛࢿྉஔ͖Λͭ͘Γ·ͨ͠ɻ աڈͷࢿྉ͕%-Ͱ͖·͢ɻ IUUQTHJUIVCDPNIJUPUTVCBTIJSVCZMFDUVSF PS IUUQCJUMZSVCZMFDUVSF
ࡶஊɾ࣭༻GBDFCPPLάϧʔϓ GBDFCPPLάϧʔϓΛ࡞Γ·ͨ͠ IUUQTXXXGBDFCPPLDPNHSPVQTIJUPUTVCBTIJSC ɾՃೖඇՃೖࣗ༝Ͱ͢ ɾՃೖඇՃೖʹؔ͠·ͤΜ ɾࢀՃऀҰཡެ։͞Ε·͢ ɾॻ͖ࠐΈࢀՃऀͷΈݟ͑·͢ ɾرऀΞΫηεͯ͠ࢀՃਃ͍ͯͩ͘͠͞ ɾࡶஊɺ࣭ɺٞͳͲԿͰؾʹͤͣͲ͏ͧʙ ɾ࣭ʹ͑ΒΕΔਓ͍͑ͯ͋͛ͯͩ͘͞
ɾߨࢣਞ͓͑͠·͢ ɾೖͬͨΒܰࣗ͘ݾհ͓Ͷ͕͍͠·͢