I am Robert C. Martin (Uncle Bob). Ask me anything.

View original thread
Asad Ganiev's photo

Hi, Robert. I am self-taught java developer. I love java, but besides its annotations.

I think annotations even they seem very lovely and handy, they break Clean OOP Design. And do more harm then help. In my opinion most of java framework overuse it.

Instead of using them I prefer implementing abstraction (interface, abstract class).

Let's say we have an interface Saveable with method save(). When I implement it, the derived will have method save(). But when we have an annotation @Save. And I can annotate any method with any name even

@Save
public void delete(Object element){
     ...
}

And it makes confused other developer who will use this method. It's just a primitive example, but I think you got my point.