I came across this framework, ok lets just call it plugin, because there are no words to describe what lombok is. For some might just be some nice plugin for IntelliJ (come on, no one is using eclipse nowadays!), for others some sort of auto generation wizardry, and for others (like me) a really neat way of keeping the code clean and avoid some nasty boilerplate code.

I am gonna keep this post short, because well, lombok is quite simple actually. Do you know every time you write a POJO in Java? Do you remember every time you have to auto generate those nasty getters and setters? And you end up with a file full of methods, that just fill up your screen? Yeah, those days are over… let me (quickly) introduce you to lombok.

Do you see this class:

import lombok.Data;

public class Person {

    private long id;
    private String name;
    private int age;


Lombok works through annotations, you just mark your POJO and the getters and setters will be generated. Or in other cases where lombok can help, for example @SneakyThrows allows to bypass a checked exceptions.
To tell you the truth, the @Data annotation generates you more than just getters and setters, also redefines the equals and hashcode method, and the toString as well. But you can specify each one of these by using @Getter, @Setter, @EqualsAndHashCode, @ToString respectably.
For cases where you need to avoid cyclic dependencies, you can specifically choose to ignore a particular field from being used in this auto-generation.

Now for this to work you have a nice IntelliJ plugin, and you guessed it right, also works in Android Studio.

I will leave you with some links but please feel free to ask me any questions.
IntelliJ Plugin: https://plugins.jetbrains.com/plugin/6317
Project Lombok: http://jnb.ociweb.com/jnb/jnbJan2010.html
Lombok dependencies (maven/gradle): https://projectlombok.org/mavenrepo/


Tags , ,

This week I published the talk I had given on how I evolved from a Monolithic architecture to a Clean Architecture based on Fernando Cejas proposal but with a few differences in the domain layer which I would like to explain. I am not saying these are better approaches but just some tweaks that made the data flow and the architecture clearer to me, so take them with a grain of salt.

Tags , , ,

In this post I will show how I organize my node.js applications. I’ll start explaning the nodejs principles, with examples.

NodeJs Principles

NodeJs follows the next principles:

Unix philosophy

  • “Small is beautiful”
  • “Make each program do one thing well”

Keep It Simple, Stupid (KISS) principle.

“Simplicity is the ultimate sophistication.” – Leonardo da Vinci

I think I already gave the idea of the way to structuring a node application. Creating microservices to do specific work, separating the complexity and decoupling the responsibilities.

One of the biggest problems that people have with Nodejs is the maintainability of the application. That’s the reason why is better to have 3 different micro applications than a big one.

Hi, I’m here to talk about building a web application with Node.js using MVC technique.

Well, for starters I’ve adventured alone in Node.js trying to make a simple website, only pages after pages, easily I’ve reached that but then I needed some organization and pre defined pages, only needed to set the data before send to the client, was here that I found Partial.js.

One of the new challenges I faced at my new job was understanding and adapting to DDD. It can be a bit confusing at first, but as soon as I made sense of it, I couldn’t not recommend it.

In this post i want to explain the basic concept of DDD.

What is DDD?

DDD consists in one domain project that doesn’t depend on anything, while the other projects depend on it. Usually, the domain project contains interfaces, domain entities and utility classes that don’t depend on third parties. Confusing? I’ll explain better in the example below.

Tags , , ,

Now, first of all let me tell you that I have never done any online course before. I knew about Udemy, Code Academy and even Coursera (where I was planning to start one) but Udacity’s course caught my attention because the lecturers are employees from Google. Another reason that grabbed my attention was the fact that it was about User Experience with a focus on Android, a theme that I am passionate about but which I have never seen in any other website.

In this blog post I will write about my experience with Udacity’s UX For Mobile Developers online course, to be more precise I am going to talk about their lessons, quizzes, assignments, etc.


Dialogs? What for?

Last tuesday, while coming back home by metro, I spotted someone using an app on an Android that caught my attention. She was getting frustrated because some dialogs were showing up from time to time warning her about internet connection problems and similar errors.

This is wrong and to understand why, let’s first read what the android developers website says about dialogs.