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
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Context Engineering - Making Every Token Count
addyosmani
9
960
GraphQLとの向き合い方2022年版
quramy
50
15k
Done Done
chrislema
186
16k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Faster Mobile Websites
deanohume
310
31k
The agentic SEO stack - context over prompts
schlessera
0
820
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
390
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Everyday Curiosity
cassininazir
0
230
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