Software Construction Flashcards
What is Event driven architecture?
Software design pattern where the components are decoupled and asynchronous. It promotes scalability and responsiveness
What is an SDD?
Software design document is a detailed document that communicates the requirements and scope of a software system to guide development.
What does an SDD do in the SDLC?
Validates future work, facilities communication in a team and helps identify potential issues.
What are agile methods?
Development methods focused on flexibility, iterative delivery and increased project control
What does node.js use to be efficient and scalable?
Single threaded, event driven, non-blocking I/O model to handle concurrent connections
What is a module?
A JS file that contains functionality, classes or code to serve a certain purpose that can be reused
What is the difference between commonJS and ES modules?
ES modules are asychronous, and easier to import
What are the steps of debugging?
Identify the when (location), and the what (type of error)
What is asynchronous event handling? What are its features
Handles multiple events simultaneously without waiting for one to complete. It is scalable, non-blocking and concurrent.
What are event producers, and event consumers?
Producers generate events, consumers react - decoupling and modularity
What are the principles of working with modules?
Separation of concern
Single responsibility
Group directories and index.js files
What are code reviews?
Critically examining code to find quality and performance
What are the types of code reviews?
Informal
Walkthrough
Inspections
What are the types of request routes?
Static - do not change
Dynamic - data defined
Option Parameters - optional/default parameters
What is testing, and what are the two types?
Testing is the process of quantifying and validating the software.
Static testing verifies the code without executing, based on code, design etc (code reviews)
Dynamic testing validates the code by executing it to find issues in functionality (unit/integration testing)
What is positive testing?
Verifies that software operates as expected when providing valid inputs
What is negative testing?
Testing how the software handles invalid inputs and gives error messages