Readings: Express, NPM, TDD, CI/CD
Reading
An introduction to NodeJS and Express
Explain middleware, and answer as though I were a non-technical recruiter.
Middleware are custom functions or scripts run on the request or response objects. They are run during the request-response cycle.
Express the most popular __ __ __.
Node Web Framework
Express is “unopinionated.” What does that mean?
Unopinionated means there isn’t a “right way” to do things. That can make the framework more versatile yet more challenging to use.
What is a module, and why is modularity useful to us as developers?
A module is a JavaScript library or file that can be imported with the require
method.
What version of npm are you running on your machine?
version 9.1.2
What command would you type to install a library/package called ‘jshint’ into your node project?
npm i jshint
Explain why tests are important. Please explain as though I were your non-technical elder.
Tests are essential to ensuring code works before it goes into production. In addition, it allows for a way to check edge cases without relying on user feedback or having unexpected downtime.
What are three expected benefits of testing
Directly from the reading:
- many teams report significant reductions in defect rates, at the cost of a moderate increase in initial development effort
- the same teams tend to report that these overheads are more than offset by a reduction in effort in projects’ final phases
- although empirical research has so far failed to confirm this, veteran practitioners report that TDD leads to improved design qualities in the code, and more generally a higher degree of “internal” or technical quality, for instance improving the metrics of cohesion and coupling
Name at lest 2 individual pitfalls and at least 2 team pitfalls commonly encountered while writing tests.
What are three benefits of Continuous Integration?
- ensure everyone’s changes integrate
- catch bugs
- reduce merge conflicts
What is the difference between Continuous Delivery and Continuous Deployment?
Continuous delivery is an extension of continuous deployment. Continuous delivery is small modular changes that are tested during deployment allowing for little downtime during updates.
Explain how GitHub fits into this process assuming the listener comes from a non-technical background
GitHub has built-in testing that looks at the changes made to the code base and checks for issues before sending the changes down the pipeline.
Reflection
What are your learning goals after reading and reviewing the class README?
My learning goals are to retain what I am learning. There is so much in the README to learn, and not as much time as I would like to learn it all. I plan to take notes on topics I want to revisit later to ensure I get the most out of this course.