This is just an informal poll/discussion, if anyone is interested. I'm in a position where I need to think about this stuff a lot more lately and I want to avoid being in my own echo chamber.
After almost 30 years of
Java "lessons learned" (hopefully), is it fair to say that most experienced Java devs have learned to take it easy with all the...
- Frameworks (or custom "sub-frameworks")
- Over-engineering
- Abstractions / facades
- YAGNI "just in case we need it"
- Deep inheritance structures (i.e. prefer composition over inheritance)
- Over-use or eagerness to employ "patterns" (or other trendy stuff)
- Add your own if you want
I've definitely taken a turn in recent years (5-10) to keep things more on the simple side, and only add complexity or verbosity required to follow many "best practices"
when it's obviously needed. I would say it has worked out fairly well. Being careful not to over-build, and only employing popular paradigms or certain expensive 'best practices' where you see an obvious improvement from them at the very least tends to give you a smaller code base, in my experience.
Anyone feel differently (or the same)? Or are we still over-engineering stuff?