Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Node.js開発を高速化するAirlaneの紹介
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Atsushi Nakatsugawa
PRO
January 11, 2017
Technology
240
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Node.js開発を高速化するAirlaneの紹介
【新年】日本酒で乾杯!ランサーズ Drink Meetupでの発表資料です。
Atsushi Nakatsugawa
PRO
January 11, 2017
More Decks by Atsushi Nakatsugawa
See All by Atsushi Nakatsugawa
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.9k
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
640
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
6
3.9k
コーディングだけ速くとも意味がない。自動レビューによる開発の高速化
moongift
PRO
0
110
AI 支援研究開発におけるコードレビューの役割と限界
moongift
PRO
0
190
個人AIからチームAIへ:開発における品質と生産性の再設計
moongift
PRO
0
500
AI活用の格差をなくす:チーム全体のAI開発生産性を底上げする方法
moongift
PRO
1
770
CodeRabbit 2026年04月アップデート
moongift
PRO
0
110
AI時代のIssue駆動開発のススメ
moongift
PRO
0
660
Other Decks in Technology
See All in Technology
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
160
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
270
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
470
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
2
490
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
140
Snowflakeで実現する全社横断の顧客の声(VOC)分析・活用基盤@Snowflake World Tour Tokyo 2026
yuto16
0
190
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
4
480
module Synths; end
asonas
1
130
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
1
480
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
150
消えない 動かない 効かない
yama3133
1
110
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
5
25k
Featured
See All Featured
Paper Plane
katiecoart
PRO
3
53k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
sira's awesome portfolio website redesign presentation
elsirapls
0
410
Accessibility Awareness
sabderemane
1
210
Skip the Path - Find Your Career Trail
mkilby
1
220
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
500
The Language of Interfaces
destraynor
162
27k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
GitHub's CSS Performance
jonrohan
1033
470k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
820
Speed Design
sergeychernyshev
33
2.1k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
Transcript
/PEFKT։ൃΛߴԽ ͢Δ"JSMBOFͷհ .00/(*'5தಞ࢘
ࣗݾհ !NPPOHJGU GCNFNPPOHJGUGBO தಞ࢘ גࣜձࣾ.00/(*'5දऔక χϑςΟΫϥυNPCJMFCBDLFOE 9PKPIJpWFΤϰΝϯδΣϦετ ݄ΑΓΦʔϓϯιʔεɾιϑτΣΞΛຖ հ͢Δϒϩά.00/(*'5ΛӡӦɻ
IUUQXXXNPPOHJGUKQ
+BWB4DSJQU͖Ͱ͔͢ʁ
+BWB4DSJQU 8FCϒϥβͰಈ͘อূ͕͋Δ།Ұͷϓϩάϥ ϛϯάݴޠ /PEFKTΛ͑αʔόαΠυɺ3BTQCFSSZ1J ͷ։ൃ 3FBDU/BUJWFͳΒεϚʔτϑΥϯΞϓϦͷ։ൃ
հͳ ίʔϧόοΫࠈ Ϋϥε͕ͳ͍ ׅހ͕ͨΒͱଟ͍ 1SPNJTFͰղܾͰ͖ΔΑ &$."ͰղܾͰ͖ΔΑ &$."ͰղܾͰ͖ΔΑ
/PEFKTͰͷαʔόαΠυ։ൃ &YQSFTTΛ͏ͷ͕جຊ ଞʹ,PBͱ͔)BQJͱ͔3FTUJGZͱ͔4BJMTKTͱ͔ʜ &YQSFTT(FOFSBUPSΛ͑͋ Δఔͷϕʔε͕ੜ͞ΕΔ
\ /_ / ヽ / } レ,' / ̄ ̄ ̄ ̄\ |`l`ヽ /ヽ/ <´`ヽ u ∨ u i レ'
/ └l> ̄ !i´-) |\ `、 ヽ), />/ / 地 ほ こ !´ヽ、 ヽ ( _ U !、 ヽ。ヽ/,レ,。7´/-┬―┬―┬./ 獄 ん れ _|_/;:;:;7ヽ-ヽ、 '') ""'''`` ‐'"='-'" / ! ! / だ. と か | |;:;:;:{ U u ̄|| u u ,..、_ -> /`i ! ! \ :. う ら | |;:;:;:;i\ iヽ、 i {++-`7, /| i ! ! <_ の が __i ヽ;:;:;ヽ `、 i ヽ、  ̄ ̄/ =、_i_ ! ! / ヽ ヽ;:;:;:\ `ヽ、i /,ゝ_/| i  ̄ヽヽ ! ! ,, -'\ ヽ、\;:;:;:;:`ー、`ー'´ ̄/;:;ノ ノ ヽ| / ,、-''´ \/ ̄ ̄ ̄ ̄  ̄ ̄ ̄ Y´/;:;:;\
&YQSFTTͷਏΈ )551ϝιουͷ165%&-&5&͕ղऍ͞Εͳ͍ var methodOverride = require('method-override'); app.use( methodOverride( (req, res)
=> { if (req.body && typeof req.body === 'object' && '_method' in req.body) { var method = req.body._method; delete req.body._method; return method; } }));
&YQSFTTͷਏΈ ηογϣϯػೳ͕༻ҙ͞Ε͍ͯͳ͍ app.use(session({ secret: config.session.key, resave: false, saveUninitialized: true, store:
new NedbStore({ filename: path.join(target_dir, config.session.path) }) }));
&YQSFTTͷਏΈ SFRVJSFࠈʜ JOEFYKT WBSGTSFRVJSF bGT` SFRVJSF bMJCT` MJCTKT
WBSGTSFRVJSF bGT`
&YQSFTTͷਏΈ σʔλϕʔεϝʔϧૹ৴ɺςϯϓϨʔτΤϯδϯ ผ్༻ҙ͢Δඞཁ͕͋Δ ˠ͔͠τϨϯυ͕มΘΔ
&YQSFTTͷਏΈ XFCQBDLEFWTFSWFS OPEFNPO SFMPBEJGZ ΦʔτϦϩʔυɺ࠶σϓϩΠ͠ͳ͍ ཁผϥΠϒϥϦ·ͨ࠶ىಈ
/PEFKTͷਏΈ HVMQpMFKT XFCQBDLDPOpHKT QBDLBHFKTPO ઃఆϑΝΠϧ͕৭ʑඞཁʜ
/PEFKTͷਏΈ τϨϯυʢʁʣͷมԽ͗͢ ʲ༁ʳʹ+BWB4DSJQUΛֶΜͰͲ͏ײ͔ͨ͡&OEP5FDI#MPH IUUQLJLVDIJIBUFCMPKQFOUSZ 3FBDU 3FBDU%0. #BCFM +49 &4 ".%
$PNNPO+4 #SPXTFSJGZ #PXFS "OHVMBS 7VF+4 3Y+4 (SVOU (VMQ #SPDPPMJ .JNPTB 8FCQBDL 4ZTUFN+4 5ZQFTDSJQU 'MPX #MVFCJSE 'FUDI "YJPT 'MVY 'MVNNPY 'MVYJCMF 3FEVY 1MBUFT+4
͞Βʹ࡞͙ͬͯ͢όʔδϣϯΞοϓʜPS[ 2JJUBͷใͲΜͲΜݹ͘ͳ͍ͬͯ͘ʜPS[
/\___/ヽ ヽ / ::::::::::::::::\ つ . | ,,-‐‐ ‐‐-、 .:::| わ
| 、_(o)_,: _(o)_, :::|ぁぁ . | ::< .::|あぁ \ /( [三] )ヽ ::/ああ /`ー‐--‐‐―´\ぁあ
ཉ͍͠ͷ Ͱ͖Δ͔ Εͳ͍ͷ ͷΓํ ྑ͍ͷ୳͠ํ ΛҭͯΑ͏ ੜଶܥΛ͑Α͏ ͜Μͳͣ͡Όͳ͔ͬͨʜ
ͦ͜Ͱ"JSMBOFͰ͢Α )BWFBQMFBTBOUqJHIU
"JSMBOFͷಛ w ΦʔτϦϩʔυɺΦʔτϦσϓϩΠ w SFRVJSFࠈ͔Βͷ։์ʢࣗಈಡΈࠐΈʣ w ίʔυΛੜ͢ΔδΣωϨʔλࡌ w ઃఆΑΓنʢ3BJMT෩ʣ w
03ϚούʔɺϚΠάϨʔγϣϯࡌ
໊લͷ༝དྷ
Πϯετʔϧ OQNJOTUBMMBJSMBOFH
࢝Ίํ BJSMBOFJOJU:063@"11@/".& DE:063@"11@/".& OQNJOTUBMM
αʔόΛཱͯΔ BJSMBOFTFSWF PQFOIUUQMPDBMIPTU
ϧʔςΟϯάίϯτϩʔϥ ᵓᴷᴷDPOpHKT ᵓᴷᴷNPEVMFT ᵓᴷᴷQBDLBHFKTPO ᵓᴷᴷSPVUFT ᴹᵓᴷᴷDPOUSPMMFSKT ᴹᵓᴷᴷJOEFYKT ᴹᵓᴷᴷQVCMJD ᴹᴹᵓᴷᴷBQQDTT ᴹᴹᵋᴷᴷBQQKT
ᴹᵓᴷᴷUFTU ᴹᴹᵋᴷᴷDPOUSPMMFS@UFTUKT ᴹᵋᴷᴷWJFXT ᴹᵓᴷᴷFEJUKBEF ᴹᵓᴷᴷJOEFYKBEF ᴹᵓᴷᴷMBZPVUKBEF ᴹᵋᴷᴷOFXKBEF ᵋᴷᴷUNQ ίϯτϩʔϥ ϧʔςΟϯά
ϧʔςΟϯά WBSFYQSFTTSFRVJSF FYQSFTT WBSSPVUFSFYQSFTT3PVUFS WBSDPOUSPMMFSSFRVJSF DPOUSPMMFS NPEVMFFYQPSUTNPEVMF\
SPVUFSBMM SFR SFT OFYU \ DPOUSPMMFSBMM SFR SFT OFYU ^ (&5 4IPXJOEFYQBHF SPVUFSHFU SFR SFT OFYU \ DPOUSPMMFSJOEFY SFR SFT OFYU ^ (&5OFX 4IPXDSFBUFQBHF SPVUFSHFU OFX SFR SFT OFYU \ DPOUSPMMFSOFX SFR SFT OFYU ^ SFUVSOSPVUFS ^ }ϧʔτͷ(&5ΞΫηε }OFXͷ(&5ΞΫηε
ίϯτϩʔϥ DMBTT5PEP$POUSPMMFS\ DPOTUSVDUPS \ > (&5 JOEFY SFR SFT OFYU
\ SFTSFOEFS JOEFY ^ 1045 (&5OFX OFX SFR SFT OFYU \ SFTSFOEFS OFX ^ ^ NPEVMFFYQPSUTOFX5PEP$POUSPMMFS
ϧʔςΟϯάՃ BJSMBOFHFOFSBUFSPVUFVTFST
Ճ͞ΕΔϑΝΠϧ USFF ᵓᴷᴷSPVUFT ᴹᵓᴷᴷDPOUSPMMFSKT ᴹᵓᴷᴷJOEFYKT ᴹᵓᴷᴷVTFST ᴹᴹᵓᴷᴷDPOUSPMMFSKT ᴹᴹᵓᴷᴷJOEFYKT ᴹᴹᵓᴷᴷQVCMJD
ᴹᴹᴹᵓᴷᴷBQQDTT ᴹᴹᴹᵋᴷᴷBQQKT ᴹᴹᵓᴷᴷUFTU ᴹᴹᴹᵋᴷᴷDPOUSPMMFS@UFTUKT ᴹᴹᵋᴷᴷWJFXT ᴹᴹᵓᴷᴷFEJUKBEF ᴹᴹᵓᴷᴷJOEFYKBEF ᴹᴹᵓᴷᴷMBZPVUKBEF ᴹᴹᵋᴷᴷOFXKBEF ᵋᴷᴷUNQ VTFSTҎԼʹରԠ }
ϚΠΫϩαʔϏεߏ σΟϨΫτϦຖʹϧʔςΟϯάɺίϯτϩʔϥɺςε τɺϏϡʔɺ+BWB4DSJQUελΠϧγʔτΛอ࣋ VTFSTBQQNJOKTɺVTFSTBQQNJODTTͰΞΫη εՄೳʢϏϡʔςϯϓϨʔτʹ͋Β͔͡ΊΈࠐΈࡁ Έʣ
03Ϛούʔ 03.Λ࠾༻ %#ઃఆDPOpHKTPOʹͯࢦఆ BJSMBOFHFOFSBUFNPEFMECVTFS ࣗಈಡΈࠐΈͰNPEVMFTҎԼͷϑΝΠϧΛಡΈࠐ ΈɺίϯτϩʔϥϧʔλͰར༻Մೳʹ
ϚΠάϨʔγϣϯ BJSMBOFHFOFSBUFNJHSBUJPOVTFS@BEE@JOEFY BJSMBOFNJHSBUJPOVQcEPXOcSFEP
ϝʔϧ BJSMBOFHFOFSBUFNPEFMNBJMFSDPOUBDU 4.51ઃఆDPOpHKTPOʹͯࢦఆ
Ϣχοτςετ .PDIBΛ࠾༻ BJSMBOFUFTU
"JSMBOFʜ طଘͷஔ͖͑Ͱͳ͘ɺطଘϥΠϒϥϦ܈ΛΈ߹ Θͤͯߏங ࣗಈಡΈࠐΈͱδΣωϨʔλͰίʔσΟϯάΛݮΒ͢ εϜʔζʹɺ։ൃͷ໘͞Λͳ͘͢
ݱࡏͷ։ൃঢ়گ BJSMBOFWFSTJPO
ٻΉίϯτϦϏϡʔλʂ IUUQTHJUIVCDPNNPPOHJGUBJSMBOF *TTVFػೳཁܴʂ
IUUQBJSMBOFPSH
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ GCNFNPPOHJGU 'PMMPXNF !B@OBLBUTVHBXB