Image for post
Image for post

“Docker allows you to package an application with all of its dependencies into a standardized unit for software development.”

Before I tell you about Docker I will tell you a story that every developer has experienced at least once.

Once upon a time, there was a young developer who was quietly coding on his computer. …


Photo by Kristopher Roller on Unsplash

A container object which may or may not contain a non-null value

Introduction

During your life as a Java developer, you have surely encountered a NullPointerException. Read on if this is the exception you encounter the most. I imagine you might be thinking something like, “Yes, I agree, NullPointerExceptions is a pain for any Java developer, novice or expert, but there’s not much we can do about them.“ This is a common feeling in the programming world. Until Java 8 introduced Optional.

Optional allows an object to wrap those nullable values. …


The secure runtime for JavaScript and TypeScript

Image for post
Image for post
From Deno.land

Introduction

On June 2, 2018, the creator of NodeJS Ryan Dahl landed on the JSConf scene with maximum stress. He no longer supports NodeJS and starts talking about Deno. But what’s wrong with NodeJS? And why would Deno be our savior? Today I’m giving you the reasons behind this decision.

What are NodeJS Problems?

  • Not sticking with Promises: At the birth of NodeJS Ryan introduced the promises, in place of the callbacks, to remove them immediately after. …


Image for post
Image for post
From quarqus.io

A Kubernetes Native Java stack tailored for OpenJDK HotSpot and GraalVM, crafted from the best of breed Java libraries and standards.

Introduction

Quarkus is the latest addition to the Java world. This open-source framework initiated by Redhat has been talked about for some time. it improves start-up times, execution costs, increases productivity. This is why Quarkus was already considered by some to be the future of Java.

It was designed to allow the development of so-called cloud-native Java applications, or “Kubernetes native” to use their terms. …


Image for post
Image for post
Photo by Tim Gouw on Unsplash

Introduction

When it comes to enterprise applications, it is essential to properly manage concurrent access to a database. This means that we should be able to manage multiple transactions efficiently and, above all, without risk of error.

In addition, we must ensure that the data remains consistent between readings and simultaneous updates.

To do this, we can use the optimistic locking mechanism provided by the Java Persistence API. This means that multiple updates to the same data at the same time do not interfere with each other.

How to use optimistic locking?

To use optimistic locking, we need to have an entity including property with @Version annotation. When in use, each transaction that reads data contains the value of the version property. …


Image for post
Image for post

1. Introduction

What is the difference between Serializable and Externalizable in Java is among the famous Java interview questions. this is one of those difficult Java questions that nobody wants to see in the Java interview.

What makes serialization issues tricky is that serialization as a persistence mechanism is not very popular.

Serializing objects in Java allows you to create a sequence of bytes from any object that has implemented the Serializable interface, it also allows you to transform this sequence of bytes into an object. …


Image for post
Image for post

It’s better to have infinite scalability and not need it, than to need infinite scalability and not have it. Andrew Clay Shafer

As the server load increases, and it’s time to add hardware resources to your infrastructure, you have two approaches: increase your resources vertically or horizontally.

Vertical scalability

Vertical scalability is the most intuitive, it means adding resources to a single server (by adding RAM, boosting its CPU …). It’s simple but the cost of material capacity is rapidly exponential.

This solution has limits, You can probably multiply your server’s capabilities by 2, maybe even by 10, but not by 100.

Also usually, vertical scalability requires downtime while new resources are being added. …


Image for post
Image for post

Buy a house, or build your own carefully.

Developers often use the terms “library” and “framework” as if they were the same. But there is a difference.

Both libraries and frameworks are reusable code written by someone else. Their purpose is to help you solve common problems in easier ways.

We can use a house as a metaphor to explain the difference between these concepts.

A library is like building your home from scratch, you have the choice to make your house as you wish, with any architecture you like, you can sort your rooms in the way you like.

On the other hand, Framework is like buying a new house, you don’t have to deal with building problems, but you can’t choose how to sort your rooms because the house is already built. …

About

Sofiene Ben Khemis

Software Engineer. Im not perfect. still running after my dreams. going to the moon 🌑

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