Is it necessary to overengineer Java programme?
Recently I've been studying Spring Boot and Spring Framework to develop a RESTful API application.
Previously I have been using Laravel to develop RESTful API for my work. But I decided to expand my programming horizon by learning additional la https://100001.onl/ https://1921681254.mx/ https://acc.onl/hotmailnguage, and seems like a strict type language can help me improve as a programmer.
Go and Kotlin looks complicated imo. Especially the lack of class in Go makes it harder for me to transition from PHP to Go. When I try Java, it can kind of grasp what I'm doing because both PHP and Java have almost similar structure when it comes to developing a class. Plus Spring Boot makes it easier for me to structure my project almost similar to the one like Laravel.
So far creating API and accessing the DB is not that difficult in Java I think. What concerns me at the moment on how people be saying Java is a "bureaucratic language" in a sense that a programmer has to go through all these overengineered project structures just to implement a feature.
As of now I can't grasp my head around with the theory and idea of Factory, Singleton, Interface, Adapter, yada yada yada that I've been hearing from people's complaints in Quora and Reddit.
Now with this concern in mind, I want to know that is it possible to develop a web application without implementing these design patterns, or do I eventually need to learn to use these in my project for the benefits that I don't know at the moment. Any drawbacks if I don't implement them in my project?