https://atnd.org/events/89458 の発表資料です
Server-Side Team in Toreta@m_nakamura145
View Slide
ࣗݾհ• Masato Nakamura• @m_nakamura145• Server-Side Engineer• Recruit Holdings -> Toreta(2016/10ʙ)
ࠓ͓͢Δ͜ͱ• τϨλͷαʔϏεͱAPIΞʔΩςΫνϟ• αʔόαΠυνʔϜͷϛογϣϯ• Ϣʔβͷ՝Λղܾ͢ΔͨΊʹ͍ͬͯΔ͜ͱ
Toreta Core API• First commit20138݄• िʹ1ճͷDeploy• ݱࡏ5໊Ͱ։ൃ• @swdyh,@ziguzagu,@serihiro,@fregdee,@m-nakamura145
+----------------------+-------+-------+---------+---------+-----+-------+| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |+----------------------+-------+-------+---------+---------+-----+-------+| Controllers | 22229 | 19006 | 173 | 942 | 5 | 18 || Helpers | 223 | 200 | 0 | 26 | 0 | 5 || Models | 12651 | 7693 | 187 | 510 | 2 | 13 || Mailers | 370 | 312 | 10 | 19 | 1 | 14 || Javascripts | 4701 | 2948 | 16 | 367 | 22 | 6 || Libraries | 1699 | 1264 | 36 | 112 | 3 | 9 || Concern specs | 478 | 396 | 0 | 3 | 0 | 130 || Controller specs | 29728 | 26235 | 3 | 7 | 2 | 3745 || Helper specs | 139 | 118 | 0 | 0 | 0 | 0 || Lib specs | 498 | 441 | 0 | 0 | 0 | 0 || Mailer specs | 2009 | 1721 | 0 | 1 | 0 | 1719 || Model specs | 13909 | 10891 | 0 | 2 | 0 | 5443 || Request specs | 91 | 66 | 0 | 0 | 0 | 0 || View specs | 672 | 569 | 0 | 0 | 0 | 0 || Worker specs | 3583 | 3113 | 1 | 4 | 4 | 776 |+----------------------+-------+-------+---------+---------+-----+-------+| Total | 92980 | 74973 | 426 | 1993 | 4 | 35 |+----------------------+-------+-------+---------+---------+-----+-------+
ن• αʔϏεఏڙࠃ:15ϱࠃҎ্ʢຊɺγϯΨϙʔϧɺɺؖࠃɺϕτφϜɺϚϨʔγΞɺΠϯυωγΞɺλΠɺΧϯϘδΞɺϑΟϦϐϯɺχϡʔδʔϥϯυɺΦʔετϥϦΞɺΞϝϦΧɺΠΪϦεɺΤδϓτ, etc…ʣ• ళฮ:8500ళฮ• ྦྷܭ༧ਓ:1ԯ2000ສਓ
"1*ΞʔΩςΫνϟ
Toreta Manager iPad Client Web Reservation(Customer)Phone CallToreta Core API
POS Toreta Manager iPad Client Web Reservation(Customer)Phone CallPOS Connect API Toreta Core API
POS Toreta Manager iPad Client Web Reservation(Customer)Phone Call Gourmet mediaPOS Connect API Toreta Core API Mail Importer API
POS Toreta Manager iPad Client Web Reservation(Customer)Phone Call Gourmet mediaPOS Connect API Toreta Core API Mail Importer APIMySQL toBigQuery
αʔόαΠυνʔϜͷϛογϣϯ• ٕज़ͱσʔλΛͬͯϢʔβͷຊ࣭తͳ՝Λղܾ͢Δ• ϢʔβʹܟҙΛࠐΊͯରԠ͢Δ• ٕज़Ͱ৫શମͷੜ࢈ੑΛ্͛Δ
ΞΫγϣϯ• τϨλͷશAPIͷઃܭɾ։ൃɾӡ༻• ͚ࣾπʔϧʢa.k.aτϨλཧʣͷ։ൃ• ͍߹ΘͤରԠ• ੳΫΤϦͷ࡞
τϨλཧ• ͚ࣾཧπʔϧ• ಋೖళฮͷτϨλར༻ঢ়گΛݟΔɾઃఆΛཧ͢Δ• ࣾһશһ͕ຖݟΔ
"1*։ൃ• Design Doc• Github issues• ࣮ɾςετ• ಈ࡞֬ೝ on Shining Wizard• QA• ϦϦʔε
• ػೳ։ൃͱಉ͡ॏཁͰϦϑΝΫλϦϯά͢Δ• খ͍͞ϦϑΝΫλϦϯάػೳ։ൃͷϓϩδΣΫτͰߦ͏• GemͷཧͳͲɺ͋Δఔ·ͱ·ͬͨλεΫվળ෦Ͱߦ͏• େ͖͍ϦϑΝΫλϦϯάͦΕࣗମΛϓϩδΣΫτʹ͢ΔRefactoring
͍߹ΘͤରԠ• ͓٬༷͔Βͷతͳ͍߹ΘͤΧελϚʔαϙʔτνʔϜ͕ରԠ• όάͷ͍ٙෳࡶͳ༷֬ೝͷ࣌ʹΤϯδχΞ͕ରԠ• ࣋ͪճΓ੍Ͱͳ͘ɺνʔϜશһͰԠͯ͠ૣ͔ͬͨਓ͕ରԠ• جຊతʹͰ͖Δ͚͙ͩ͢ରԠͦ͠ͷͰղܾ͢Δ
σʔλͱ͖߹͏• ਖ਼͍͠՝ʹऔΓΉͨΊʹ• ࡞ͬͨػೳ͕՝Λղܾ͔ͨ͠Λ͔֬ΊΔͨΊʹ• τϨλΛಋೖ͍͍ͯͨͩͨ͠ళฮΛαϙʔτ͢ΔͨΊʹ
ਖ਼͍͠՝ʹऔΓΉ• ৽ػೳͷՁԾઆΛߟ͑Δஈ֊͔ΒσʔλΛݟͳ͕Βٞ͢Δ
࡞ͬͨػೳ͕՝Λղܾ͔ͨ͠Λ͔֬ΊΔ• ৽ػೳΛϦϦʔε͢Δ͚ͩͰऴΘΒͳ͍• ࣮ࡍʹػೳ͕ΘΕ͍ͯΔ͔Λσʔλ͔Β֬ೝ͢Δ• ࣍ͷਖ਼͍͠՝ͷώϯτΛಘΔ
• τϨλΛಋೖ͍͍ͯͨͩͨ͠ళฮΛαϙʔτ͠ɺച্Λ࠷େԽ͢Δάϧʔϓ• SaaSͷཁ• ʢChurmʣΛ͘͢ΔͨΊʹɺళฮʹ͚༷ͯʑͳΞΫγϣϯΛى͜͢• ΞΫγϣϯΛى͖͜͢ళฮΛσʔλ͔Βಋ͖ग़͢Customer Success Group
σʔλͷ࣭Λ্͍͛ͯ͘• ܧଓతͳDB Refactoring• Data Martͷ࡞• ࠓ·ͰऔΕͯͳ͔ͬͨσʔλΛऔΕΔΑ͏ʹ͢Δ• ྫ: τϨλϑΥϯ• ࣾͰ͍Ζ͍Ζͳਓ͕σʔλੳΛߦ͑ΔΑ͏ʹ͢Δ
• τϨλͷαʔϏεͱAPIΞʔΩςΫνϟ• αʔόαΠυνʔϜͷϛογϣϯ• Ϣʔβͷ՝Λղܾ͢ΔͨΊʹ͍ͬͯΔ͜ͱࠓ͓ͨ͜͠ͱ