Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Node学園祭2017.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kohta ito
November 25, 2017
2.4k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Node学園祭2017.pdf
kohta ito
November 25, 2017
More Decks by kohta ito
See All by kohta ito
tfcon2022.pdf
koh110
0
1.7k
nodejs-commit
koh110
0
1k
Angular and me
koh110
0
2.1k
bonfire frontend#1
koh110
3
1.8k
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
For a Future-Friendly Web
brad_frost
183
10k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
510
Everyday Curiosity
cassininazir
0
310
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
490
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
A Soul's Torment
seathinner
7
3.5k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
510
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Transcript
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE ݄ ҏ౻ ߁ଠ /PEFKTΛͬͨ ࣾҐஔใγεςϜ Node学園祭2017
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE ࣗݾհ ҏ౻ ߁ଠ ,PIUB *UP 5XJUUFS(JU)VC
!LPI • /PEFKTݴޠαϙʔτ • ϓϥοτϑΥʔϜ։ൃຊ෦ • ΤϯδχΞΤόϯδΣϦετ
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE ࣾҐஔใγεςϜͷഎܠ • ຊ͔ΒلඌҪொʹҠసʢ • શ'ͰϑϦʔΞυϨεɺϑϦʔεϖʔεͩΒ͚ •
誰がどこにいる? • ミーティングはどこで? • ݕࡧͰ͖ΔΑ͏ʹʂ LODGE(コワーキングスペース)
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE ࣾҐஔใγεςϜʮQP[[Zʯ • ਓͷҐஔݕࡧ • ϐϯͨͯڞ༗ •
ϑϩΞͷࠞࡶ • ࠲੮ϩοΧʔཧ https://techblog.yahoo.co.jp/advent-calendar-2016/pozzy/
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE QP[[Zͷٕज़ • /HJOY • "OHVMBS+4ʢ༁͋ͬͯܥʣ •
/PEFKTʢW • 3FEJT • .Z42-1PTUHSF42- • $JTDPͷ8J'JҐஔใऔಘػث 4人で約半年の開発(3人はJS初心者)
$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に上げても動いた!
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE /PEFKT &4ͰΑ͔ͬͨ͜ͱ • DBMMCBDLࠈʹϋϚΒͳ͔ͬͨ • 並列処理はawait
Promise.all • UIJTͷ໓ʢUIJTͰϋϚΒͳ͔ͬͨʣ • WBSͷ໓ʢείʔϓͰϋϚΒͳ͔ͬͨʣ • ϥϯλΠϜͷόʔδϣϯΞοϓָ͕ͩͬͨ +4ॳ৺ऀ͕ϋϚΔՕॴ͕গͳ͘ͳͬͨʂ
$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内でスタックが確定してしまう (別コンテクストのため呼び出し元のモ ジュールがでてこない)
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE /PEFKT &4Ͱਏ͔ͬͨ͜ͱ どこでエラーがおきたんだ…… このへんでなんとかなりそう https://nodejs.org/api/async_hooks.html https://github.com/AndreasMadsen/trace
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE /PEFKT &4 /PEFKTͱ+BWB4DSJQU͕ ͖ͳ͋ͳͨΛ͓͍ͪͯ͠·͢ʂ
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE $PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE Ϡϑʔͷ ٕज़ऀࢧԉ੍
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE Ϡϑʔͷ/PEFKT • 044σϕϩούʔೝఆ੍ • OSSへのコミットが業務にできる •
活動予算100万円/年 • ΫϦΤΠλʔ׆ಈࢧԉ੍ • 技術力アップに月1万円まで支給 • Node学園祭にもいける • FUD https://about.yahoo.co.jp/pr/release/2017/10/02a/
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE $PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE ͓·͚
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE ݴޠαϙʔτνʔϜͷࣄ • /PEFKTͷόʔδϣϯΞοϓࠂ • ࣾϓϥοτϑΥʔϜͱͷ࿈ܞ •
/PEFKTηϛφʔ • /PEFKTϋϯζΦϯ • /PEF$PSF"1*ษڧձ IUUQTMJOPUJDFUVNCMSDPNQPTU
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE ݴޠαϙʔτνʔϜͷࣄ IUUQTMJOPUJDFUVNCMSDPNQPTU コアモジュールの使い方を、内部の コードを見ながら知識を深めていく。 修正点を見つけたら本体へPR
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE QP[[Zͷར༻ • 17ʢฏͷΈ • 66 •
ݕࡧdճ
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE QP[[ZͷΖΖ • ਓ͕͢Δ͔͠ͳ͍ • ϓϥΠόγʔʢτΠϨͱ͔ʣ •
৯ಊͷۭ͖۩߹
$PQZSJHIU© :BIPP+BQBO$PSQPSBUJPO"MM3JHIUT3FTFSWFE QP[[Zͷߏ 設計 ・全ての機能を1台に詰め込む -> スケールが簡単 ->
開発環境の構築が簡単 (DBは担当部署があるので外に) @gliffy