Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
The JavaScript Software Factory
Chris Castle
March 01, 2017
Programming
0
100
The JavaScript Software Factory
A talk I gave at ForwardJS March 1, 2017.
Chris Castle
March 01, 2017
Tweet
Share
More Decks by Chris Castle
See All by Chris Castle
crc
0
5.5k
crc
0
78
crc
2
530
Other Decks in Programming
See All in Programming
suzukiot
0
250
doyaaaaaken
0
820
manfredsteyer
PRO
0
130
mehowte
0
180
yotuba088
1
590
ryosukes
0
1.3k
abeta
1
200
grapecity_dev
0
190
williln
0
220
sters
2
140
legalforce
PRO
0
630
aftiopk
0
110
Featured
See All Featured
geeforr
332
29k
zenorocha
296
40k
bryan
31
3.4k
lemiorhan
627
43k
jcasabona
8
550
cherdarchuk
71
260k
bkeepers
408
58k
chriscoyier
683
180k
sugarenia
233
850k
sferik
610
55k
addyosmani
311
21k
jponch
103
5k
Transcript
The JavaScript SOFTWARE FACTORY ForwardJS March 1, 2017 Image: Jackson
Jost
Chris Castle Developer Advocate @crc Image: Ferdinand Stöhr
THUNDER SNOW
Image: Kalle K
Programming is easy. Software development is hard. Image: Vladimir Chuchadeev
Programming is easy. Image: Vladimir Chuchadeev
Software development is hard. Image: Vladimir Chuchadeev
You want to know what makes it even harder? Image:
Markus Spiske
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
Fools ignore complexity. Pragmatists suffer it. Geniuses remove it. -
Alan Perlis
Simplicity is a great virtue but it requires hard work
to achieve it and education to appreciate it. - E.W. Dijkstra
None
None
SOME SIMPLIFYING TIPS
None
Stop spending time on the bottom two layers.
None
No global modules
1 { 2 "name": "js-software-factory-samples", 3 "version": "1.0.0", 4 "description":
"Sample codez!", 5 "main": "index.js", 6 "author": "Chris Castle", 7 "license": "MIT", 8 "dependencies": { 9 "left-pad": "^1.1.3" 10 }, 11 "devDependencies": { 12 "gulp": "^3.9.1" 13 } 14 }
None
The Twelve-Factor App
https://12factor.net
None
Use yarn
- Predictability - Security - Performance
Deploy a lot
None
Make testing automatic
None
None
Logging
winston bunyan log4js morgan
Debugging
1 const debug = require('debug')('http') 2 const http = require('http')
3 4 http.createServer((req, res) => { 5 debug(`${req.method} ${req.url}`) 6 res.end('hello\n') 7 }).listen(3000, () => { 8 debug('listening'); 9 })
no debug output
debug output
Thank you Image: SpaceX