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

The JavaScript Software Factory

The JavaScript Software Factory

A talk I gave at ForwardJS March 1, 2017.

7224890c5ec4a3506f48908b425c3e62?s=128

Chris Castle

March 01, 2017
Tweet

Transcript

  1. The JavaScript SOFTWARE FACTORY ForwardJS March 1, 2017 Image: Jackson

    Jost
  2. Chris Castle Developer Advocate @crc Image: Ferdinand Stöhr

  3. THUNDER SNOW

  4. Image: Kalle K

  5. Programming is easy. Software development is hard. Image: Vladimir Chuchadeev

  6. Programming is easy. Image: Vladimir Chuchadeev

  7. Software development is hard. Image: Vladimir Chuchadeev

  8. You want to know what makes it even harder? Image:

    Markus Spiske
  9. None
  10. None
  11. None
  12. None
  13. None
  14. None
  15. None
  16. None
  17. None
  18. None
  19. None
  20. None
  21. None
  22. None
  23. None
  24. None
  25. None
  26. Fools ignore complexity. Pragmatists suffer it. Geniuses remove it. -

    Alan Perlis
  27. Simplicity is a great virtue but it requires hard work

    to achieve it and education to appreciate it. - E.W. Dijkstra
  28. None
  29. None
  30. SOME SIMPLIFYING TIPS

  31. None
  32. Stop spending time on the bottom two layers.

  33. None
  34. No global modules

  35. 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 }
  36. None
  37. The Twelve-Factor App

  38. https://12factor.net

  39. None
  40. Use yarn

  41. - Predictability - Security - Performance

  42. Deploy a lot

  43. None
  44. Make testing automatic

  45. None
  46. None
  47. Logging

  48. winston bunyan log4js morgan

  49. Debugging

  50. 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 })
  51. no debug output

  52. debug output

  53. Thank you Image: SpaceX