Slide 1

Slide 1 text

My Daily Node js-cafe vol7 શ෦JavaScriptͰॻ͜͏ @hotchemi

Slide 2

Slide 2 text

Shintaro Katafuchi ŋProgrammer at TIS ŋTwitter: @hotchemi ŋGitHub: hotchemi

Slide 3

Slide 3 text

օ͞ΜŊJavaScriptॻ͍ͯ·͔͢ʁ

Slide 4

Slide 4 text

େ఍ͷϓϩάϥϚͷ೰Έ ŋňJavaScriptΛॻ͘ػձ͕ແ͍…ʼn ŋň࢓ࣄͰ͸αʔόαΠυ͹͔Γͩ͠ʼn ŋňͲ͔͜ΒJavaScirptΛ࢝ΊͨΒྑ͍ͷ͔…ʼn ŋňWebαʔϏεΛҰਓͰ࡞Δͷ͸ͪΐͬͱ…ʼn

Slide 5

Slide 5 text

ͦ͜ͰNode.jsͰ͢Α ŋSingle thread, Sockei.IO, ඇಉظ, C10K໰୊… ŋNode.jsͷϋʔυϧ͸࣮͸ߴ͘ͳ͍ ŋJavaScriptʹ׳Ε͍ͨਓͦ͜NodeΛॻ͘΂͖ ※ࠓ೔͸JavaScriptॳ৺ऀͩͬͨࣗ෼͕ŊNodeΛ࢖ͬͯ໰୊Λղܾͨ͠ࣄྫ΍ŊnpmϞδϡʔ ϧΛެ։ͯ͠ΈͨମݧΛ͓࿩͠·͢Ň

Slide 6

Slide 6 text

My idea is…

Slide 7

Slide 7 text

1. ΫϥΠΞϯταΠυͷςετΛCI scroll-to simple scroll jquery plugin. ŋmocha+expect.js+travis-ci(phantomjs) ŋΫϥΠΞϯταΠυͷςετ͕CIͰ͖Δ https://github.com/hotchemi/scroll-to

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

My idea is…

Slide 10

Slide 10 text

2. αόΫϥ྆༻ϥΠϒϥϦΛ։ൃ private.js provides private accessor library. ŋmocha+expect.js ŋNodeͰλʔϛφϧܦ༝ͰTDD https://github.com/hotchemi/private.js

Slide 11

Slide 11 text

var klass = $pvt("_" /* prefix */, { // public method access to public variable getPublicVariable: function() { return this.publicVariable; }, // public method access to private variable getPrivatevariable: function() { return _privateVariable; }, // privateϝϯόΛࢀর͍ͯ͠ΔprivateϝιουΛݺͼग़͢public method getPrivateMethodReferPrivateVariable: function() { return _getPrivateVariable(); }, // publicϝϯόΛࢀর͍ͯ͠ΔprivateϝιουΛݺͼग़͢public method getPrivateMethodReferPublicVariable: function() { // ͜ͷ৔߹͸ίϯςΩετΛࢦఆ͠ͳ͍ͱ͍͚ͳ͍… return _getPublicVariable.call(this); }, // privateϝϯόʹΞΫηε͢Δprivate method _getPrivateVariable: function() { return _privateVariable; }, // publicϝϯόʹΞΫηε͢Δprivate method _getPublicVariable: function() { return this.publicVariable; }, // public variable publicVariable: 1, // private variable _privateVariable: 2 }); Usage

Slide 12

Slide 12 text

My idea is…

Slide 13

Slide 13 text

3. APIϥούʔΛ։ൃ zaim.js Zaim API wrapper. ŋNodeͷAPIϥούʔແ͔ͬͨ→ň࡞Ζ͏ʂʼn ŋCoverallsΛ࢖ͬͯΧόϨοδΛܭଌ https://github.com/hotchemi/zaim.js

Slide 14

Slide 14 text

npm install zaim NodeϞδϡʔϧ։ൃ͸ૂ͍໨ʂ

Slide 15

Slide 15 text

My idea is…

Slide 16

Slide 16 text

4. γΣϧΞϓϦ΋NodeͰॻ͘ zaim-cli CLI based Zaim client. ŋrequire commander, colors.js, zaim.js ŋDirty code...callback is difficult. https://github.com/hotchemi/zaim-cli

Slide 17

Slide 17 text

npm install -g zaim-cli

Slide 18

Slide 18 text

My idea is…

Slide 19

Slide 19 text

5. ωλهࣄ͢ΒNodeͰॻ͘ yutori-blog-bot twitter bot for @megascus. ŋΏͱΓ advent calendar 15೔໨ ŋRunnning on eXcale https://github.com/hotchemi/yutori-blog-bot

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

eXcale support Node.js

Slide 22

Slide 22 text

NodeΛ΍ͬͯྑ͔ͬͨࣄ ŋJavaScriptͷςετ΁ͷҙ͕ࣝߴ·Δ ŋඇಉظ΁ͷҙ͕ࣝߴ·Δ ŋCallback஍ࠈͷ਺͚ͩڧ͘ͳΕΔΑ ŋnpm͸ϞδϡʔϧΛ௒؆୯ʹެ։Ͱ͖Δ ŋ͍ͭͷؒʹ͔JavaScriptΛ޷͖ʹͳͬͯΔ

Slide 23

Slide 23 text

Let’s Node!! (JWFNFQVMMSFRVFTU Fin.