Slide 1

Slide 1 text

Ϗϧυϓϩηεͷ 1 ࣗಈԽͰ ޮ཰Ξοϓ (SVOUKTΛར༻ͨࣗ͠ಈԽ !BIPNV

Slide 2

Slide 2 text

ࣗݾ঺հ ͞ͱ͏͋ΏΉ !BIPNV αΠόʔΤʔδΣϯτ ϚʔΫΞοϓ ΤϯδχΞͰ͢ ໊ݹ԰ग़਎͕ͩͶ ৄ͘͠͸IUUQBIPNV 2

Slide 3

Slide 3 text

໨࣍ Ϗϧυϓϩηεͱࠇ͍ը໘ (SVOUKT ઃఆϑΝΠϧͱ࢖͍ํ ϓϥάΠϯͷ঺հͱࣗ࡞ ·ͱΊ 3

Slide 4

Slide 4 text

Ϗϧυϓϩηεͱࠇ͍ը໘ 4

Slide 5

Slide 5 text

Ϗϧυϓϩηεʁ 5

Slide 6

Slide 6 text

͞·͟·ͳϏϧυ 6 $44 ϓϦϓϩηοα $PNQJMF $PGGFF4DSJQUͳͲ BMU+4ͷ$PNQJMF ϑΝΠϧͷ݁߹ $PODBUFOBUF ը૾ͷ ϩεϨεѹॖ $PNQSFTTJPO %BUB63*ม׵ *OMJOF&NCFE ίʔυ࠷খԽ .JOJGZ 0QUJNJ[F

Slide 7

Slide 7 text

खஈɾ໨త͸૿͑Δ͹͔Γ ࠓ೔͜͜·Ͱ঺հ͞Εͨ಺༰͚ͩͰ΋ɺ ଟ͘ͷ࡞ۀΛٻΊΒΕ͍ͯΔ 7

Slide 8

Slide 8 text

7 υΩϡϝϯτ ੜ੒ Ωϟογϡ ϚχϑΣετ ؅ཧ +BWB4DSJQUͷ ςετ࣮ߦ ؀ڥʹϑΝΠϧ Ξοϓϩʔυ $44 ϓϦϓϩηοα $PNQJMF $PGGFF4DSJQUͳͲ BMU+4ͷ$PNQJMF ϑΝΠϧͷ݁߹ $PODBUFOBUF ը૾ͷ ϩεϨεѹॖ $PNQSFTTJPO %BUB63*ม׵ *OMJOF&NCFE ίʔυ࠷খԽ .JOJGZ 0QUJNJ[F

Slide 9

Slide 9 text

ΞϨ΋ίϨ΋ ·ͱΊͯࣗಈԽ͍ͨ͠ ෼ࢄͨ͠࡞ۀͱखؒΛͻͱ·ͱΊʹ͢Δ 8

Slide 10

Slide 10 text

ͳͥࣗಈԽͳͷ͔ʁ 9

Slide 11

Slide 11 text

܁Γฦ͠ΛݮΒ͍ͨ͠ 10 ώϡʔϚϯΤϥʔΛ܁Γฦͨ͘͠ͳ͍ खಈίϯύΠϧΛ܁Γฦͨ͘͠ͳ͍ $44Ͱಉ͡هड़Λ܁Γฦͨ͘͠ͳ͍ )551ϦΫΤετΛ܁Γฦͨ͘͠ͳ͍

Slide 12

Slide 12 text

͢΂ͯ͸ ܁Γฦ͠ͷ࠷దԽ %PO`U3FQBU:PVSTFMG 11

Slide 13

Slide 13 text

ࣗಈԽʹΑͬͯ ੜ·ΕΔ͕࣌ؒେ੾ ໨ͷલͷ࡞ۀΛ࠷దԽ͢Δ͜ͱͰ ຊ౰ʹඞཁͳ͜ͱʹ࣌ؒΛ͔ͭ͏͜ͱ͕Ͱ͖Δ 12

Slide 14

Slide 14 text

ͳͥࠇ͍ը໘ͳͷ͔ʁ 13

Slide 15

Slide 15 text

'PS6TJOH7BMVJOH5PPMT 14 Ձ஋͋Δπʔϧ΋ɺ͸͡Ί͸$-*πʔϧ (6*πʔϧʹͳΔͷ͸ɺ΄ΜͷҰѲΓ $-*πʔϧ͸ɺҰॠͰ๲େͳ࢓ࣄΛ͢Δ ࢖͍͜ͳͤ͹࠷΋ޮ཰ԽͰ͖Δखஈ ஌͍ͬͯΕ͹ɺͦΕ͚ͩͰ෢ثʹͳΔ

Slide 16

Slide 16 text

ւͷ޲͜͏ͷτϨϯυײ 15

Slide 17

Slide 17 text

5IF$PNNBOE-JOF ίϚϯυϥΠϯར༻ͷඞཁੑ͕ ޿͘ೝ஌͞Ε࢝Ί͍ͯΔ 16

Slide 18

Slide 18 text

ࠇ͍ը໘ඞܞ࣌୅ ͕ɺ͘Δ͔΋͠Εͳ͍ 17

Slide 19

Slide 19 text

ࠇ͍ը໘͸͔ͬ͜Α͘ͳΔʂ 18

Slide 20

Slide 20 text

·ͣ͸ઃఆΛ։͘ͱ͜Ζ͔Β 19

Slide 21

Slide 21 text

'PS8JOEPXT $ZHXJO ͍·͙͢ίϚϯυϓϩϯϓτΛࣺͯͯɺ $ZHXJOΛ࢖͏΂͖̍̌ͷཧ༝ (FUUJOHHSVOUUPXPSLPOXJOEPXTXJUI DZHXJOBOEHJU 20

Slide 22

Slide 22 text

(SVOUKT 21

Slide 23

Slide 23 text

OPEF+4Ͱಈ͘Ϗϧυπʔϧ ϏϧυϓϩηεͷࣗಈԽɾҰݩԽͷ΄͔ʹ΋ɺ ϩʔΧϧ։ൃ؀ڥͷߏஙͳͲ΋ 22

Slide 24

Slide 24 text

5BTL#BTFE#VJME5PPM 23 OPEF+4 (SVOU 5BTL 5BTL 5BTL

Slide 25

Slide 25 text

5BTL#BTFE#VJME5PPM 23 OPEF+4 (SVOU 5BTL 5BTL 5BTL ϓϥάΠϯ෦෼

Slide 26

Slide 26 text

5BTL#BTFE#VJME5PPM 23 OPEF+4 (SVOU 5BTL 5BTL 5BTL ίϚϯυϥΠϯͰ ࣮ߦ 5BTLͷ ࣮ߦ݁ՌΛಘΔ ‣֤छίϯύΠϧͷ࣮ߦ ‣ॲཧࡁΈϑΝΠϧͷ࡞੒ ‣ͳͲͳͲ

Slide 27

Slide 27 text

(SVOUKTͷಛ௃ IUUQHSVOUKTDPN ઃఆ΋ϓϥάΠϯ΋͢΂ͯ+BWB4DSJQU ઃఆ෦෼ͷ+4͸؆ܿʹهड़Ͱ͖Δ ϓϥάΠϯ͕ଟ਺ެ։͞Ε͍ͯΔ ΤσΟλʹґଘͤͣར༻Ͱ͖Δ ઃఆϑΝΠϧ͕͋Ε͹؆୯ʹ؀ڥڞ༗Ͱ͖Δ 24

Slide 28

Slide 28 text

։ൃΞΫςΟϏςΟ TUBCMFEFWFMPQB ඇৗʹ੝Μʹߋ৽͞Ε͍ͯΔ ։ൃίϛϡχςΟ͕޿͕͍ͬͯΔ K2VFSZͷϏϧυπʔϧͱͯ͠࠾༻ 25

Slide 29

Slide 29 text

Πϯετʔϧํ๏ εςοϓͰ͙͢Ͱ͖·͢ 26

Slide 30

Slide 30 text

OPEF+4ͷΠϯετʔϥʔ 27

Slide 31

Slide 31 text

ΠϯετʔϥʔΛ࣮ߦ 28

Slide 32

Slide 32 text

(SVOUKTΛΠϯετʔϧ 29 npm install -g grunt

Slide 33

Slide 33 text

͜ΕͰ४උ0, 30

Slide 34

Slide 34 text

ઃఆϑΝΠϧͱ࢖͍ํ 31

Slide 35

Slide 35 text

࡞੒ϑΝΠϧ HSVOUKT QBDLBHFKTPO

Slide 36

Slide 36 text

σϞϑΝΠϧެ։த IUUQTHJUIVCDPNBIPNVGSPOUSFOE HSVOUEFNP 33

Slide 37

Slide 37 text

HSVOUKT 34 ϝΠϯͷઃఆϑΝΠϧ

Slide 38

Slide 38 text

ϑΝΠϧͷ݁߹ 35

Slide 39

Slide 39 text

+4ͱ$44ͷ݁߹ઃఆ 36 grunt.initConfig({ concat: { js: { src: [ 'js/lib/jquery.js', 'js/app/main.js', 'js/app/sub.js' ], dest: 'js/all.js' }, css: { src: ['css/main.css', 'css/sub.css'], dest: 'css/all.css' } }, } HSVOUKT

Slide 40

Slide 40 text

+BWB4DSJQUͷϏϧυ 37

Slide 41

Slide 41 text

+BWB4DSJQUͷϏϧυઃఆ module.exports = function(grunt) { grunt.initConfig({ concat: { dist: { src: ['js/jquery.js', 'js/app/main.js', 'js/app/sub.js'], dest: 'js/all.js' } }, min: { dist: { src: 'js/all.js', dest: 'js/all.min.js' } } }); grunt.registerTask('jsbuild', ['concat', 'min']); }; 38 HSVOUKT

Slide 42

Slide 42 text

39 λεΫΛෳ߹ͯ͠ࢦఆ // Alias Task // grunt.registerTask(taskName, taskList) grunt.registerTask('jsbuild', ['concat', 'min']); concat + min = jsbuild HSVOUKT

Slide 43

Slide 43 text

40 AHSVOUKTCVJMEAͷ࣮ߦ݁Ռ % grunt jsbuild # concat λεΫ͕ߦΘΕͯɺjs/all.js ͕ੜ੒͞Εͨ Running "concat:dist" (concat) task File "js/all.js" created. # ͞Βʹ min λεΫͰɺѹॖ͕ߦΘΕͨ Running "min:dist" (min) task File "js/all.min.js" created. Uncompressed size: 56545 bytes. Compressed size: # ͓͠·͍ Done, without errors. ࠇ͍ը໘

Slide 44

Slide 44 text

41 ϑΝΠϧͷߋ৽ݕ஌

Slide 45

Slide 45 text

ϑΝΠϧͷߋ৽ݕ஌ͱΞΫγϣϯ watch: { css: { // ͜ΕΒͷϑΝΠϧ͕ߋ৽͞ΕͨΒ files: ['css/*.less'], // ҎԼͷλεΫΛ࣮ߦ͢Δ tasks: 'less' }, js: { files: ['js/app/*.js', 'index.html'], tasks: 'lint concat min' } } 42 HSVOUKT

Slide 46

Slide 46 text

43 AHSVOUXBUDIAͷ࣮ߦ݁Ռ % grunt watch # ϑΝΠϧͷߋ৽؂ࢹΛ։࢝ Running "watch" task Waiting...OK # ݕ஌ʂ File "css/main.less" changed. # lessλεΫ͕࣮ߦ͞ΕͯɺίϯύΠϧ Running "less:dist" (less) task File css/main.css created. ࠇ͍ը໘

Slide 47

Slide 47 text

44 ϩʔΧϧ։ൃ؀ڥ

Slide 48

Slide 48 text

45 ։ൃ؀ڥͱͯ͠૊Έ߹Θͤͨઃఆ grunt.initConfig({ /*ʢલུɾ͜Ε·Ͱͷwatch΍֤λεΫͷઃఆʣ*/ server: { port: 8000, // ੩తϩʔΧϧαʔόΛཱͯΔϙʔτ base: '.' }, reload: { port: 35729 // LiveReloadαʔόͷϙʔτ }, }); // develop λεΫͱͯ͠ෳ߹ grunt.registerTask( 'develop', ['server', 'reload', 'watch'] ); HSVOUKT

Slide 49

Slide 49 text

46 AHSVOUXBUDIAͷ࣮ߦ݁Ռ % grunt devlop # localhost:8000Λىಈ Running "server" task Starting static web server on port 8000. # LiveReloadαʔόʔΛىಈ Running "reload" task Proxying http://localhost:8000/ reload server running at http://localhost:35729 # ϑΝΠϧͷߋ৽Λ։࢝ Running "watch" task Waiting.. ࠇ͍ը໘

Slide 50

Slide 50 text

ϓϥάΠϯͷಋೖ 47 OQNΛར༻ͯ͠Πϯετʔϧ͢Δ

Slide 51

Slide 51 text

OQNͬͯʁ 48

Slide 52

Slide 52 text

/PEF1BDLBHF.BOBHFS 49 OPEFͰಈ͘ύοέʔδ͕ଟ਺ొ࿥͞Ε͍ͯΔ OQNίϚϯυΛ௨ͯ͠ར༻Ͱ͖Δ 3VCZͰ͍͏HFNͱ͔ͷΠϝʔδ

Slide 53

Slide 53 text

ͷϓϥάΠϯ ݱࡏOQNʹ͓͍ͯ AHSVOUQMVHJOAλά͕͍ͭͨύοέʔδͷ਺ 50

Slide 54

Slide 54 text

͜Ε΋εςοϓͰ͙͢Ͱ͖Δ 51 ϓϥάΠϯͷར༻ํ๏

Slide 55

Slide 55 text

HSVOUKTDPNͰݕࡧ 52

Slide 56

Slide 56 text

ϓϥάΠϯΛΠϯετʔϧ 53 # ݟ͚ͭͨϓϥάΠϯΛnpmͰΠϯετʔϧ % npm install grunt-data-uri npm http GET https://registry.npmjs.org/grunt-data-uri npm http 200 https://registry.npmjs.org/grunt-data-uri npm http GET https://registry.npmjs.org/mime npm http 200 https://registry.npmjs.org/mime grunt-data-uri@0.0.1 node_modules/grunt-data-uri !"" mime@1.2.7 ࠇ͍ը໘

Slide 57

Slide 57 text

ϓϥάΠϯΛϩʔυ // grunt.loadNpmTasks(packageName) grunt.loadNpmTasks('grunt-data-uri'); // ͦͷλεΫͷઃఆΛॻ͖଍ͤ͹ok grunt.initConfig({ dataUri: { dist: { src: ['css/raw/*.css'], dest: 'css' } } }); 54 HSVOUKT

Slide 58

Slide 58 text

QBDLBHFKTPO 55 ؀ڥͷڞ༗

Slide 59

Slide 59 text

56 QBLDBHFKTPOΛ࡞੒   QBLDBHFKTPOʹอଘ   ઃఆϑΝΠϧΛڞ༗͢Δ  QBLDBHFKTPO͔Β෮ݩ

Slide 60

Slide 60 text

// ͜ΜͳJSONΛίϐϖͯ͠ϑΝΠϧ࡞੒ { "name": "ABCϓϩδΣΫτ", "description": "ϓϩδΣΫτ։ൃ؀ڥͷఆٛͰ͢", "version": "1.0.0", "author": "࠽৔ɹଠ࿠", "main": "grunt.js", "dependencies": {}, "optionalDependencies": { "grunt": "~0.3.16" } } 57 QBDLBHFKTPOΛ࡞੒ QBDLBHFKTPO

Slide 61

Slide 61 text

QBDLBHFKTPOʹอଘ # install --saveͰ # ϓϥάΠϯͷΠϯετʔϧ࣌ʹɺpackage.jsonͷґଘఆٛʹ௥Ճ % npm install --save grunt-xxxxx # remove --saveͰ # ΞϯΠϯετʔϧͱಉ࣌ʹɺpackage.jsonͷґଘఆ͔ٛΒ࡟আ % npm remove --save grunt-xxxxx 58 ࠇ͍ը໘

Slide 62

Slide 62 text

ઃఆϑΝΠϧΛڞ༗͢Δ HSVOUKT QBDLBHFKTPO ϑΝΠϧ͋Ε͹0, 59

Slide 63

Slide 63 text

QBDLBHFKTPO͔Β෮ݩ # package.json͕͋ΔσΟϨΫτϦͰ࣮ߦ͢Δͱ # ه࿥͞Ε͍ͯΔϓϥάΠϯΛɺͦͷ৔ʹࣗಈͰ෮ݩ(Πϯετʔϧ)͢Δ % npm link 60 ࠇ͍ը໘

Slide 64

Slide 64 text

͜͜·Ͱ͕ઃఆํ๏ HSVOUKTࣗମ͸+BWB4DSJQUͱ͍͏ΑΓɹɹɹɹɹ ɹ ͘͘͝͝؆୯ͳઃఆϑΝΠϧ QBDLBHFKTPOΛ͏·͘࢖͏ͱɹɹɹɹɹɹɹ ؀ڥڞ༗͕͠΍͘͢ɺϙʔλϏϦςΟ΋ྑ͍ ࣍͸ϓϥάΠϯͷ঺հ 61

Slide 65

Slide 65 text

ϓϥάΠϯͷ঺հͱࣗ࡞ 62

Slide 66

Slide 66 text

ϓϥάΠϯͷ঺հ 63 େ఍͸(JU)VCʹϦϙδτϦ͕͋ΔͷͰ 3&"%.&ΛಡΊ͹෼͔ΔΑ͏ʹͳ͍ͬͯΔ

Slide 67

Slide 67 text

ϏϧτΠϯλεΫ 64 DPODBUςΩετϑΝΠϧͷ݁߹ NJO+BWB4DSJQUͷ.JOJGZ TFSWFSϩʔΧϧαʔόʔ XBUDIϑΝΠϧͷߋ৽ݕ஌ ͳͲͳͲ

Slide 68

Slide 68 text

HSVOUDPOUSJC IUUQTHJUIVCDPNHSVOUKTHSVOUDPOUSJC ΦϑΟγϟϧ؅ཧ͞Ε͍ͯΔ٧Ί߹Θͤ ެࣜϝϯςφϯε͞Ε͍ͯΔͷͰࢀߟʹͳΔ CVNQɾDMFBOɾDPGGFFɾDPNQSFTTɹɹɹ DPQZɾIBOEMFCBSTɾKBEFɾKTUɾMFTTɹ NJODTTɾTUZMVTɾZVJEPD 65

Slide 69

Slide 69 text

HSVOUDPNQBTT IUUQTHJUIVCDPNLBIMJMHSVOUDPNQBTT $PNQBTTΛ(SVOU͔Βར༻͢Δ $44ϓϦϓϩηοαܥ͸֤छ͋Δ ˞ -&44HSVOUDPOUSJCMFTT ˞ 4UZMVTHSVOUDPOUSJCTUZMVT 66

Slide 70

Slide 70 text

HSVOUJNH IUUQTHJUIVCDPNIFMESHSVOUJNH ը૾ϦιʔεͷϩεϨεѹॖ ACSFXJOTUBMMPQUJQOHKQFHA͕ඞཁ ߴѹॖઃఆͰ*NBHF0QUJNͱಉ͘͡Β͍ BIPNVHSVOUJNH KQFHѹॖ཰ߴΊͨ൛ 67

Slide 71

Slide 71 text

HSVOUDTTP IUUQTHJUIVCDPNULHSVOUDTTP $44ϑΝΠϧͷ.JOJGZ ѹॖ཰ʹ༏Εͨ$440ͱ͍͏ϥΠϒϥϦ BVUIPS!UL ˞ $440ͱHSVOUDTTP].0- 68

Slide 72

Slide 72 text

HSVOUEBUBVSJ IUUQTHJUIVCDPNBIPNVHSVOUEBUBVSJ $44಺ͷը૾ύεΛ%BUB63*ʹࣗಈม׵ VSM QBUIUPJNH Λର৅ʹͯ͠ஔ׵ BVUIPS!BIPNV ˞ σʔλ63*εΩʔϜ].0- 69

Slide 73

Slide 73 text

HSVOUSFMPBE IUUQTHJUIVCDPNXFCYMHSVOUSFMPBE ϒϥ΢βͷࣗಈϦϩʔυ ͍ΘΏΔ-JWF3FMPBEͷ࣮૷ -JWF3FMPBEͷ$ISPNF֦ுͱซ༻Ͱ͖Δ ˞ લग़ͷ%&.0Ͱ΋ར༻͍ͯͨ͠΋ͷ 70

Slide 74

Slide 74 text

HSVOUGUQEFQMPZ IUUQTHJUIVCDPN[POBLHSVOUGUQEFQMPZ '51Λར༻ͨ͠ϑΝΠϧͷ΍ΓऔΓ ؆қͳσϓϩΠϓϩηεʹͳΔϓϥάΠϯ ˞ )FSPLVHSVOUIFSPLVEFQMPZ ˞ "NB[PO4HSVOUT 71

Slide 75

Slide 75 text

HSVOUUFNQMBUFS IUUQTHJUIVCDPNSPDLXPPEHSVOUUFNQMBUFS +BWB4DSJQUςϯϓϨʔτΛίϯύΠϧ FKTɾNVTUBDIFɾVOEFSTDPSFͳͲ ܭछྨͷςϯϓϨʔτΤϯδϯʹରԠ ˞ ίϯύΠϧؔ਺ΦϒδΣΫτ΁ͷม׵ 72

Slide 76

Slide 76 text

HSVOUSFRVJSFKT 3FRVJSF+40QUJNJ[FS SKT ʹରԠ ".%ϞδϡʔϧΛղܾͯ͠࠷దԽ͢Δ BMNPOEͱ͍͏ϥΠϒϥϦʹ΋ରԠͯ͠༏ल ˞ 3FRVJSFKT ˞ 3FRVJSF+4ʹΑΔίʔυͷ෼ׂͱ࠷దԽ 73

Slide 77

Slide 77 text

HSVOUNPDIB IUUQTHJUIVCDPNLNJZBTIJSPHSVOUNPDIB .PDIBͷ)FBEMFTTςετ࣮ߦ 1IBOUPN+4ʹґଘ͍ͯ͠Δ ˞ ΋ͪΖΜ26OJU΍+BTNJOFͷϓϥάΠϯ΋ ˞ ςετܥ͸XBUDIͱ૊Έ߹ΘͤͯࣗಈԽ 74

Slide 78

Slide 78 text

ϓϥάΠϯͷࣗ࡞ 75 ݪଇɺΑ͘ࣅͨϓϥάΠϯΛվ଄͢Δͷ͕ϥΫ OPEF+4Λॻ͘͜ͱʹͳΓ·͢

Slide 79

Slide 79 text

ࣗ࡞ϓϥάΠϯͷઃఆͱϩʔυ grunt.initConfig({ sample: { dist: { src: ['js/**/*.js'], // ೖྗݩ dest: 'js/all.js', // ग़ྗઌ option: { // ΦϓγϣϯͳͲʢ೚ҙʣ hoge: 'fuga', peke: 'piyo' } } } }); // grunt.jsϑΝΠϧ಺ʹهड़ // tasksσΟϨΫτϦͷதΛ͢΂ͯಡΈࠐΈ grunt.loadTasks('tasks'); 76 HSVOUKT

Slide 80

Slide 80 text

UBTLTTBNQMFKT module.exports = function(grunt) { grunt.registerMultiTask('sample', 'own task', function() { var option = this.data.option, src = this.file.src, dest = this.file.dest, // ඇಉظॲཧ͕ඞཁͳͱ͖ʹ࢖༻ doneΛcallbackʹ͢Δ // var done = this.async(); // path/to/**/*.js Λղܾͯ֘͠౰ϑΝΠϧΛ഑ྻͰฦ͢ srcFiles = grunt.file.expandFiles(src); /*...λεΫͷॲཧ...*/ }); }; 77 TBNQMFKT

Slide 81

Slide 81 text

ࢀߟૉࡐ σϞαϯϓϧUBTLTTBNQMFKT ศརϔϧύʔूHSVOUMJCDPOUSJC ໛ൣίʔυྫHSVOUDPOUSJCDPGGFF EPDTQMVHJOTNE EPDTBQJ@UBTLNE EPDTBQJ@pMFNE 78

Slide 82

Slide 82 text

ิ଍Bʹ͍ͭͯ ଟ͘ͷ"1*͕มߋ͞ΕΔ ϓϥάΠϯͷϝϯςφϯεঢ়گʹ஫ҙ͕ඞཁ ઃఆϑΝΠϧ໊͕(SVOUpMFKTʹมߋ $PGGFF4DSJQUͰઃఆ΍λεΫΛॻ͚ΔΑ͏ʹ ˞ ৄ͘͠HSVOUEPDTNJHSBUJPO@HVJEFNE 79

Slide 83

Slide 83 text

·ͱΊ 80

Slide 84

Slide 84 text

ϏϧυͷࣗಈԽ (SVOU͸Ϗϧυπʔϧͱͯ͠ศརʂ OQNʹ͸ଞͷͻͱ͕࡞ͬͨɺɹɹɹɹɹɹɹɹ ࣗಈԽͷͨΊͷϓϥάΠϯ͕୔ࢁ͋Γ·͢ʂ շదʹ։ൃͰ͖Δ؀ڥ͕μΠδʂ ࠇ͍ը໘ͱ஥ྑ͘͠·͠ΐ͏ʂ ԿΑΓ 81

Slide 85

Slide 85 text

࣮ફ͢Δ͜ͱ͕େࣄ πʔϧ͸ਅʹͩ͜ΘΔ΂͖໰୊Ͱ͸ͳ͍ ແཧͳ͘໨ͷલͷ܁Γฦ͠ΛݮΒͦ͏ 82

Slide 86

Slide 86 text

-JWF3FMPBE 83

Slide 87

Slide 87 text

$PEF,JU 84

Slide 88

Slide 88 text

ຊ౰ʹ େࣄͳ͜ͱʹ࣌ؒΛʂ 85

Slide 89

Slide 89 text

࣍ੈ୅πʔϧ 86 $-*ͷੈքͰ͸ɺ͞Βʹ࣍ͷಈ͖͕࢝·͍ͬͯͨΓ

Slide 90

Slide 90 text

:FPNBO#SVODI 87 4LFMFUPOͷ࡞੒΍4DBGGPMEJOH ύοέʔδίϯϙʔωϯτ؅ཧ ϩʔΧϧ։ൃ؀ڥͷఏڙ ΑΓߴ౓ͳࣗಈϏϧυͷఏڙɹͳͲͳͲ

Slide 91

Slide 91 text

$PNQBSF5BCMF 88

Slide 92

Slide 92 text

͖ͭͮ͸8FCͰʂ 89 :FPNBO.PEFSOXPSLqPXTGPSXFCBQQT #SVODI])5.-BQQMJDBUJPOBTTFNCMFS :FPNBOϤʔϚϯϋϒΖ͙ :FPNBOͱ#SVODIΛ͞Θ͞Θͨ͠ϋϒΖ͙

Slide 93

Slide 93 text

͋Γ͕ͱ͏͍͟͝·ͨ͠ http:/ /aho.mu 90

Slide 94

Slide 94 text

91 IUUQXXXqJDLSDPNQIPUPTKVSWFUTPO IUUQXXXqJDLSDPNQIPUPTKBTPOXSZBO IUUQXXXqJDLSDPNQIPUPTCJOBSZBQF IUUQXXXqJDLSDPNQIPUPTKVIBOTPOJO IUUQXXXqJDLSDPNQIPUPTLFWJO .BOZ5IBOLT 1IPUP$SFEJUT