Data Modeling
Resources:
- Why Use Test Driven Development
- Advantages and disadvantages of Test Driven Development
- As a JS Developer, This Is What Keeps Me Up at Night
- When Is REST Better?
Review, Research, and Discussion
- Name 3 advantages to Test Driven Development
- TDD reduces the time required for project development. The TDD approach allows identifying any issues very fast due to fast feedback.
- Code flexibility and easier maintenance. According to the IEEE Software publication, implementation of Test Driven Development reduces the percentage of bugs by 40 - 80 percent, which consequently means that less time is required for fixing them.
- Better program design and higher code quality. When writing tests, programmers first have to define a goal they will achieve with the code piece.
- In what case would you need to use beforeEach() or afterEach() in a test suite?
- beforeEach and afterEach can handle asynchronous code in the same ways that tests can handle asynchronous code - they can either take a done parameter or return a promise.
- What is one downside of Test Driven Development
- Tests got to be maintained when requirements change
- What’s the primary difference between ES6 Classes and Constructor/Prototype Classes?
- The most important difference between class- and prototype-based inheritance is that a class defines a type which can be instantiated at runtime, whereas a prototype is itself an object instance.
- Why REST?
- REST is easy to understand: it uses HTTP and basic CRUD operations, so it is simple to write and document. This ease of use also makes it easy for other developers to understand and write services against.
- REST supports many data formats, but the predominant use of JSON means better support for browser clients.
Document the following Vocabulary Terms
- Functional programming
- Functional programming is a way of thinking about software construction by creating pure functions. It avoid concepts of shared state, mutable data observed in Object Oriented Programming.
- Object-oriented programming (OOP)
- It is a programming paradigm that relies on the concept of classes and objects. It is used to structure a software program into simple, reusable pieces of code blueprints (usually called classes), which are used to create individual instances of objects.
- Class
- Class are a blueprint or a set of instructions to build a specific type of object. It is a basic concept of Object-Oriented Programming which revolve around the real-life entities. Class determines how an object will behave and what the object will contain.
- super
- In a child class, you use super() to call its parent’s constructor and super.
to access its parent’s methods.
- In a child class, you use super() to call its parent’s constructor and super.
- this
- this keyword refers to an object, that object which is executing the current bit of javascript code.
- Test Driven Development (TDD)
- Test-driven development (TDD) is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against all test cases. This is opposed to software being developed first and test cases created later.
- Jest
- JavaScript Testing Framework with a focus on simplicity.
- Continuous Integration (CI)
- It is the practice of automating the integration of code changes from multiple contributors into a single software project. It’s allowing developers to frequently merge code changes into a central repository where builds and tests then run.
- REST
- stands for REpresentational State Transfer..
- REST is a set of principles that define how Web standards, such as HTTP and URIs, are supposed to be used
- Data Model
- It is an abstract model that organizes elements of data and standardizes how they relate to one another and to the properties of real-world entities.