DEV Community

Discussion on: Todo-MVP: Or 'Why You Shouldn't Use A Web Framework' - The Revenge

Collapse
 
rzpicazzo profile image
Alejandro AP

Hello David!

Your 2 posts are actually what made me want to join the community to give my 2 cents to this. First and foremost: I do agree with everything you said and I did not take the original post in the negative way in which some of the other users did.

At work I have been dealing with the issues of having framework-less applications(In PHP of all things, which I like, but there are valid reasons why people disliked PHP so heavily and I see them on all of these applications) that would just not scale well in terms of adding new features. This has prompted me and my lead developer to discuss different ways in which we could do rewrites or structure the code for future implementations. At one point another developer brought upon us the idea of using some of the top PHP frameworks in the market, such as Laravel, CodeIgniter or Symphony as well as the all glorious repertoire of JavaScript front-end libraries. While I have absolutely nothing against these technologies, I chose not to. Being the head of my department, I know that such decisions could ultimately bring a lot of issues with developer time.

I opted for more native approaches while focusing on good practices that have been established by the community for a lot of time and building reusable components that would apply to virtually all of the other applications that we have. From authentication and authorization to database management as well as front-end server side rendering with the occasional AJAX magic.

The result has been good thus far, and while I understand the concept of "well you are practically building a framework" I also believe that doing things this way would keep developers on their sharpest by making them have a complete understanding on how the code works. I can either have them read and understand how Laravel's Eloquent ORM handles transactions etc, or I can have them generate proper PDO code from best practices to understand how everything underneath works. Countless times I have met Rails(admittedly newbie Rails devs, not the wizards that the community has and I meant that with the upmost level of respect and admiration) not understand what the underlying SQL is being used by their ActiveRecord ORM, the same I can say for Laravel developers(again on the newbie side) and many others.

Front-end I can understand, state management is a tedious thing to do for larger applications using Vanilla JS, this, however, does not make it undo-able, and for most intranet based applications we can do just fine with server side rendered pages. Note that I am not too concerned with heavyweight JS frameworks, I understand that low powered devices are a thing, but most if not all of our applications are used on standard desktop computers.

The one rule to the exception in my book thus far is Spring, I feel like with Spring I am just writing Java code and using an inversion of control container rather than a full featured framework that will generate things over a set of CLI commands. I know it is considered a framework, but it just feels like natural Java with a library to me.

Either way, cheers! Thanks for the great post! I will be looking for your other posts as well :D

Collapse
 
gypsydave5 profile image
David Wickes

Heartwarming read! Thanks and Happy New Year!