4 ms·
It's inconceivable to me that one could write an article on this topic without mentioning Spring and Spring Boot. In many cases, it serves as a pre-built set of
by oftenwrong 6y ago
It's inconceivable to me that one could write an article on this topic without mentioning Spring and Spring Boot. In many cases, it serves as a pre-built set of over-abstractions, and a great way to burden oneself by forcing all solutions to fit into an abstraction somebody else made. Like most major frameworks, it is undoubtedly convenient for throwing something together, but not conducive to making something well-crafted and maintainable. In my view, it is fine if you keep your code independent of it, but in my experience that rarely happens, and the code inevitably ends up as "a mess that works", and that can't easily be cleaned up.
- mattgreenrocks 6y agoThis is the result of every framework I’ve ever seen and used. It is just more apparent in Java due to being constrained to “OOP.”
- speed_spread 6y agoSpring works as a maintainable abstraction because it is known well enough within the industry that you can look for, and find, "Spring programmers". The framework's documentation, tests and release notes work to create a relatively coherent layer above the language, which would end being recreated a thousand ways by just as many creative coders if it didn't exist. Most of these in-house frameworks would be undocumented, poorly tested and unmaintained as soon as the lead coders left that department. Even for these standout projects that would be arguably better from a technical standpoint, none would offer the social advantage of a ubiquitous framework such as Spring provides. The desire to write new code is often so strong that I've seen Spring being itself re-wrapped in a local flavored "frameworks" that only brought value by ignoring parts of what Spring could do out of the box. The solution is most often to strip off the overwrapping and bring the app back to Spring primitives.
- logicslave 6y agoHonestly, after using spring and lombok annotation processing, I cant stand Java without them. So much code and functionality gets auto generated, the value is huge. Its just that if you havent worked with them before it looks like a huge abstracted mess.
- dopidopHN 6y agoExactly, for some reason I worked a lot with Spring over the last 10 years. I refactor any non-annotation based implementation first thing. But I never gave in to Lombok until recently, I was seeing it as gimmick at best. Like.... Ok, it will generate getters and setters, so can any IDE. Lombok actually makes writing and refactoring concise java code way easier. Eg: Macro like @builder allow to introduce immutability instantly. Notation of the form Dog.Builder().size(5).name("fido") are accessible for 'free' and are pretty reliable. ( read : you can tweak them if needed without looking a de-compiled code to understand what went wrong ) So, as much as I dislike Java and Spring. I think you are correct. A CRUD microservice can be expressed in reasonably concise way with the method you describe. ( and it's still plain old boring java code running on regular JVM )
- TedShiller 6y agoSpring sucks but Java Play Framework is great actually.