But I can only show you the door. You're the one who has to walk through it. I hope you miss our newsletters for the weekend? I'll accept only the "Yes" answer. We miss you too!
Today I'll share my thoughts on the MVC pattern. It's probably one of the oldest patterns that I know and have used it a lot. Invented by Trubve Reenskaug (thanks!), the theory and basic descriptions were published on December 10th, 1979. Time flies, right? How this pattern was adopted and raised during the Internet Age is an interesting story. Long story short: MVC(Model - View - Controller) is a concept of separation of logic.The application divides into three actors that interact with each other according to certain rules. Model It represents business logic. Classes used to store and manipulate state are usually in DB. View
Contains Use Interface elements(in the Web it's HTML blocks) that display data that was passed into it.
Controller
It's our brain. It "eats" user input and tells to model what "it" needs to do and what resulting view will be used for this situation. One of the essential things is to understand is that this is a design pattern. It's abstract. And it is a pretty commonly used pattern. Even today. Part of the success of the Web itself should go to MVC - IMHO. Another part should go to those bright engineers that have creative brains. They have limited resources, especially at the beginning. And we all should appreciate their work.
Welcome Heroku, today's newsletter sponsor. Heroku is a container-based cloud platform offering. Heroku will give you a ready-to-use environment that allows you to deploy your codeas fast as possible. And they will provide you an excellent experience, because of their developers-friendly practices. Now a lot of web development frameworks are using MVC principles such as Django (even it was not used from the beginning), Ruby on Rails, Laravel and ASP.NET MVC I started to code at my first job using MVC. It was part of our success strategy. We were small, but adequately organized - we used to beat our competitors by delivering projects faster. We had a great architect as a team member. He built a project skeleton, and I created forms & fixing frontend bugs. Another guy was working with Controllers logic + he created custom JS plugins. We all used the Zend Framework(PHP). Oh, good old days. What I like about Zend is that it goes from MVC to project organization. It's still haunting me in my current code :) yes, recently, we moved away from this structure, but de-facto MVC principles are still used pretty often. X years later, ExpressJS, SailsJS incorporated MVC and shared similar logic with newbie developers.
When it was invented, it was a pretty fresh idea. By separating things, you got a lot of cool perks: devs should have knowledge in different areas: backend + frontend. (There were a jQuery and jQuery UI time. if you know what I'm talking about) And Boom! Project complexity starts to snowball.
MVC helped to separate parts of your project. You could connect Designers with Frontend Markup developers. The first one would make everything looks pretty; the second one would produce a pure HTML/CSS template. While those "artists were playing," backend developers could work on DB schema, registration flow, and other essential parts.
No, we didn't have significant processes ten years ago. Even Manual testers were a luxury in our cheap projects. Programmers & managers could argue about features. We didn't have any CI practices at that time! Yes, it was the stone age, and it was a few years ago. Not decades as you think.
It's undeniable how powerful a simple accurate MVC project can be. But the most important thing is to understand "Why it works." Yes, for experienced developers - all of these things are pretty natural — you separate logic, presentation, data layers. You work on them at different time and project stages, and it's not because of MVC principles alone. Plus, MVC can sound pretty generic. And we have a lot of debates, during beer sessions, about how to implement it better. This is why different Frameworks have their own version of MVC inside. Still, MVC is an old concept, and a lot of things have changed. Some projects may not want to stick with those strick frames, using only three types of actors. Observers/Subscriptions were also not very important before. So in recent times, we don't usually fit everything in a "clean" MVC rules. While preparing this newsletter, one of our developers noticed that for the last few months, we have been avoiding Ruby on Rails stories. It's not cool. So here is our curated list of Ruby on Rails stories from our excellent contributors.