Express, NPM, TDD, CI/CD
Questions
Why this matters
Node is often used for building server-side applications and creating back-end services and is what we’ll be using in this 401, and we have to learn how to use middleware properly. NPM is important because thats what we’re using to install packages. TDD is a habit that we need to get into to become industry ready and test our code properly.
An introduction to NodeJS and Express
Explain middleware, answer as though I were a non-technical recruiter. Middleware is a software layer that modifies or extends an application’s functionality.
Express the most popular __ __ __. Node middleware
Express is “unopinionated.” What does that mean? Express is “unopinionated,” meaning it does not force specific tools or workflows on the user.
What is a module and why is modularity useful to us as developers? A module is self-contained code that performs a specific task. Modularity makes code easier to understand, maintain, reuse, test, debug, and integrate with other code.
What is NPM?
What version of npm are you running on your machine? 8.15.0
What command would you type to install a library/package called ‘jshint’ into your node project? npm install jshint
What is TDD?
Explain why tests are important. Please explain as though I were your non technical elder.
Tests are important because they help ensure that an application is working correctly.
What are three expected benefits of testing
improved quality of the application, increased confidence in the application, and easier maintenance of the application.
Name at lest 2 individual pitfalls and at least 2 team pitfalls commonly encountered while writing tests.
Individual pitfalls - writing tests that are too broad or too specific, and not writing enough tests to adequately cover the application.
Team pitfalls - not having a consistent testing strategy, and not having a dedicated testing resource.
CI/CD
What are three benefits of Continuous Integration?
Benefits of Continuous Integration - faster feedback, easier identification of integration issues, and reduced risk of errors.
What is the difference between Continuos Delivery and Continuous Deployment? Explain how GitHub fits into this process assuming the listener comes from a non-technical background
Continuous Delivery involves automatically releasing code to a staging or production environment, while Continuous Deployment involves automatically releasing code to production.