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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
120
ActiveJobUpdates
igaiga
1
680
roppongirb_20250911
igaiga
1
760
igaiga Ruby Association Activity Report 2025 LT
igaiga
1
160
KaigiOnRails2024
igaiga
16
25k
RuboSensei
igaiga
0
360
Shibuya.rb-2023-04-27-igaiga
igaiga
1
600
Ginza Rails27 igaiga
igaiga
9
14k
tork09igaiga
igaiga
2
430
Other Decks in Technology
See All in Technology
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
1
690
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
3
860
変更し続けられるシステムをどう保つか — AI時代のSSoTという設計原則
kawauso
1
260
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
3
1.1k
公式ドキュメントの歩き方etc
coco_se
1
120
OpenTelemetryにおけるGoのゼロコード・コンパイル時計装について #fukuokago
quiver
0
130
ソニー銀行におけるビジネスアジリティ向上のためのクラウドシフト戦略
srenext
0
870
「顧客の声を聞かなければ何も始まらない」 ── 顧客の声から生まれた『AI返信補助機能』の開発プロセス / AICon2026_shikata_imai
rakus_dev
0
150
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
420
企業でAWS Organizationsを動かすための組織設計の考え方
nrinetcom
PRO
1
110
AI Coding Agent時代のcdk-nagガードレール 〜組織ルールを強制CIで守り抜く設計の挑戦〜
mhrtech
3
440
知らん間に、回ってる
ming_ayami
0
740
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Evolving SEO for Evolving Search Engines
ryanjones
0
240
How GitHub (no longer) Works
holman
316
150k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
770
Side Projects
sachag
455
43k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
630
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 ɾՃೖඇՃೖࣗ༝Ͱ͢ ɾՃೖඇՃೖʹؔ͠·ͤΜ ɾࢀՃऀҰཡެ։͞Ε·͢ ɾॻ͖ࠐΈࢀՃऀͷΈݟ͑·͢ ɾرऀΞΫηεͯ͠ࢀՃਃ͍ͯͩ͘͠͞ ɾࡶஊɺ࣭ɺٞͳͲԿͰؾʹͤͣͲ͏ͧʙ ɾ࣭ʹ͑ΒΕΔਓ͍͑ͯ͋͛ͯͩ͘͞
ɾߨࢣਞ͓͑͠·͢ ɾೖͬͨΒܰࣗ͘ݾհ͓Ͷ͕͍͠·͢