Slide 1

Slide 1 text

Chaplin.jsͷ࿩ @mizchi'/'#ten1club

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

ࣗݾ঺ry#͙͙Ε

Slide 4

Slide 4 text

Chaplin.jsͱ͸ • paulmillr࡞ͷBackbone֦ுܥMVCϥΠϒϥϦ • paulmillrࢯɺAc4vity͕ଟ͍ͷͰ͍ΖΜͳͱ͜ͰݟΔ • Rails෩ͷઃܭͰSPA૊ΊΔ

Slide 5

Slide 5 text

Rails෩ͷߏ੒ ~/s/bwc (master) $ la app/ total 32 drwxr-xr-x 11 mizchi staff 374B 7 11 16:33 . drwxr-xr-x 10 mizchi staff 340B 7 11 16:33 .. -rw-r--r-- 1 mizchi staff 207B 7 11 16:33 application.coffee drwxr-xr-x 4 mizchi staff 136B 7 11 16:33 assets drwxr-xr-x 5 mizchi staff 170B 7 11 16:34 controllers -rw-r--r-- 1 mizchi staff 230B 7 11 16:33 initialize.coffee drwxr-xr-x 4 mizchi staff 136B 7 11 16:33 lib -rw-r--r-- 1 mizchi staff 45B 7 11 16:33 mediator.coffee drwxr-xr-x 3 mizchi staff 102B 7 11 16:33 models -rw-r--r-- 1 mizchi staff 75B 7 11 16:33 routes.coffee drwxr-xr-x 8 mizchi staff 272B 7 11 16:35 views ͋͘·ͰRailsʮ෩ʯͰ͋ͬͯͦͷ΋ͷͰ͸ͳ͍

Slide 6

Slide 6 text

ࣗ෼ͱChaplin.js • ϓϩμΫγϣϯͰ2ϓϩδΣΫτͰ࢖༻ • ศརͳ൒໘ෆຬ΋͋Δ • ෺଍Γͳ֦ͯ͘ுͯ͠࢖ͬͯΔ

Slide 7

Slide 7 text

ࠓ೔͠Ό΂Δ͜ͱ • ओʹBackboneʹͳ͍ػೳʹ͍ͭͯ • ViewͱModel͸ࢮ׆؅ཧ͞ΕͯΔ͜ͱҎ֎Ұॹ

Slide 8

Slide 8 text

Chaplinͷઃܭ

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

ಛ௕ • Rails෩Router • Πϯελϯεͷੜ੒/ഁغΛ؅ཧ͢ΔComposer • ಛԽͨ͠ϏϧυγεςϜ(brunch) • Rails෩εΩϟϑΥϧσΟϯά(scaffolt)

Slide 11

Slide 11 text

Composer

Slide 12

Slide 12 text

Composer • Controllerͱڠௐͯ͠Πϯελϯε؅ཧ͢Δ • ϧʔςΟϯάΞΫγϣϯຖʹ͋ΒΏΔΠϯελϯεͷdispose͕ ݺ͹ΕΔ • Controllerͷ੾ΓସΘΓલޙͰ-reuse-ͨ͠΋ͷ͸Ҿ͖ܧ͕ΕΔ

Slide 13

Slide 13 text

Controller/Composerͷྫ # controllers/home-controller module.exports = class HomeController index: -> layout = @reuse('layout', LayoutView) view = @reuse('home', HomeView) # controllers/foo-controller module.exports = class FooController index: -> layout = @reuse('layout', LayoutView) view = @reuse('foo', FooView) Home%&>%Foo%ͷભҠͰ%Layout%͸ফ͑ͳ͍

Slide 14

Slide 14 text

ComposerͲ͏ͳͷ • ϝϦοτ • ࠩ෼؅ཧͰը໘ͷߏங͕଎͍ • σϝϦοτ • ʮΠϯελϯε͕Ҿ͖ܧ͕Ε͍ͯΔʯͱ͍͏ͷΛҙࣝ͠ͳ͍ ͱ੝େʹόάΔ • ΠϕϯτίʔϧόοΫෳ਺ճషͬͯͨΓɺ೉͍͠…

Slide 15

Slide 15 text

൪֎ ʮdispose࣋ͬͯΔΠϯελϯεΛreuse͢ΔͱɺભҠͯ͠࢖Θͳ ͍࣌ʹࣺͯΔʯͱ͍͏࢓૊Έ͚ͩਅࣅͨ͠ϧʔλʔ࡞ͬͨ h"ps:/ /github.com/mizchi/warden ओʹvue.js༻ɻझຯϓϩμΫτͰ࢖ͬͯΔ͚Ͳศརɻ

Slide 16

Slide 16 text

Generator

Slide 17

Slide 17 text

Generator • paulmillr/scaffolt • Railsͷscaffoldͱࣅͨײ͡ • σΟϨΫτϦن໿͕͔ͬ͠Γ͋Δ͔Β࣮ݱͰ͖Δ • handlebars1Ͱίʔυͷ਽ܗΛॻ͍ͯੜ੒

Slide 18

Slide 18 text

Generatorͷ࢖༻ྫ ~/s/mizchi-bwd (master) $ scaffolt scaffold foo 11 Jul 16:36:34 - info: init app/templates/foo 11 Jul 16:36:34 - info: create app/templates/foo/foo.jade 11 Jul 16:36:34 - info: create app/controllers/foo-controller.coffee 11 Jul 16:36:34 - info: create test/controllers/foo-controller-test.coffee 11 Jul 16:36:34 - info: init app/view-models/foo 11 Jul 16:36:34 - info: init test/view-models/foo 11 Jul 16:36:34 - info: init app/views/foo 11 Jul 16:36:34 - info: init test/views/foo 11 Jul 16:36:34 - info: init app/styles/foo 11 Jul 16:36:34 - info: create app/view-models/foo/foo-view-model.coffee 11 Jul 16:36:34 - info: create test/view-models/foo/foo-view-model-test.coffee 11 Jul 16:36:34 - info: create app/views/foo/foo-view.coffee 11 Jul 16:36:34 - info: create test/views/foo/foo-view-test.coffee 11 Jul 16:36:34 - info: create app/styles/foo/foo.sass

Slide 19

Slide 19 text

GeneratorͲ͏ͳͷ • ͱʹ͔͘MV*ͳΜͨΒ΍ΔͱϑΝΠϧ͕૿͑Δ • େ͖ͳϓϩδΣΫτͳΒ਽ܗඞਢ • ࣮͸Chaplinͱؔ܎ͳ͍ͷͰಠཱͯ͠࢖ͬͯ΋Α͍ • ϑΥʔΫͨ͠,mizchi/scaffolt,࢖͏ͱແݶʹҾ਺ͱΕͯศར

Slide 20

Slide 20 text

Collec&onView

Slide 21

Slide 21 text

Collec&onView • Backbone.Collec-onʹରԠͯ͠ViewΛੜ੒͢Δ • ৄ͘͠͸ઌि࿩ͨ͠ࢿྉΈ͍ͯͩ͘͞ • ʮ͓લࣗ෼ͪͷϖʔδϟUI͕ຊ౰ʹ଎͍ͱࢥͬͯΜͷʁ3ʯͰ ݕࡧ

Slide 22

Slide 22 text

Collec&onViewͲ͏ͳͷ(ཁ໿) • Collec'onૢ࡞ͰView͕ੜ੒͞Εͯศར • ϦετϏϡʔ͕ωετͨ͠৔߹ɺ؅ཧ͕ࠔ೉

Slide 23

Slide 23 text

Brunch

Slide 24

Slide 24 text

Brunch • ΢ΣϒΞϓϦέʔγϣϯʹಛԽͨ͠Ϗϧυϥϯφʔ ―#common.js෩ͷrequire#+#֦ுࢠʹΑΔࣗಈల։ • npmͰ֦ுࢠʹԠͨ͡ϓϥάΠϯೖΕΔ#or#ॻ͘ • ࣮͸Chaplinͱؔ܎ͳ͍(͚Ͳεέϧτϯ͕͜ΕͰॻ͔ΕͯΔͷͰ ࢖͏ͱָ)

Slide 25

Slide 25 text

BrunchͲ͏ͳͷ • Grunt/Gulpʹ৐͔ͬΕͳ͍ͷ͕ਏ͍ • ϓϥάΠϯ͍͍ͩͨॻ͔ͳ͍ͱ͍͚ͳ͍ • ࠷ۙ͸Gulpʹ͠·ͨ͠

Slide 26

Slide 26 text

chaplin.jsͷਏ͍఺ • ྑ͘΋ѱ͘΋paulmillrϫʔϧυ • brunch • scaffolt • ಠࣗcommon.js • શମతʹγϯάϧτϯͷmediatorʹີ݁߹Ͱ୯ମςετࠔ೉ • ࡞ऀ͋Μ·Γςετͯ͠ͳͦ͞͏ͳͷͰؾ͍ͮͯͳ͍…

Slide 27

Slide 27 text

࣮ӡ༻ͰͷChaplin.jsͷ֦ு

Slide 28

Slide 28 text

MVVM෩ʹσʔλόΠϯυ͢Δʂ • ViewʹmodelҾ਺͕ͳ͍৔߹ɺۭͷϞσϧΛࣗಈੜ੒ • ίϯτϩʔϥ͔ΒϏϡʔϞσϧૢ࡞ • ੲ͜͏͍͏ͷΛॻ͍ͨͷͰࢀߟʹ • ʮBackboneͰσʔλόΠϯσΟϯάΛ࢖ͬͯMVVMΛ͢Δϑ ϩϯτΤϯυΞʔΩςΫνϟʯ

Slide 29

Slide 29 text

Backbone.s+ckit • NYT੡BackboneσʔλόΠϯυ • NYTimes/backbone.s2ckit bindings: { '#album': { observe: 'Tomorrow\'s Harvest', destroy: function($el, model, options) { // Tear down any events or clean up. } } }

Slide 30

Slide 30 text

mocha&phantomjs,Ͱςετ • ViewͱModel͸ςετॻ͍ͨ • Controller͸γϯάϧτϯͱີ݁߹͍ͯͯ͠ఘΊͨ

Slide 31

Slide 31 text

Chaplin͔Βಘֶͨͼ • σΟϨΫτϦߏ੒౳ͷن໿࡞ͬͯδΣωϨʔλʔॻ͚͹։ൃര ଎ • Ϣχοτςετ͸ϑϨʔϜϫʔΫͱີ݁߹͢ΔͷͰϑϨʔϜϫ ʔΫબఆʹӨڹ͢Δ • ϦετϏϡʔΛ؆୯ʹॻ͚ΔϑϨʔϜϫʔΫ͸Ғ͍

Slide 32

Slide 32 text

ChaplinΛ࠾༻͢ΔՁ஋͕͋Δέʔε • RailsΤϯδχΞ͕ଟ͍ • Backbone͕෺଍Γͳ͍

Slide 33

Slide 33 text

࣍ͷϓϩδΣΫτ͸ʁ • ࣗ෼͸Backbone/Chaplin๞͖ͨͷͰ0vue.js0͔0react.js0Ͱ͢

Slide 34

Slide 34 text

͓͠·͍