Express, NPM, TDD, CI/CD

My reading journal for Code Fellows

Express, NPM, TDD, CI/CD

Readings


An introduction to NodeJS and Express

  1. Explain middleware, answer as though I were a non-technical recruiter.

    • basically a translator between operating systems and apps
  2. Express the most popular __ __ __.

    • node web framework
  3. Express is “unopinionated.” What does that mean?

    • make it easier for developers to use the most suitable tools to complete a particular task
  4. What is a module and why is modularity useful to us as developers?

    • JS file, and it can help keep your code organzied and managable, not all your code on one file

What is NPM?

  1. What version of npm are you running on your machine?

    • 8.19.1
  2. What command would you type to install a library/package called ‘jshint’ into your node project?

    • npm install jshint

What is TDD?

  1. Explain why tests are important. Please explain as though I were your non technical elder.

    • you want to test you hard work before you can say it comeplete, it’s like that
  2. What are three expected benefits of testing

    • significant reductions in defect rates at the cost of a moderate increase in initial development effort, these overheads are more than offset by a reduction in effort in projects’ final phases, TDD leads to improved design qualities in the code
  3. Name at lest 2 individual pitfalls and at least 2 team pitfalls commonly encountered while writing tests.

    • forgetting to run tests frequently/writing too many tests at once, partial adoption – only a few developers on the team use TDD/poor maintenance of the test suite – most commonly leading to a test suite with a prohibitively long running time

CI/CD

  1. What are three benefits of Continuous Integration?

    • ensures the teams changes will intergrate, catches bugs, reduces merge conflicts
  2. What is the difference between Continuos Delivery and Continuous Deployment?

    • Delivery is the practice of developing software in such a way that it could be released at any time/deployment is an extension of CI that allows you to deploy changes in real time
  3. Explain how GitHub fits into this process assuming the listener comes from a non-technical background

    • working in a team github will help orgaize your project and you can see changes in realtime

Bookmark and Review


nodeJS docs

npm docs

express docs

http status codes

supertest

Things I want to know more about