Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
150
ActiveJobUpdates
igaiga
1
770
roppongirb_20250911
igaiga
1
810
igaiga Ruby Association Activity Report 2025 LT
igaiga
1
180
KaigiOnRails2024
igaiga
16
25k
RuboSensei
igaiga
0
380
Shibuya.rb-2023-04-27-igaiga
igaiga
1
610
Ginza Rails27 igaiga
igaiga
9
14k
tork09igaiga
igaiga
2
440
Other Decks in Technology
See All in Technology
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
560
Oracle Cloud Network Path Analyzerを試してみた/I Tried Out Oracle Cloud Network Path Analyzer
masakiokuda
1
110
LLMに渡さなかった仕事
nanaism
0
1.4k
AIエージェントの権限管理 3: Agentic RAG の Fine grained access control 編
ren8k
1
240
あけおめLINE 傾向とその対策
nasa9084
0
310
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1.6k
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
1
250
GoのInterface内部構造から学ぶ!最高パフォーマンスを出すコード設計
yappli_developers
1
280
Antigravity SDK for the Java Developer
glaforge
0
190
CI/CDではもう遅い - 人とAIが迂回しないDevSecOps Verify基盤の再設計 -
kintotechdev
0
110
Genieを崇めよ
kameitomohiro
0
170
【ゲームメーカーズスクランブル2026】『Shadowverse: Worlds Beyond』UIとアニメーションで実現する最高のユーザー体験を叶えるプロトタイピング
cygames
PRO
0
330
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
464
34k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Navigating Weather and Climate Data
rabernat
0
530
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Odyssey Design
rkendrick25
PRO
2
810
Building an army of robots
kneath
307
46k
Accessibility Awareness
sabderemane
1
220
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
250
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The Invisible Side of Design
smashingmag
301
52k
Designing Experiences People Love
moore
143
24k
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 ɾՃೖඇՃೖࣗ༝Ͱ͢ ɾՃೖඇՃೖʹؔ͠·ͤΜ ɾࢀՃऀҰཡެ։͞Ε·͢ ɾॻ͖ࠐΈࢀՃऀͷΈݟ͑·͢ ɾرऀΞΫηεͯ͠ࢀՃਃ͍ͯͩ͘͠͞ ɾࡶஊɺ࣭ɺٞͳͲԿͰؾʹͤͣͲ͏ͧʙ ɾ࣭ʹ͑ΒΕΔਓ͍͑ͯ͋͛ͯͩ͘͞
ɾߨࢣਞ͓͑͠·͢ ɾೖͬͨΒܰࣗ͘ݾհ͓Ͷ͕͍͠·͢