Reactive Functional Programming or Reactive Programming is one of the trending paradigms¹. It is applying functional programming idioms to streams of elements.

Functional Programming is writing code in “stateless functions.” A stateless function process input and produces output without altering any global state. Functions can be chained together to construct a processing stage.

By collating all, Reactive Programming is applying “stateless processing” on streams of elements.


An element is an “entity of interest” for processing. It can be sophisticated as Business Object or simple as an integer.

A brief introduction

Parsing is a process of converting formatted text into a data structure. A data structure type can be any suitable representation of the information engraved in the source text.

  • Tree type is a common and standard choice for XML parsing, HTML parsing, JSON parsing, and any programming language parsing. The output tree is called Parse Tree or Abstract Syntax Tree. In HTML context, it is called Document Object Model (DOM).
  • A CSV file parsing can result in a List of List of values or aList of Record objects.
  • Graph Type is a choice for natural language parsing.

A piece of…

JavaScript Object Notion (JSON) is a de-facto standard for exchanging data over Web API. JSON is a recursive data structure and can be visualized as a key-value pairs tree.

There are two broad categories of APIs for reading information from JSON :

  • Streaming Based: It is parsing or visiting of JSON part by part. With each part iteration, you skip or map part to Object/s. Part maybe {, [, field, value, : , } , and ] (JSON Tokens!).
  • Binding based: Binding is mapping of JSON field to Programming Objects; these may be domain or abstract.

Continuous change is the key to balance software development.

Software development is not only about code. It is also about the process and the people around it. At the core, Product (Business) Managers and Developers turn the idea of Software into reality.

In the philosophical view of Software development, there exist two realms that affect the reality of Software: Product end and Technology end.

These are different in the perception of an application:

An Application is a set of features that support a business function. — Product View

An Application is a set of code, frameworks, libraries, services. — Developer View

In contrast, these are also associated in a…

Uploading files over the internet is not an easy task. It involves considerable challenges in developing a solution that works for all file sizes. Uploading files are prone to failures, users drop, and security risks. On each failure, the file needs to be re-uploaded: which adversely affects associated user experience.


The file upload takes considerable time: more the time to upload, more the chances of failures or connection drop. With each failure, a file needs to be re-uploaded from the beginning with traditional methods.

The time to upload file can be understood by the following equation:

time_to_upload = file_size /…

Publisher-subscriber event model on top of Reactive Programming.

Photo by Moja Msanii on Unsplash

Event-Based Programming is natural to any GUI based interface. HTML DOM¹ offers an inbuilt Event Notification model, but it is only useful when dealing with DOM Elements. There is no support for non-DOM elements.

Web applications have grown in complexity with time; also, JavaScript started participating in backend applications, which in turn made the world see JavaScript as more than HTML DOM manipulation gig.

This article showcases building up a custom event publisher-subscriber model on top of Reactive Programming for non-DOM elements.

Setting up Stage

Event-Driven programming paradigm² introduces an intuitive flow of control based upon events.

Button is clicked => show dialog.

Level up consistency of coding standard

EditorConfig | A coding standard system
EditorConfig | A coding standard system

Editor Config is an INI¹ format based configuration system that let you establish project level coding standard; It allows configuring: indentation style, indentation size, line width and more. It helps in reducing the effort required to bring each team member to the consistent coding standards by automatically importing and applying the configuration to IDE.

What is EditorConfig solving?

Whenever we work in a team, we set up some ground rules to work efficiently; in the programming world, those ground rules are coding standards.

Coding standards may include:

Level 0 — Universal file configuration: indentation style, line width, line ending, indentation size.

Level 1 —…

IDE integrated options to assist the writing of configuration files.

In modern software development, the applications are driven by configuration.

If configurable properties are large in numbers, then it is difficult to remember the purpose, structure and type of each property. It becomes a necessity to invest in the documentation of these properties.

This article explores IDE integrated options to assist in writing Spring Boot YAML based configuration.

Originally, this article was published on DZone on 3 December, 2019.

Spring Configuration Processor¹

Spring Boot provides an out of box mechanism for configuration documentation: include a jar named spring-boot-configuration-processor and trigger build.

annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
  1. You trigger build.
  2. It scans @ConfigurationProperties and constructs a JSON…

Tools of Object-oriented programming

With the introduction of OOPs, Inheritance and Composition entered our senses and still confusing us.

Choosing between Composition and Inheritance is not easy. Often, the decision depends upon the information which is not yet there.

The structure of an application plays an essential role in adding changes. Composition and Inheritance are the building blocks of an application structure. It is imperative to know when to use which one.

Photo by Chris Ried on Unsplash

Inheritance is a way of reusing code by inheriting the structure from the referred class or Type.

Hide your pain by combining commits.

Git is a leading version control software (VCS). There may be a time in your experience when you have to commit very often with a small change.

Typically, Feedback Loop involving work leads you to commit frequently.

  • To fix a problem, in a message-driven application, the impact of a fix is hard to foresee in downstream systems. The well-known technique: partially fix and verify.
  • You are experimenting with a configuration file driven system like CI (Jenkins, Travis). You have to frequent commits to check or learn the effect of the configuration changes.

Whatever the reason, if you look at the…

Puneet Sapra

Software Design Enthusiast.

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