Kirill Dakhniuk

July 17, 2024

The Art of Over-engineering

Hey Reader,

During my career as a Laravel developer, I have read books, numerous articles, and watched countless videos about different design patterns and various techniques to make code readable, maintainable, and more. I have learned a lot from these resources, and I am definitely grateful for that. However, I initially fell in love with Laravel because of its simplicity.

I watched Laracasts where Jeffrey said, “Sometimes you need to make a complex solution for a problem; sometimes you don’t. In most cases, you don’t.” I’m almost sure he said something else, but that’s how I remember it. Anyway, at first, I just couldn’t grasp all those Repositories, Modules, DDD, and so on. I was thinking, “Why? It could be easily handled inside a controller and be abstracted when needed.” Time passed, and slowly but surely, I started to create complex solutions for simple problems myself. It wasn’t just because someone told me to; I think I just became a knowledge-driven developer. I started solving code problems instead of business problems, potential problems instead of real ones. Of course, this isn’t always the case, but you get the point.

So, what am I going to do about it? It’s hard to say. Right now, I have a side project where I use Laravel Livewire Volt Functional API, which provides a dead simple solution to common problems. I guess I want to become a problem-solving developer eventually. It’s not that I don’t care about readability or maintainability; it’s just that I want to be able to create more instead of solving potential issues of imaginary problems.

Best,
Kirill