Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Node学園祭2017.pdf

kohta ito
November 25, 2017
2.2k

 Node学園祭2017.pdf

kohta ito

November 25, 2017
Tweet

Transcript

  1. $PQZSJHIU©  :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE ࣗݾ঺հ  ҏ౻ ߁ଠ ,PIUB *UP 5XJUUFS(JU)VC

     !LPI • /PEFKTݴޠαϙʔτ • ϓϥοτϑΥʔϜ։ൃຊ෦ • ΤϯδχΞΤόϯδΣϦετ
  2. $PQZSJHIU©  :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE ࣾ಺Ґஔ৘ใγεςϜʮQP[[Zʯ  • ਓͷҐஔݕࡧ • ϐϯͨͯڞ༗ •

    ϑϩΞͷࠞࡶ౓ • ࠲੮ϩοΧʔ؅ཧ https://techblog.yahoo.co.jp/advent-calendar-2016/pozzy/
  3. $PQZSJHIU©  :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE QP[[Zͷٕज़  • /HJOY • "OHVMBS+4ʢ༁͋ͬͯܥʣ •

    /PEFKTʢW • 3FEJT • .Z42-1PTUHSF42- • $JTDPͷ8J'JҐஔ৘ใऔಘػث 4人で約半年の開発(3人はJS初心者)
  4. $PQZSJHIU©  :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE &4-PWF  exports.get = async (req, res)

    => { const { permission } = checkRole(req) if (!permission) { throw new AuthError('permission error') } const { id, name } = req.query const where = db.getQuery(id, name) const { office } = await db.getOffice(where) return { status: 200, office } } 本当はまだ大部分がgenerator + co (開発時はv4 https://techblog.yahoo.co.jp/javascript/nodejs/Node-es6/ 設計 ・フロー制御はasync/await ・Node.js v8に上げても動いた!
  5. $PQZSJHIU©  :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE /PEFKT &4ͰΑ͔ͬͨ͜ͱ  • DBMMCBDL஍ࠈʹϋϚΒͳ͔ͬͨ • 並列処理はawait

    Promise.all • UIJTͷ๾໓ʢUIJTͰϋϚΒͳ͔ͬͨʣ • WBSͷ๾໓ʢείʔϓͰϋϚΒͳ͔ͬͨʣ • ϥϯλΠϜͷόʔδϣϯΞοϓ͕௒ָͩͬͨ +4ॳ৺ऀ͕ϋϚΔՕॴ͕গͳ͘ͳͬͨʂ
  6. $PQZSJHIU©  :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE /PEFKT &4Ͱਏ͔ͬͨ͜ͱ  • Τϥʔॲཧ • スタックトレースが出ないパターンがある

    const m = require('./mymodule') const main = async () => { await m.func() } main().catch((e) => { console.log(e) }) exports.func = () => { return new Promise((resovle, reject) => { setTimeout(() => { reject(new Error('hoge error')) }) }) } callback内でスタックが確定してしまう (別コンテクストのため呼び出し元のモ ジュールがでてこない)
  7. $PQZSJHIU©  :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE Ϡϑʔͷ/PEFKT  • 044σϕϩούʔೝఆ੍౓ • OSSへのコミットが業務にできる •

    活動予算100万円/年 • ΫϦΤΠλʔ׆ಈࢧԉ੍౓ • 技術力アップに月1万円まで支給 • Node学園祭にもいける • FUD https://about.yahoo.co.jp/pr/release/2017/10/02a/
  8. $PQZSJHIU©  :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE ݴޠαϙʔτνʔϜͷ࢓ࣄ  • /PEFKTͷόʔδϣϯΞοϓࠂ஌ • ࣾ಺ϓϥοτϑΥʔϜͱͷ࿈ܞ •

    /PEFKTηϛφʔ • /PEFKTϋϯζΦϯ • /PEF$PSF"1*ษڧձ IUUQTMJOPUJDFUVNCMSDPNQPTU