Representational State Transfer, or REST, is an increasingly common software architecture for creating APIs. REST, which was introduced by Roy Fielding in 2000, is not a technology in and of itself, but a set principles used to create services. RESTful APIs are almost always implemented using HTTP, but this is not a strict requirement. The following list enumerates a number of principles behind RESTful design. Read More →

Share Button

Anyone familiar with JavaScript development in the browser has no doubt encountered a situation where a long-running piece of code makes the user interface unresponsive. This behavior is an artifact of JavaScript’s single-threaded nature. For example, the compute() function below contains a long-running loop simulating computationally intensive code that, even with an empty loop body, will cause a noticeable lag in an application’s response time. Read More →

Share Button

We can plug and unplug any electrical appliances in sockets. Even though nothing is plugged in, the wall doesn’t explode

Read More →

Share Button

Usually, we don’t wire electrical appliances together by attaching the cable directly to the wall. Instead, we use plugs and sockets. A socket defines a shape that the plug must match. In an analogy to software design, the socket is an interface.

Read More →

Share Button

If you ever stayed in cheap hotel, you will see hair drier directly attached into the wall outlet.

Tight coupling

Now couple of problems here.

  • What if your hair drier stopped working?
  • What if hotel management decided to switch to new model which consumes less power?

Read More →

Share Button

The term Inversion of Control (IoC) is a computer programming technique wherein the flow of the control of an application is inverted. Rather than a caller deciding how to use an object, in this technique the object called decides when and how to answer the caller, so the caller is not in charge of controlling the main flow of the application. Read More →

Share Button