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やRailsをはじめる人を応援したい
Search
Kuniaki IGARASHI
December 08, 2012
0
470
RubyやRailsをはじめる人を応援したい
2012.12.8 at RejectTokyoRubyKaigi10
Kuniaki IGARASHI
December 08, 2012
Tweet
Share
More Decks by Kuniaki IGARASHI
See All by Kuniaki IGARASHI
KaigiOnRails2024
igaiga
11
15k
RuboSensei
igaiga
0
260
Shibuya.rb-2023-04-27-igaiga
igaiga
1
490
Ginza Rails27 igaiga
igaiga
9
13k
tork09igaiga
igaiga
2
310
Road to white mages
igaiga
1
660
Road to white mages
igaiga
8
4k
dive_into_code_rails_ruby_books
igaiga
0
230
ginza_rails_vol3_igaiga
igaiga
0
4.9k
Featured
See All Featured
Six Lessons from altMBA
skipperchong
27
3.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
For a Future-Friendly Web
brad_frost
176
9.6k
Facilitating Awesome Meetings
lara
53
6.3k
Making Projects Easy
brettharned
116
6k
The Cult of Friendly URLs
andyhume
78
6.2k
BBQ
matthewcrist
87
9.5k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Why Our Code Smells
bkeepers
PRO
336
57k
Transcript
3VCZ3BJMTΛ ͡ΊΔਓΛ Ԡԉ͍ͨ͠ ,VOJBLJ*("3"4)*JHBJHB BU3FKFDU5PLZP3VCZ,BJHJ
ޒेཛྷ໌ גࣜձࣾສ༿ɹΤϯδχΞ UXJUUFS!JHBJHB GBDFCPPLIUUQGBDFCPPLDPNLVOJBLJJHBSBTIJ QIPUPCZLPJDIJSPPIUUQXXXqJDLSDPNQIPUPTLPJDIJSPP
ఏڙ גࣜձࣾສ༿
None
֤Ͱಅ ٻΊΔਓͷ܈Ε
݄ΑΓඇৗۈߨࢣ
None
None
ఏڙOJGUZ༷
None
จܥͷֶՊ
ߨٛͰ Ή͔͍ͣ͜͠ͱ
ֶੜ͞Μͷ স͍ΛͱΔ͜ͱ
5FBDIJOH"TTJTUBOU ᖛ࡚݈ޗ ΫοΫύουגࣜձࣾɹΤϯδχΞ 5"ͷᖛ࡚͞Μᐌ͘
ޒेཛྷ͞Μɺ ͋ͦ͜ ਓड͚ͯ·ͨ͠Αɻ ˞ֶੜਓ
͍͢͝Ͱ͢Ͷɺ ਓসͬͯ·ͨ͠Αɻ ˞ֶੜਓ
ͦΜͳϨϕϧ
ͪͳΈʹ ߨٛͰҰ൪ ड͚ͨͷ
None
ίϨˢ
ίϨˢ
None
None
None
͟Θ͟Θ ͟Θ͟Θ
͟Θ͟Θ ͟Θ͟Θ ͛͢ʔ
͟Θ͟Θ ͟Θ͟Θ ͛͢ʔ ͋ͷਓYYͬͯͷ ಡΊΔͷ
ΜͩΓ͢Δ ͚ΕͲ
ڭ͑Δ͜ͱ ͨͷ͍͠ʂ
ʆɾТɾ
ʆɾТɾ λ
ʆɾТɾ λɹλ
ʆɾТɾ λɹλɹλο
ʆɾТɾ λɹλɹλο λʔϯ
ɾʄƅɾ Ň ˜ ŰƅōōŇ ɾʄƅɾ ಈ͍ͨʙ
͔Βͷ
ϋΠλον
ϋΠλον
3BJMTॳΊͯͷਓ͚ʹ 3BJMTΛମݧ͢Δ ϫʔΫγϣοϓΠϕϯτ ૿͖͑ͯ·ͨ͠
None
None
None
None
None
None
None
None
None
3VCZBOE3BJMTΛ ͡ΊΔͱ͖ ͍͜͠ͱ
ڥߏங
ͱ͍͑ɺ ͍Ζ͍ΖศརʹͳͬͨͷͰ ͦΕ΄Ͳ͋͘͠Γ·ͤΜ
8JOEPXT3BJMT*OTUBMMFS 3BJMTΠϯετʔϥʔΛ%PXOMPBE *OTUBMM IUUQSBJMTJOTUBMMFSPSH ໊લͱFNBJMΛೖྗ ެ։͞Ε·͢ɻ HJUͷઃఆͰΘΕ·͢ɻ ىಈ8JOEPXTϝχϡʔ͔ΒҎԼΛ࣮ߦ ʮϓϩάϥϜͱϑΝΠϧͷݕࡧʯ͔Β$PNNBOE1SPNQUXJUI3VCZBOE3BJMTPS ελʔτˠશͯͷϓϩάϥϜˠ3BJMT*OTUBMMFSˠ$PNNBOE1SPNQUXJUI3VCZBOE3BJMT
˞3BJMT*OTUBMMFSͱ͍͏໊લͰ͕͢ɺ3VCZ͚ͩ͏ͷͳ͍Ͱ͢ɻ
.BD3BJMT*OTUBMMFS 3BJMTΠϯετʔϥʔΛ%PXOMPBE *OTUBMM IUUQSBJMTJOTUBMMFSPSH ໊લͱFNBJMΛೖྗ ެ։͞Ε·͢ɻ HJUͷઃఆͰΘΕ·͢ɻ λʔϛφϧ͔Β3VCZͱ3BJMT͕͑·͢ɻ ˞3BJMT*OTUBMMFSͱ͍͏໊લͰ͕͢ɺ3VCZ͚ͩ͏ͷͳ͍Ͱ͢ɻ
6CVOUV7. ΦϨΦϨΠϝʔδެ։த 3VCZQ 3BJMT IUUQTHJUIVCDPNIJUPUTVCBTIJSVCZMFDUVSF Πϯετʔϧํ๏ͳͲIUUQTTQFBLFSEFDLDPNJHBJHBSVCZ
6CVOUV BQUߋ৽ TVEPBQUHFUVQEBUF TVEPBQUHFUVQHSBEF جຊύοΫ TVEPBQUHFUJOTUBMMCVJMEFTTFOUJBMPQFOTTMMJCSFBEMJOFMJCSFBEMJOFEFWDVSM HJUDPSF[MJCH[MJCHEFWMJCTTMEFWMJCZBNMEFWMJCTRMJUFMJCTRMJUFEFWTRMJUF MJCYNMEFWMJCYTMUEFWBVUPDPOGMJCDEFWODVSTFTEFWBVUPNBLFMJCUPPMCJTPO TVCWFSTJPO[TITDSFFOWJN 3VCZ
XHFUGUQGUQSVCZMBOHPSHQVCSVCZSVCZQUBSH[ UBSYW[GSVCZQUBSH[ DESVCZQ DPOpHVSF NBLF TVEPNBLFJOTUBMM 3BJMT TVEPHFNJOTUBMMSBJMT TVEPBQUHFUJOTUBMMOPEFKT
͡Ί͔ͨ
8FCΞϓϦ ͍Ζ͍Ζ͕ࣝඞཁ͚ͩͲ 3VCZPO3BJMT 3PVUFT $POUSPMMFS 7JFX .PEFM 3&45GVM %BUBCBTF "QBDIF
1BTTFOHFS +BWBTDSJQU "+"9 K2VFSZ )5.- $44 (FNT 34QFD
·ͣͲΜͳ͜ͱ͕ Ͱ͖Δͷ͔ ମݧͯ͠Β͏
ྫɿը૾ߘΞϓϦ TQPOTPSFECZ+4BUP
ͭ͘Γ͔ͨ SBJMTOFXCMPH@BQQ DECMPH@BQQ CVOEMFFYFDSBJMTHTDBGGPMETUPSZUJUMFTUSJOH ɹ
ɹ EFTDSJQUJPOUFYUQJDUVSFTUSJOH CVOEMFFYFDSBLFECNJHSBUF IUUQMPDBMIPTUTUPSJFT CVOEMFFYFDSBJMTT ϒϥβͰ্هͷΞυϨεΞΫηεͯ͠ಈ࡞֬ೝͯ͠Έ·͠ΐ ͏ɻ֬ೝͰ͖ͨΒSBJMTTΛࢭΊͯ࣍͗ਐΈ·͢ɻ
HFNͷར༻ (FNpMF HFNDBSSJFSXBWF ը૾Λߘ͢ΔػೳΛ͚ΔͨΊʹɺ DBSSJFSXBWFͱ͍͏HFNΛ͍·͢ɻ 3BJMTΞϓϦͰHFNΛར༻͢Δ߹ɺ (FNpMFʹҎԼΛ͠·͢ɻ (FNpMFCMPH@BQQϑΥϧμͷԼʹ͋Γ·͢ɻ Ճ͢Δॴྫ͑HFNTRMJUFͷ࣍ͷߦɻ CVOEMF
CVOEMFCVOEMFJOTUBMMͷུͰɺ(FNpMFʹ৽ ͘͠Ճͨ͠HFNΛΠϯετʔϧ͢ΔίϚϯυͰ͢ɻ ฤूͨ͠(FNpMFΛөͤ͞·͢ɻ
ϑΝΠϧΞοϓϩʔυͷ࣮ NPVOU@VQMPBEFSQJDUVSF 1JDUVSF6QMPBEFS CVOEMFFYFDSBJMTHVQMPBEFS1JDUVSF DBSSJFSXBWFHFNΛར༻͢ΔͨΊͷखଓ͖Λ͠·͢ɻ ࠷ॳʹඞཁͳϑΝΠϧΛੜ͠·͢ɻ ࣍ʹϑΝΠϧΛमਖ਼͠·͢ɻ BQQNPEFMTTUPSZSC DMBTT4UPSZ"DUJWF3FDPSE#BTFͷ࣍ͷߦҎԼՃ ࣍ͷϖʔδͭͮ͘
GUFYU@pFMEQJDUVSF BQQWJFXTTUPSJFT@GPSNIUNMFSCΛՕॴमਖ਼ GpMF@pFMEQJDUVSF ҎԼͷΑ͏ʹมߋ GPSN@GPS !TUPSZ EPcGc GPSN@GPS !TUPSZ IUNM\NVMUJQBSUUSVF^
EPcGc ҎԼͷΑ͏ʹมߋ ͖ͭͮ BQQWJFXTTUPSJFTTIPXIUNMFSCΛՕॴमਖ਼ !TUPSZQJDUVSF JNBHF@UBH !TUPSZQJDUVSF@VSM XJEUI JG!TUPSZQJDUVSFQSFTFOU ҎԼͷΑ͏ʹมߋ
ϒϥβ͔Βಈ࡞֬ೝ SBJMTTΛ࠶ىಈͯ͠ಈ࡞֬ೝͯ͠Έ·͠ΐ͏ɻ IUUQMPDBMIPTUTUPSJFT CVOEMFFYFDSBJMTT ϒϥβͰ্هͷΞυϨεΞΫηε /FXTUPSZϖʔδͰ1JDUVSFʹ ϑΝΠϧΛબͯ͠อଘ͢Δͱɺ ը૾ϑΝΠϧΛVQMPBEͰ͖·͢ɻ
Ͱ͖ͯͨٙΛ આ໌͍ͯ͘͠
Έ
Ϛονͨ͠ ڭՊॻ͕ͳ͍
ੈͷதʹຊ ͨ͘͞Μ ͋Δ͚ΕͲ
ଟ͘ͷຊͷ ର ϓϩάϥϚ
ϓϩάϥϜΛॳ Ίͯॻ͘ਓʹ ෑډ͕ߴ͍
ࢲͷߨٛͰ
ͨͷ͍͠3VCZ ʴ ࣗ࡞
ͨͷ͍͠3VCZ ࢿྉͰิ ԋश ֤ڥͰͷ࣮ߦํ๏ ϓϩάϥϜతͳࢥߟํ๏
IUUQTHJUIVCDPNIJUPUTVCBTIJSVCZMFDUVSF
3VCZฤ TIFMM JSC SC ࢛ଇԋࢉɺຊޠɺม ݅அɺ܁Γฦ͠ɺϝιου "SSBZɺ)BTI ΦϒδΣΫτɺΫϥεɺΠϯελϯε 8JLJQFEJBΞΫηεղੳ UXJUUFSσʔλͷղੳ
IUUQTHJUIVCDPNIJUPUTVCBTIJSVCZMFDUVSF
3BJMTฤ ɾҰ൪খ͞ͳ3BJMTΞϓϦͭ͘Γ DPOUSPMMFS WJFX ɾ3VCZͷΫϥεΛ3BJMTຒΊࠐΉ ͓Έ͘͡ΞϓϦ ɾ$36%ղઆ ϦΫΤετ
SPVUFT DPOUSPMMFS WJFX NPEFM ɾσόοά $ISPNFͰϦΫΤετΛ؍ɺQɺMPHɺQSZ IUUQTHJUIVCDPNIJUPUTVCBTIJSVCZMFDUVSF
ͨͷ͍͠ αϯϓϧ
IUUQXXXFTUBUHPKQ4(FTUBU-JTUEP CJEDZDPEF
None
IUUQTHJTUHJUIVCDPN
Ͱࢿྉࣗ࡞େม
िץ࿈ࡌ࡞Ոؾ
8FC্ͷࢿྉͷ׆༻
ϛχπΫCZ/B$M
υοτΠϯετʔϧ
υοτΠϯετʔϧ
υοτΠϯετʔϧ
$PEFDBEFNZ આ໌ͱώϯτ )5.- $44ͳͲ ίʔυΛॻ͚Δ
$PEFDBEFNZ ͦͷͰॻ͍ͨ ݁ՌΛݟΒΕΔ
IUUQUSZSVCZPSH ͜͜ʹ3VCZίʔυΛ ೖྗ࣮ͯ͠ߦͰ͖·͢ ϓϩάϥϜΛফ͍ͨ͠ ߹Ϧϩʔυ IFMQͰ3VCZϨοεϯ։࢝
΄͔ʹ
ࡶஊ ɾจԽΛ͑Δ ɾՀཟͱόβʔϧ ɾ5Χʔυ ɾΞϧΰϦζϜτϨʔυ ɾ౦෩ʢຑʣ ɾ3VCZ$POG ɾถେ౷ྖબڍ ɾΫοΫύου࠷ڧ
)BWFB )BQQZ3VCZ5JNF