View on GitHub

reading-notes

https://samahabujwaied.github.io/reading-notes/

Name 3 advantages to Test Driven Developmen

  1. Better program design and higher code quality

  2. Detailed project documentation

  3. TDD reduces the time required for project development

In what case would you need to use beforeEach() and afterEach() in a test suite?

The difference is beforeEach()/afterEach() automatically run before and after each tests, which:

  1. removes the explicit calls from the tests themselves.
  2. invites inexperienced users to share state between tests.

What is one downside of Test Driven Development

Probably, the strongest argument against TDD is that the tests need to be maintained because the code has got to. Whenever requirements change, you would like to vary the code and tests. … So, actually, this disadvantage is that the same as before when writing code that apparently takes an extended time.

What’s the primary difference between ES6 Classes and Constructor/Prototype Classes?

In ES6, the “class” keyword and associated features are a new approach to creating prototype constructors. They are not true classes in a way that would be familiar to users of most other object-oriented languages. The constructor property returns a reference to the Object constructor function that created the instance object. Note that the value of this property is a reference to the function itself, not a string containing the function’s name.

Why REST ?

REST aims to make caching easier. Since the server is stateless and each request can be processed individually, GET requests should usually return the same response regardless of previous ones and the session. This makes the GET requests easily cacheable and browsers usually treat them as such

Term Definition
functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program.
object-oriented programming (OOP) Object-oriented programming is based on the concept of objects. In object-oriented programming data structures, or objects are defined, each with its own properties or attributes. Each object can also contain its own procedures or methods. Software is designed by using objects that interact with one another
class In object-oriented programming, a class is an extensible program-code-template for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions or methods).
super The super keyword refers to the parent class. It is used to call the constructor of the parent class and to access the parent’s properties and methods
this this in a Method
In an object method, this refers to the “owner” of the method.  
Test Driven Development 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 as opposed to software being developed first and test cases created later.
Jest Jest is a JavaScript testing framework designed to ensure correctness of any JavaScript codebase. It allows you to write tests with an approachable.
Continuous Integration (CI) Continuous Integration and Continuous Deployment are two modern software development practices. Continuous Integration (CI) is the process of automating the build and testing of code every time a team member commits changes to version control.
REST REST stands for REpresentational State Transfer. REST is web standards based architecture and uses HTTP Protocol. It revolves around resource where every component is a resource and a resource is accessed by a common interface using HTTP standard methods.
Data Model JSON objects and arrays in the ABL are based on the objects and arrays of the JavaScript data model. JavaScript objects are associative arrays. Object property names can be any Unicode string. Properties and their values can be added, changed, or deleted at runtime.