Posts

Showing posts from 2018

Reactive Programming with Observables in RxJS and Angular

We have seen that now a days reactive programming has changed the whole structure of how we develop our web application. Reactive programming is a programming paradigm that works with asynchronous data streams.It treats everything as a stream ordered in time and this stream can be generated by Http Requests, UI Events or array-like objects etc. RxJS is one of the implementation in javascript of ReactiveX API.These API can be used with many others languages such as Java, C#, Python, PHP, ruby etc. It is a library for composing asynchronous and event-based programs by using observable sequences for reactive programming In this post we will deep dive how RxJS observables are being used with Angular to do reactive programming and different operator which RxJs provides to handle the data well. So Let's start from observables first . What are Observables ?    Observables are nothing but a stream of data whose data arrive asynchronously .These data streams can be of anythi

Deploy standalone Spring MVC Application in Docker Container

Image
In this post we will deploy simple standalone spring mvc application in Docker container. If you want to deploy the spring boot application in docker container, you can check my post Containerize Spring Boot application using Docker   . We know that in spring boot application there is embed Tomcat application server and run our app on top of it but in case of standalone spring mvc application we don't have embed Tomcat server , hence we need to deploy the application in explicit tomcat standalone server. Process to deploy the spring mvc in docker container : 1) First we need to get the Tomcat image. 2) Second to deploy the war in tomcat we need to save it in tomcat webapps direcory. Create Docker file  FROM : Using docker FROM command we are fetching the tomcat image from the Docker Hub. COPY : In the second line we are copying the war file in tomcat webapp directory. Note :  Any war saved in the tomcat webapps folder will be installed on tomcat start up. Yo

Containerize Spring Boot Application using Docker

Image
In this post we will deploy the simple Spring Boot Hello World application into Docker container. Going through,  we will see some other important concepts like how to go inside docker container and verify the images created. To deploy the Jar file into container, we will use the docker own build form i.e. Dockerfile. A Dockerfile is in principle, a linewise batch file, containing commands to build an image. It’s not absolutely necessary to put these commands into a file, because we’re able to pass them to the command-line, as well – a file is simply more convenient. Set up Spring Boot Application The following project can be cloned from official git repository in order to run the basic example of spring boot application inside a container. $git clone https://github.com/spring-guides/gs-spring-boot-docker.git Its a simple Hello world application. The code for the java file is as below : Create Dockerfile Docker has a simple Dockerfile file format that it uses t

Refactor Code : Separate Query from Modifier

In this post we will learn about the one of the important code refactoring algorithm "Separate Query from Modifier" .When you have a method that gives you a value and has no observable side effects, you have a lot less to worry. You can move the call to other places in this method freely. A good rule to follow is to say that any method that returns a value should not have other observable side effects.  You have a method that returns a value but also changes the state of an object . Create two method, one for the query and one for the modification. We first take the example of the below and will find out what is wrong with this code and refactor it. In the above , method findMiscreant(List<Person> people) signifies that its responsibility will be to find miscreant only. But if we give clear look to the method , apart from finding Miscreant , it is sending some notification as   SendAlert()  to other system . Hence we can easily see that this method is doi