ͯͳϒϩά࠷ۙͷ։ൃςΫχοΫͱ࠷৽ͷ։ൃ෩ܠͷ͝հ
View Slide
IJUPEFژ͔Βདྷ·ͨͯ͠ͳϒϩάΛ։ൃ͍ͯ͠Δ
ͯͳϒϩάʙࠓ
҆ఆͯ͠։ൃΛଓ͚ΔͨΊͷऔΓΈͦͷͱ͖ʹߟ͑ͨ͜ͱίπ
ؒͷาΈ
ʙ03.Θͳ͍ബ͍ϑϨʔϜϫʔΫ
42-खॻ͖.PEFMख࡞Γ42-$POUSPMMFS͔Βൃߦ
ʙ42-ίϐϖ4FSWJDFΫϥε͔Β42-Λൃߦ
υϝΠϯۦಈઃܭ͕ྲྀߦΔϢϏΩλεݴޠΦϒδΣΫτΤϯςΟςΟ
:"1$"4*"1FSMͷ্ʹࡾͣͬͱΠέͯΔαʔϏεΛ࡞Γଓ͚Δٕज़
ઃܭϞσϦϯάͷؔ৺ͷߴ·ΓಡॻձΛͬͨΓ
Ұํͦͷࠒ
ϑϩϯτΤϯυڊେͳϑΝΠϧˠ#SPXTFSJGZͰׂK2VFSZˠ3FBDU
αʔόαΠυͷ1FSMϑϩϯτΤϯυͷ+4͜ΕΒ͕Α͚Ε࠷ߴ
αʔόαΠυͷ1FSMϑϩϯτΤϯυͷ+4͜ΕΒ͕Α͚Ε࠷ߴ͔ͱ͍͏ͱͦ͏Ͱͳ͍
)5.-ͷ৴ૉͳΒ͕͠ଓ͍͍ͯͨ
ϒϩάαʔϏεϒϩάΛ৴͢ΔαʔϏεσβΠϯΧελϚΠζදࣔ༰ͷΓସ͑Φϓγϣϯͳ͔ͳ͔ෳࡶͳΘΓʹύϥμΠϜ͕ݹ͍
7JFXΛ͖Ε͍ʹอͭͷ͕͍͠
9TMBUFͷ55FSTFΛ͍ͬͯΔݴޠػೳ͕ૉڽͬͨ͜ͱͤͣී௨ʹ͍ͬͯΔ͚ͩؒύϥμΠϜͷਐԽ͕ͱ͘ʹͳ͍
ૉͳ7JFXͷੈք؍7JFXଆͰมΛએݴͤͣ$POUSPMMFS͔ΒͤݺΔςϯϓϨʔτׂͷࢦ͕ͳ͍)5.-λάͰͳ͘จࣈྻΛѻ͍ͬͯΔ
7JFXΛͳΜͱ͔͢Δ7JFX.PEFMԽ3FBDUԽ੩తղੳ͕ͯ͠ΜΔ
ෳࡶͳϩδοΫΛ7JFX.PEFMʹҠ͢
ϩδοΫΛॻ͘ͱͳ͔ͳ͔େม
ϖʔδJEΛ༻͍ͯબதͷλϒΛϋΠϥΠτ
<*'QBHF@JEbVTFSCMPHDPOpHccQBHF@JEbVTFSCMPHDPOpHEFUBJMccQBHF@JEbVTFSCMPHDPOpHQFSNJTTJPO>TFMFDUFE<&/%>ૉʹॻ͘ͱ
දࣔ༻ͷཧը໘αΠυόʔΛ͋ΒΘ͢ΫϥεΛ࡞Δ
<*'TJEFCBSTFMFDUFE@UBC@JT CMPHDPOpH>TFMFDUFE<&/%>
)BUFOB&QJD7JFX"EBQUFS"ENJO4JEFCBSλϒ໊Λ͢ͱɼબத͔Ͳ͏͔ڭ͑ͯ͘ΕΔී௨ͷ1FSMͷΫϥεͳͷͰςετՄೳ
͍͜͠ͱΛ͢Δͱ͖3FBDUͰॻ͖͢
چདྷɿ55ˠK2VFSZ࠷ۙɿ࠷ॳ͔Β3FBDU
ཧը໘Ϋϩʔϧ͞ΕΔඞཁͳ͍ಈతͳཁૉ͕ଟ͍
ಈతͳͱ͜Ζ·ͣ3FBDUͰॻ͖ͨ͠Γ͍ͯ͠Δ
QSPQ5ZQFTͰσʔλߏΛνΣοΫFTMJOUͰղੳϨϯμϦϯάͷςετ
จࣈྻͰͳ͘λά୯ҐࣗવͱߏԽ͞ΕΔ
੩తղੳ͕ͯ͠ΜΔ
1$εϚʔτϑΥϯ".1
ࣅ͍ͯΔ͕ͪΐͬͱ͕ͪ͏ίϐϖͯ͠ฤू͕ͪ͠
੩తղੳͯ͠ཧ͢Δ
YSUYTMBUFSFGBDUPSJOHUPPM
XSJUUFOJO3VCZ
XSJUUFOJO3VCZ94MBUFʹґଘ͠ͳ͍ͨΊ1FSMͱผݴޠͰ࣮
55ͷจ๏Λύʔεύʔεͨ͠ใΛදࣔϦϑΝΫλϦϯά
ύʔε<ʙ>จࣈͣͭݟ͍ͯ͘
ϒϩοΫͷݕग़ 55<*'>ʜ<&/%>
ϒϩοΫͷݕग़ )5.-EJWʜEJW
55ͱ)5.-ಉ࣌ʹύʔε
ػೳωετͷදࣔॏෳ͢ΔϒϩοΫͷݕग़ผϑΝΠϧʹΓग़͠
ωετͷදࣔ
YSUEVNQUFNQMBUFTTBNQMFIUNM%VNQJOHUFNQMBUFTTBNQMFIUNMIUNMCPEZ<'03JUFN*/JUFNT><*'JUFNUJUMF>I<UJUMF>I<&/%><&/%>CPEZIUNM
ωετͷେ͖͍ͱ͜Ζ͔Βཧ࠷େͰωετͷͱ͜Ζ͋ͬͨ
ࢦఆͨ͠ϒϩοΫͷΓग़͠
UFNQBMUFTTBNQMFIUNMIUNMCPEZ<'03JUFN*/JUFNT><*'JUFNUJUMF>I<UJUMF>I<&/%><&/%>CPEZIUNM
YSUFYUSBDUUFNQMBUFTTBNQMFIUNM<'03JUFN*/JUFNT>UFNQMBUFT@JUFNTUU
UFNQBMUFTTBNQMFIUNMIUNMCPEZ<*/$-6%&@JUFNTUU>CPEZIUNMUFNQMBUFT@JUFNTUU<'03JUFN*/JUFNT><*'JUFNUJUMF>I<UJUMF>I<&/%><&/%>
ࢦఆ͞ΕͨϒϩοΫΛൈ͖ग़͢ϑΝΠϧʹॻ͖ग़͠*/$-6%&จΛ༻ҙΠϯσϯτΛௐ
ͳΔ͘খ͚ʹ͍ͯ͘͠࡞ઓҙຯͷ·ͱ·Γ͝ͱʹׂ࠷খͰϑΝΠϧλά
@XSBQQFSDBOPOJDBMUU<*'DBOPOJDBM>MJOLSFMDBOPOJDBMISFG<DBOPOJDBM><&/%>
ཧ͍ͯ͘͠ͱݟ͑Δͷෆཁͳϑϥάॏෳ
੩తղੳ͠·͠ΐ͏
දݱྗͷऑ͍ͱ͜ΖͰ͍͜͠ͱΛ͠ͳ͍1FSMʹدͤͨΓ+4ʹدͤͨΓ
IUUQTXXXBNB[PODPKQ&"$&"$&#&#$&#%&&&"&"&"&#&&"$&"&0CKFDU0SJFOUFE4FMFDUJPO&"'&""&#&##&&#$&&"&"#EQ
IUUQTXXXBNB[PODPKQ&"$&"$&#&#$&#%&&&"&"&"&#&&"$&"&0CKFDU0SJFOUFE4FMFDUJPO&"'&""&#&##&&#$&&"&"#EQϨΨγʔίʔυվળΨΠυͰͳ͍ͣͭ͢͜͠վળ͔ΒϑϧεΫϥον·Ͱ7JFX.PEFMͷ
ΞϓϦέʔγϣϯʹ৽͍͠άοζΛಋೖ͢Δͱ͖ͷίπ࿈ଓతʹҠߦͰ͖ΔҰൠతͳ֓೦Ͱ͋Δࣦഊͨ͠ΒݩʹͤΔ
࿈ଓతʹҠߦͰ͖Δن͕େ͖͍ͱҰؾʹॻ͖͑ΔͷࠔࠔͬͯΔͱ͜Ζ͔ΒඞཁʹԠ͍ͯͬͯ͘͡
Ұൠతͳ֓೦Ͱ͋Δಠࣗͷ֓೦ΑΓɼطଘͷ֓೦ͷ΄͏͕शಘ͍͢͠ຊΛಡΊ͔Δͱ͔
ࣦഊͨ͠ΒݩʹͤΔͬͯΈ͚ͨͲ͋·ΓΑ͘ͳ͔ͬͨΒఫୀͰ͖Δͱͷͧ·͍͠ӡ༻தʹঢ়گ͕มԽͯࣗ͠વͱফ͑Δ߹
7JFXͩΜͩΜྑ͘ͳ͍ͬͯΔ͓ΘΓ
αʔόαΠυͷ1FSMϑϩϯτΤϯυͷ+4)5.-ͷΈཱͯ͜ΕΒ͕Α͚Ε࠷ߴ
αʔόαΠυͷ1FSMϑϩϯτΤϯυͷ+4)5.-ͷΈཱͯ͜ΕΒ͕Α͚Ε࠷ߴ͔ͱ͍͏ͱͦ͏Ͱͳ͍
ϓϩμΫγϣϯͷίʔυҎ֎ίʔυΛॻ͘ڥॻ͍ͨίʔυΛϦϦʔε͢Δ
खݩͷ։ൃڥͷσβΠφʔͱͷ࿈ܞ
ͯͳͷσβΠφʔσβΠϯϚʔΫΞοϓ)5.-9TMBUF3FBDU6OEFSTDPSF5FNQMBUF
Ϟμϯͳπʔϧ͕ͳ͍ͱ։ൃେมσβΠφʔͷΤσΟλ"UPN 4VCMJNF5FYU͔Β"UPNʹ౷Ұ
ηοτΞοϓΛख͏3FBDUܥͷϓϥάΠϯೖΕΔFTMJOUೖΕΔΠϯσϯτͷઃఆFEJUPSDPOpH
Πϯσϯτ +4ͱ +49ࠞࡏ͍ͯͨ͠ͷΛʹଗ͑ͨ
ΠϯσϯτˠFTMJOUpYίϝϯτਖ਼نදݱͰ͞ʹ
`git grep --name-only -P '^ +//' -- src/js/`.split(/\n/).each{|path|source=open(path).read; open(path, 'w'){|f|f.write source.gsub(/^( +)\/\//){|space| ''*(space.length/2-1) +'//'} } }
λϒԡͨ͠ΒΠϯσϯτଗ͏Α͏ʹΩʔόΠϯυͷઃఆ
JGϧʔϓ50%0Ͱॻ͍ͯΒ͏ΤϯδχΞ͕͋ͱ͔Βಈ͔͍͢͠ͱ͜ΖϖΞϚʔΫΞοϓ
MJOUͱ͔Πϯσϯτͱ͔ΤσΟλͷࢧԉΛօ͕ड͚ΒΕΔ
։ൃڥΛ࡞ΔίπΤσΟλͷΧελϚΠζझຯͰͳ͘ࣄ
։ൃڥखݩͰ1FSM .Z42- NFNDBIDFE &MBTUJDTFBSDIͳͲಈ͔͍ͯ͠Δ
TDSJQUTFUVQ1FSMΠϯετʔϧ%#εΩʔϚͷηοτΞοϓOPEFͷηοτΞοϓ1ZUIPOηοτΞοϓ&MBTUJDTFBSDIͷΠϯσοΫε࡞Δ
Α͋͘Δձ
ʮखݩͰΤϥʔ͕ग़·ͨ͠ʯʮΤϥʔϩάΛష͍ͬͯͩ͘͞ʯʮషΓ·ͨ͠ʯʮ͏গ্͠ష͍ͬͯͩ͘͞ʯ
σβΠφʹͱͬͯɼͲ͜·Ͱ͕Τϥʔ͔͔Βͳ͍ΤϯδχΞʹͱͬͯɼσβΠφͷखݩͷঢ়گΛѲ͢Δͷ͕͍͠
ͲͷϒϥϯνͰ ԿΛͨ͠Β Ͳ͏ͳͬͨͷ͔ ηοτΞοϓे͔ ฉ͘͜ͱ͍Ζ͍Ζ͋Δ
ԣʹ͍Εը໘ݟʹߦ͚ΔϦϞʔτͩͱखؒ
ࣗಈͰखݩͷΤϥʔΛ4MBDLʹྲྀ͢1MBDL.JEEMFXBSF
1MBDL.JEEMFXBSF1PTU&SSPS5P4MBDL୭͕ͲͷϒϥϯνͷͲͷ63-ͰͲΜͳΤϥʔʹૺ۰͔ͨ͠
ݺΕΔલʹαϙʔτͰ͖ͯศར
։ൃڥΛ࡞Δίπؾܰʹฉ͍ͯΒ͏յΕͨͱ͖ʹ͙͢͢
։ൃڥͷ͓ΘΓ
ϨϏϡʔͷ
ίʔυϨϏϡʔຖϨϏϡʔλΠϜͳΔ݅͘ʹͳΔ·ͰݟΔ
࣌ؒʹͳΔͱ͓Βͤ
ঢ়ଶ͕มΘΔͱ4MBDLʹྲྀ͢ϨϏϡʔͯ͠ΔਓΛՄࢹԽ
ϥϕϧͰঢ়ଶΛཧ
ྃͨ͠ͱ͖ʹྑ͍ͷ͔ѱ͍ͷ͔͔Βͳ͍
ϨϏϡʔྃΛͭʹׂ
σβΠϯϨϏϡʔϥϕϧͰ
ϥϕϧͭར༻͍ͯ͠Δ
ݟΒΕͣ์ஔ͞Ε͍ͯΔ1VMM3FRVFTUʹؾ͖͍ͨ
IUUQTUXJUUFSDPNTJEF@UBOBTUBUVT
ݹ͍1VMM3FRVFTUʹؾ͖͍ͨؒಈ͖͕ͳ͚ΕࣗಈͰϥϕϧΛ༩
࠷ۙඪ४ͷػೳͰϨϏϡʔͰ͖ΔͷͰซ༻͍ͯ͠ΔIUUQTIFMQHJUIVCDPNBSUJDMFTBCPVUQVMMSFRVFTUSFWJFXT
ϨϏϡʔͷϑϩʔΛ͑ΔίπϨϏϡʔͯ͠Β͑ͳ͍ͱ։ൃ͕ࢭ·ΔͷͰීஈݟ͑Δͱ͜ΖͰΔ
ϨϏϡʔΛਐΊΔίπײʹૌ͑ΔͷͰͳ͘ࣄ࣮ΛՄࢹԽ͢ΔϨϏϡʔґཔͷ݅ɼϨϏϡʔͷਐɼݹ͞
ϨϏϡʔͷϑϩʔΛ͑ΔίπσβΠφʔ͚ͷࢧԉΤϯδχΞ༻ͱಉ༷ʹ༻ҙ͢Δ
ϦϦʔεͷ
TUBHJOHʹϚʔδ͍ͯ͘͠ϦϦʔε͕ͪஷ·͖ͬͯͨΒϦϦʔεճʙճ͘Β͍
CPU͕ϦϦʔεΛଅͯ͘͠ΕΔ
Ϛʔδ݅ίʔυͷߦ࠷େߦ1VMM3FRVFTUͷ୲ऀ͕ϦϦʔε୲
ϦϦʔε͍͚ͨ͠Ͳػೳ
CPU͕ಠΓݴΛߘ͢Δ
னٳΈආ͚Δ༦ํආ͚Δ༵ۚආ͚Δॕલආ͚Δ
৬ਓͷஅΛࣗಈԽ
ϦϦʔε༰ʹԠͯ͡ಈతʹϦϦʔεखॱΛม͑Δ
;ͩΜͷखॱ
BMUFSUBCMF͋Δͱ͖
- [ ] `master`ʹϚʔδ<%- if changed_files.any?{|f| f.match(%r{^db/}) } -%>- [ ] alter table (db/* ͕มߋ͞Ε͍ͯ·ͨ͠)<%- end -%>ϦϦʔεखॱΛςϯϓϨʔτΤϯδϯͰੜ
ͨ·ʹΔखॱΛࣗಈݕBMUFSUBCMFOHJOYͷઃఆϦϩʔυDSPOͷߋ৽
ϦϦʔεϑϩʔΛ࡞ΔίπຖΔͷͳͷͰࣗಈԽਓ͕ݟΔલʹCPUʹࣄͤ͞Δ
ϦϦʔεͷ͓ΘΓ
·ͱΊࠓͷԿͷͩͬͨͷ͔
৮Δରͱͦͷ࡞ઓϓϩμΫγϣϯίʔυஸೡʹ։ൃڥͲΜͲΜΔ
ΞϓϦέʔγϣϯͷઃܭ৻ॏʹण໋͕͍৮Ε߹͏͍࣌ؒͦͷઃܭΛҰத৮Γ͍͔ͨ
ఫୀ͢͠͞ബ͍ϑϨʔϜϫʔΫΛେʹ͍ͯ͠Δॏްͳάοζʹґଘͤͣ͋ͱ͔Β·ͨม͑Δલఏಋೖٕ͕ͨ͠ݹͼͨͱ͖ఫୀͰ͖Δ͔
ਓʹΛ͚ΔνʔϜϝϯόશһ͕։ൃ͍͢͠ڥΛ࡞ΔͷΤϯδχΞͷࣄಉ྅͕खͰΠϯσϯτͯͨ͠Βνϟϯε
։ൃΛαϙʔτ͢ΔͨΊͷίʔυؾܰʹม͍͑ͯ͘ϓϩμΫγϣϯίʔυΑΓण໋͕͍յΕͨΒࣺͯͯ࡞Γ͢
·ͱΊ҆ఆͯ͠αʔϏε։ൃΛଓ͚ΔͨΊͷίʔυͷઃܭํ։ൃڥ։ൃϑϩʔ։ൃϝϯόͷαϙʔτ
એγʔϧͬͯ·͢