Hexagonal architecture, or port and adapter architecture, is an architectural pattern used in software design. It aims to create systems based on application components that are loosely coupled and can be easily connected to their software environment through ports and adapters. These components are modular and interchangeable, which enhances processing consistency and facilitates test automation.
In this article, we will first explain the hexagonal architecture in more detail, then will create a spring boot application based on this architecture 😀.
Microservices are an architectural approach to application development. A microservices architecture differs from a classic monolithic approach in that it breaks down the application to isolate key functions. Each of these functions is called a “service” and these services can be developed and deployed independently of each other. Thus, each can function (or malfunction) without affecting the others.
“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. He was in a hurry because he had to present his work the next morning. After hours of work, the application was there, and it worked perfectly! The next day, our coder arrived proudly for his presentation, with his project on a USB key. …
A container object which may or may not contain a non-null value
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 allows an object to wrap those nullable values. …
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.
A Kubernetes Native Java stack tailored for OpenJDK HotSpot and GraalVM, crafted from the best of breed Java libraries and standards.
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. …
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.
To use optimistic locking, we need to have an entity including property with
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. …
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 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.
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.
Software Engineer. I’m not perfect. still running after my dreams. going to the moon 🌑