A Guide to jpackage in Java 14

In my latest article published on Baeldung, I explore the new jpackage tool introduced in the Java 14:
A Guide to jpackage in Java 14

What do you think?



String API Updates in Java 12

Java 12 added a couple of useful APIs to the String class. Here’s my article published on Baeldung: String API Updates in Java 12

Hope you find it useful.



Introduction to Domain-Driven Design

Last week, I gave a presentation on Domain-Driven Design in my office. It was a quick introductory level one hour presentation intended to give the audience a general idea of DDD.

Here is the link to the presentation slides which I prepared in Reveal.js:

Hope you find it useful.



Serializing and Deserializing a List with Gson

In my latest article published on Baeldung, I explore some advanced serialization and deserialization use cases of Java List using Google’s GSon library:
Serializing and Deserializing a List with Gson

Hope you find it useful.



Somebody else’s Hello World

If you are writing it from scratch, you are most likely doing it wrong.

I concluded after seeing tones of lines of code implementing simple ORM in a product which had no business doing it from scratch. The code was technical debt from day one and was treated so — redundant, unmaintainable, full of static functions satisfying individual developers urgent itch.

Whenever faced with a challenge, why do we have a tendency to start from scratch? What makes it so hardwired that it takes many years of experience to avoid this trap?

I think the problem is with the way we learn to write code. Too often our exercises and assignments expects us to starts from scratch. Each of us start with our own Hello, World. We practice tones of programs, each starting from scratch. We become good at it — at starting from scratch. So good that it becomes our default starting mode for any programming task. It also becomes our default starting point while thinking of a solution.

I am sure we could come up with ways to learn code which are also in sync with ways to software engineering.