During React Conf 18, Sophie Alpert introduces React Hooks followed by a detailed analysis of the problem and solution by Ryan Florence.

React Hook is an experimental functionality proposed by RFC that helps developers to build easy, scalable, and maintainable Functional React Components with States and Context just like Stateful components.

Class vs Pure Function

There are few libraries out there solving these problems using Higher-Order-Components like ‘recompose’.

From the beginning React adopted a Class-based declarative syntax for UI rendering with State, Context, and Props. …

Creating interface as your contract with outside world. Use multiple plugs in multiple sockets with the help of an adapter.

Plugs and Sockets of various design
Plugs and Sockets of various design
Plugs and Sockets of Various Kinds

Imagine you are travelling to Europe. And normally you are carrying your phone and your charger. Now while travelling cross-country, you realise your phone charge is low and you immediately went on searching for a power outlet, and you got one. Alas! the outlet design does not match with your charging adapter. But lucky for you, you were carrying an portable universal power outlet to convert European port to multiple Universal Port. Boom, you solved the problem.

A perfect place to put your Domain logic for Data Models outside Enitity Definition


Mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects. — Edward Hieatt and Rob Mee in Patterns of Enterprise Application Architecture by Martin Fowler

Before We Begin

The Object-Relational Impedance Mismatch*

In industry, Relational Databases (e.g., OracleDB, MySQL, PostgreSQL) are the one most used as persistent data storage of an application. On the other hand, Object-oriented Programming is the dominant programming paradigm. So often it is the case that your application will be written in one of the languages that supports Object-oriented Programming patterns, whereas your database will be relational in nature. Now, the Object-oriented programming…

July Birthstone | The Old Farmer’s Almanac | Hexagon
July Birthstone | The Old Farmer’s Almanac | Hexagon
July Birthstone | The Old Farmer’s Almanac

Whenever I have to think to understand what the code is doing, I ask myself if I can refactor the code to make that understanding more immediately apparent. — Martin Fowler.

Any fool can write code that a computer can understand. Good programmers write code that humans can understand. — Martin Fowler


Before going on what is Hexagonal Architecture (also known as Socket and Port Architecture), one must first learn about Domain Driven Application Development, and what problem we are trying to solve here.

The very basic idea behind this type of application development philosophy is that don’t ask how…

Progyan Bhattacharya

Software Development Engineer II @ HackerRank

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store