5:00 starts explaining web (recommended for beginners) 15:50 starts explaing mvc (here it begin) 19:00 quick recap i would still recommend beginning at 0:00 for the sake of great effort what is here made . Thanks you very much for the explaination devMarketer!
Yeah, it's a bit confusing when the recap adds route processing and has the view interacting with the user before the controller actually receives the dynamically processed view response. Kinda like saying it goes to all the trouble of finding the correct controller to just toss it out of the equation after the view is hit with a request. It's a stupidly simple concept though, so it doesn't really matter. The only thing to remember seems to be User->Controller->Model->Controller->View->Controller->User. Basic "pipeline" or "black box" architecture that allows things to interact in a way that gives you less and less job security the better it's implemented. But luckily you're always working to impress the next guy that pays you more money to do a thing and gaining practical knowledge along the way to make sure there's an ample supply of those.
I've watched a lot of videos and tutorials, and read a lot of resources online. This is the best explanation of MVC that I've come across. *subscribed*
I guess Im randomly asking but does someone know of a tool to get back into an Instagram account..? I was dumb forgot my login password. I would love any assistance you can offer me
Jacurtis(C) you are the controller who have all variables to explain and enhancing the viewer(V) with best data information (M). Thanks alot for the tutorial.
This is awesome , I'm a data scientist engineering student and i'm developing a web application and this video helped me , I now have an idea about the MVC and i'm willing to go deep , anyway i would love to thank you for your efforts, you're doing a great job , keep up.
Note for others on what he said at 16:30. I was really confused by this as I found in some other explanations that the model can communicate with the view directly. MVC can be implemented in many ways. One of them is where the model communicates with the view directly. Is it the neatest way? I don't know. So, don't get confused when you find different explanations for the MVC. For example, some will call it a design pattern, others will call it an architectural style. It all depends on the context you're using it.
FINALLY! Someone walked us through MVC thoughtfully. This should be the first video that comes up when you search for MVC on RUclips! It makes sense now, thank you!
That's one of the best Web Development classes I ever watched! It made me understand how MVC works in less than 20 minutes! Awesome! Thank you @jacurtis !
This was so helpful! When I say I am new to client-server and MVC architecture, I mean it. This video broadly touches on how the model, controller, and view work with each other. It doesn't go too indepth with the specific programming and details of them, which makes this concept easier to understand. This video for sure helped me understand how MVC architecture works with the client-server-database flow. You explained easily, and I had no trouble understanding it. Thank you!!
I rarely like or comment on a youtube video but this video is an exception. I watched over more than tens of MVC videos and I never understand them but after I watched this I really understand WHAT THE HELL IS MVC lol. Really thanks man I appreciate your simple explanation. Now I can do my own framework in peace :)
I'm 13 minutes in, and he still haven't really started yet... He's just talking about web servers and databases and programming languages. Nothing yet that helps me understand MVC at all.
Excellent video. I'm sorry for all the hateful comments, clearly people have misled expectations on educational content. This was awesome, very clear. Thanks
I Finally understand a simple pattern called MVC that I used on daily basis as a user to send requests to the web browser and not knowing what was happening in the background. I never questioned myself how the processing was occurring. MVC implements OO concept called Encapsulation. Yes South Africa
Your video said the model never talks to the view and the view never talks to the model. That does not fit the standard MVC UML diagram logic. It is more akin to the 3-tier architecture. I think the view does talk to the model when instructed to do so by the controller. [Happy to be corrected in my thought, as I am still learning]
NoSQL is a type of database and MongoDB is an example of a NoSQL database. So, technically, NoSQL is an architecture while MongoDB is an implimentation.
You've got to be careful when you watch this video as terms are not used rigorously but loosely. Structure, Process, workflow... The database is NOT the model. The view is Not the client and the server is NOT the controller!!! i would recommend watching other videos on this subject too and comparing them but don't use this as just one video to understand the concepts!!!
You say the View never talks to the Controller, but I thought the View was the part that the user was typing into and clicking things on. When the user clicks a UI button, isn’t that button part of the View? If not, what is it a part of?
You are my savior! Great and clear information that gave me that ahaaa-experience that filled in all the missing gaps i had to understand MVC! Keep up the great work and will be watching your other videos as well!
This is not MVC. it's kind of close to MVP, but not completely. actually what you've described would negate the whole purpose of MVC, MVP, MVVM etc. What in the heart of any of those architecture is separating the Model from the View. the Model is a GIVEN(!) and so is the View, what separates them can be a Controller, a Presenter or just a ViewModel, but none of them know nothing about the View, or else our View will never be reusable because it still has a 1:1:1 relation with the Controller and the Model. With MVC the Controller just updates the Model with the user's request (i.e. the operation the user wish to do on the data, such as 'give me a list', 'save this item' etc.) and then leave it for a View to query the Model and be able present the same data in many different ways, regardless the controller that updated the model.
Yes it's definitely not the MVC pattern described in my uni text books. The Controller isn't supposed to be an Adapter for communication from Model to View, but only (for user input) from View to Model. Oh well, as long as one uses the pattern to solve a problem and not just to use a pattern for the sake of using patterns, it should be fine.
Yes he is explaining the MVP pattern design. This stack overflow link explain the difference stackoverflow.com/questions/2056/what-are-mvp-and-mvc-and-what-is-the-difference
Perhaps the best explanation of MVC with great examples which help visualize/understand/encourage to explore & learn!! Great voice too by the way!! Keep them coming!
Still confused. Not by this video, but when I actually look at MVC code it makes no sense. In Laravel for example, routes are in their own folder, and the views are in the resources/views folder, but where's model and controllers? I can find a Controllers folder in the app/Http folder, but it doesn't seem to do anything (there's no logic in it). I can't even find a "model" folder at all. So if it's MVC, why is everything hidden and mislabeled? And why does this make things easier? I typically see people repeating code to a MUCH higher degree with MVC. It seems like you need to do the same thing over and over again with MVC. Totally lost, and this video only confuses me more because while it seems simple, I can see nothing simple about any program that uses the model.
One question...when describing the model you mention that the "controller never talks directly to the database" . Then when describing the controller you state that it "processes info and talks to the DB if needed". So would specific query statements reside within the controller or with the script files that define the data model? I would love to see a simple app directory structure explained in MVC context.
Sorry, what I meant to say is that if the controller needs something from the database, it will ask the MODEL to get it. So the controller talks to the model, and the model is what is running queries on the database, generally restructuring it, and passing it back to the controller. Another concept I didn't cover in this video is that often the Model is not just a database abstraction as many people think, but instead the model might have logic in it which manipulates the database information. This further illustrates the point that the controller doesn't need to have any awareness of the database's structure. So as an example, lets say you set up something in your database called soft deleting. This enables you to "delete" a record without actually removing the database row. This is often done by adding a timestamp to a nullable deleted_at column or making a column value true. The point is the controller doesn't have to be concerned with how the database is set up. If it asks for all the records, the model can give it all of the records which have not been "soft-deleted" by default whenever any request is made to the model. The model knows and understands the DB structure, and the controller doesn't have to worry about it, it simply requests the information it needs from the model and the model translates it as needed. Another example is that sometimes your model might parse data from a column, before handing it off to the controller, it might combine columns as relevant for certain requests. For example, maybe the controller wants all the active users, and it makes an "activeUsers" request to the model. Well your database might not have an "active" column but your model knows that a user that made at least one post this month is considered active, well the number of posts a user has is most likely in an entirely different table. So it can query the DB appropriately and effectively give the active users to the controller as it requested, despite the fact that "active users" is not something that even the database knows it contains, it is performed as part of the model. The controller asks a simple question: "Can i get all the active users" and the model knows, "ok, i need to find out which posts were made this month and which users posted them, to see who was active this month.". The model does its job and then passes all active users to the controller. The controller doesn't know whether an "active" column exists or whether some type of join between two tables had to be made. It is a separation of concerns, and thats the fundamental concept that MVC provides.
So if I'm understanding the model correctly this is wrong 17:57 The controller doesn't talk to DB but to the model and doesn't recieve info from DB but again, from the model.
Great vid man I've been using MVC so long but didnt realize its called this...I've always programmed in this way because it makes things flow so much better
@DevMakerter, One Question, if Suppose I don't have a Database to deal with in my project, so What Will be MVC, or this architecture is going to Matter? If my project is having Complex algorithm to deal with the database, processing input data and then save. Is that Algo Model or Controller?
Came here for 100Devs and this is a solid explanation! Thank you for this!
5:00 starts explaining web (recommended for beginners)
15:50 starts explaing mvc (here it begin)
19:00 quick recap
i would still recommend beginning at 0:00 for the sake of great effort what is here made .
Thanks you very much for the explaination devMarketer!
Yeah, it's a bit confusing when the recap adds route processing and has the view interacting with the user before the controller actually receives the dynamically processed view response. Kinda like saying it goes to all the trouble of finding the correct controller to just toss it out of the equation after the view is hit with a request. It's a stupidly simple concept though, so it doesn't really matter. The only thing to remember seems to be User->Controller->Model->Controller->View->Controller->User. Basic "pipeline" or "black box" architecture that allows things to interact in a way that gives you less and less job security the better it's implemented. But luckily you're always working to impress the next guy that pays you more money to do a thing and gaining practical knowledge along the way to make sure there's an ample supply of those.
This video is part of 100devs course and I understood every bit of information explained in this video. Thank you very much.
I've watched a lot of videos and tutorials, and read a lot of resources online.
This is the best explanation of MVC that I've come across.
*subscribed*
I guess Im randomly asking but does someone know of a tool to get back into an Instagram account..?
I was dumb forgot my login password. I would love any assistance you can offer me
Jacurtis(C) you are the controller who have all variables to explain and enhancing the viewer(V) with best data information (M). Thanks alot for the tutorial.
7 years later, still a great resource. Thank you!
By far the best MVC tutorial I've ever seen. No longer confused!
Coming from #100Devs. This was a fab intro for someone who just heard of MVC.
I'm sure you're building awesome apps by now. I'm currently on the MVC class.
niceeeeee
This is awesome ,
I'm a data scientist engineering student and i'm developing a web application and this video helped me , I now have an idea about the MVC and i'm willing to go deep ,
anyway i would love to thank you for your efforts, you're doing a great job , keep up.
Finally i got what the hell it is ...MVC!!! Really you make it easy and very clear. Thanks a lot!!! keep going
Note for others on what he said at 16:30. I was really confused by this as I found in some other explanations that the model can communicate with the view directly.
MVC can be implemented in many ways. One of them is where the model communicates with the view directly. Is it the neatest way? I don't know.
So, don't get confused when you find different explanations for the MVC. For example, some will call it a design pattern, others will call it an architectural style. It all depends on the context you're using it.
FINALLY! Someone walked us through MVC thoughtfully. This should be the first video that comes up when you search for MVC on RUclips! It makes sense now, thank you!
That's one of the best Web Development classes I ever watched! It made me understand how MVC works in less than 20 minutes! Awesome! Thank you @jacurtis !
Our Coding Bootcamp gave a link for this explanation of MVC before we have a unit on it. Great run-down!
Thank you for this, this is the only video I've seen which properly explains MVC
This was so helpful! When I say I am new to client-server and MVC architecture, I mean it. This video broadly touches on how the model, controller, and view work with each other. It doesn't go too indepth with the specific programming and details of them, which makes this concept easier to understand. This video for sure helped me understand how MVC architecture works with the client-server-database flow. You explained easily, and I had no trouble understanding it. Thank you!!
This video was recommended by my university lecturer! Good work DevMarketer.
Best MVC tutorial I have ever seen before !!!! Thanks Jacurtis.
I rarely like or comment on a youtube video but this video is an exception. I watched over more than tens of MVC videos and I never understand them but after I watched this I really understand WHAT THE HELL IS MVC lol. Really thanks man I appreciate your simple explanation. Now I can do my own framework in peace :)
Your teaching really helped me understand quickly what MVC means in programming. Thank you for sharing your knowledge with all of us!
Woooow. that was so simple. MVC seemed confusing until after your video. Thanks Jacurtis
Skip to 5:30 for the tutorial........ yikes.
I'm 13 minutes in, and he still haven't really started yet... He's just talking about web servers and databases and programming languages. Nothing yet that helps me understand MVC at all.
pro tip: speed at x1.25 or x1.5
a saviour
Thank you! What a waste of fucking time.
true hero!
An example of genuine teaching
This without a doubt The Best Explanation of MVC I've ever seen,
Thanks very much.
Excellent video. I'm sorry for all the hateful comments, clearly people have misled expectations on educational content. This was awesome, very clear. Thanks
I Finally understand a simple pattern called MVC that I used on daily basis as a user to send requests to the web browser and not knowing what was happening in the background. I never questioned myself how the processing was occurring. MVC implements OO concept called Encapsulation. Yes South Africa
Your video said the model never talks to the view and the view never talks to the model. That does not fit the standard MVC UML diagram logic. It is more akin to the 3-tier architecture. I think the view does talk to the model when instructed to do so by the controller. [Happy to be corrected in my thought, as I am still learning]
genuine question tho, why would the view talk to the model directly, if anything it needs to go thru the controller in terms of networking isnt it - ?
I think it's great that you also explained how a website works, it's integral to understanding MVC!
The best 25 minutes of my life.
No one can explain MVC better than you did
NoSQL is a type of database and MongoDB is an example of a NoSQL database. So, technically, NoSQL is an architecture while MongoDB is an implimentation.
Best explanation i found on youtube
IMHO the under-pinning (additional) info can't hurt to show architecture/components etc. Nice video!
This is great information. Seriously
This will save you massive amounts of tutorial time.
This was my first dig at MVC and the video made it so simple to understand!
very useful, finally understand mvc. i read about it before and it was useless. very clear, descriptive easy to understand.
Here from 100Devs. Great video, thank you!
Hats off to you man! Finally I understand how mvc works...
5min in and I already started getting it. Awesome explanation.
GlennBen dax cf j u yucjjcjx?cjcjcj cc j4
This was an excellent way to explain the MVC structure.....I have more clarity....thanks
thanks Jacurtis, very well put together video. I now understand MVC now
oh my gosh, i finally understand MVC @__@ thank you
tu tambem és.....
one of the best best tutorial to learn MVC
Amazing, now it makes sense, I will remember this thing throughout my life!
Thank you.
This is more explanatory thanks!!!!
Finally understood MVC, thanks dude a sub is what u deserve
Very clear and concise. I love learning about the principal and/or concepts before focusing on the "how" - Great! explanation.
Wow!!! I thought I would never get this concept. Thank you a lot!! So easy to understand!
Awesome explanation! Thank you!!!
Thanks Very much but please make a video only explaining route processing process , i still can't get my head around it properly.
you can probably skip to 14:30 actually
100Devs brought me here, thanks for the lesson!
thank you, I understand MVC now (UI designer here)
Best explanation of the MVC structure, love the presentation!
The best explanation of mvc
2 mins in and its already so awesome lol, thanks for this well done
You've got to be careful when you watch this video as terms are not used rigorously but loosely. Structure, Process, workflow... The database is NOT the model. The view is Not the client and the server is NOT the controller!!!
i would recommend watching other videos on this subject too and comparing them but don't use this as just one video to understand the concepts!!!
Thanks for the video..Really understood the MVC. Was having difficulty understanding before watching the video.
This should have been required to watch the first day of my internship :(
GOSH IK THIS WAS 3 YEARS AGO BUT IT WAS SO RELATABLE, dude just give us one vid which is not beginners friendly at all T.T
this really helped me thank you for the tutorial, now i get it .... i have a history of not getting it ...now i get it thanx
This is by far the most helpful explanation!!
I finally can understand MVC. many thanks to you!
Very clear and very helpful. Very solid explanation!!!
Makes so much sense. Going to implement this arcitecture in my java program asap.
Good job. I was learning Django and I had problem understanding the concepts. Thanks a lot.
You say the View never talks to the Controller, but I thought the View was the part that the user was typing into and clicking things on. When the user clicks a UI button, isn’t that button part of the View? If not, what is it a part of?
You are my savior! Great and clear information that gave me that ahaaa-experience that filled in all the missing gaps i had to understand MVC! Keep up the great work and will be watching your other videos as well!
nicely presented. one question, can we say route processor is a navigation controller which find and delegate the work to required controller?
So Basically Model is the Database ? Controller handles the business logics and view is the UI ?
yours tutorials are amaizing, i love them, i am following you in every laravel tutorial
Sweet! I am so glad. I love making the vidoes.
I truly APRECIATED this video and I finally understand the essence of MVC
I just started a Python/Django project and was feeling like I was in over my head. This definitely helped out a lot. Thanks!
Thanks! I'm using Spring MVC and this gave me the background I wanted, including the history in the beginning.
Finally Jacurtis... thank you so much for this video... you made it!
How is MVC different from 3-tier architecture: client layer - business logic layer - database layer ?
Thank you so much, finally understand MVC patterns
This is not MVC. it's kind of close to MVP, but not completely. actually what you've described would negate the whole purpose of MVC, MVP, MVVM etc. What in the heart of any of those architecture is separating the Model from the View. the Model is a GIVEN(!) and so is the View, what separates them can be a Controller, a Presenter or just a ViewModel, but none of them know nothing about the View, or else our View will never be reusable because it still has a 1:1:1 relation with the Controller and the Model.
With MVC the Controller just updates the Model with the user's request (i.e. the operation the user wish to do on the data, such as 'give me a list', 'save this item' etc.) and then leave it for a View to query the Model and be able present the same data in many different ways, regardless the controller that updated the model.
Technically, the view t alks to controller via interface.
Directly or indirectly.
Most clear presentation I have ever seen on MVC. Thank you for clearing up my confusion.
Is it possible that you described a MVP? What would you say is the difference between MVC or MVP?
I think so, right? Not sure this is a MVC... wouldn't a view AND the controller talk with the Model?
Yes it's definitely not the MVC pattern described in my uni text books. The Controller isn't supposed to be an Adapter for communication from Model to View, but only (for user input) from View to Model.
Oh well, as long as one uses the pattern to solve a problem and not just to use a pattern for the sake of using patterns, it should be fine.
Yes he is explaining the MVP pattern design. This stack overflow link explain the difference stackoverflow.com/questions/2056/what-are-mvp-and-mvc-and-what-is-the-difference
The MVP in 1992 was Michael Jordan.
hitman98761 you just made my day :D
Can you please explain in which layer are the business logic and business objects?..in Model? or in Controller?
Perhaps the best explanation of MVC with great examples which help visualize/understand/encourage to explore & learn!! Great voice too by the way!! Keep them coming!
Thank you so much for these, I really enjoy your way of visually showing what's happening in your videos.
Still confused. Not by this video, but when I actually look at MVC code it makes no sense. In Laravel for example, routes are in their own folder, and the views are in the resources/views folder, but where's model and controllers? I can find a Controllers folder in the app/Http folder, but it doesn't seem to do anything (there's no logic in it). I can't even find a "model" folder at all. So if it's MVC, why is everything hidden and mislabeled?
And why does this make things easier? I typically see people repeating code to a MUCH higher degree with MVC. It seems like you need to do the same thing over and over again with MVC. Totally lost, and this video only confuses me more because while it seems simple, I can see nothing simple about any program that uses the model.
Hello, Laravel has a strange strucutre. You could check this tutorial series where you can learn how more about it. laracasts.com/skills/laravel
This was so good. Have been struggling for so long, thank you!
Thank you for recording this tutorial.
yeah this is a great description of MVC
best video I have seen on MVC
Thanks very much! Not it is a lot more clear to me what's going on with this MVC mystery. Thanks for clarifying!
thank you i finally understand MVC funny enough i have been doing what seems to be MVC
MVC was really easy to understand and follow. I posted some comments for study notes and space repetition on my dev twitter account.
One question...when describing the model you mention that the "controller never talks directly to the database" . Then when describing the controller you state that it "processes info and talks to the DB if needed". So would specific query statements reside within the controller or with the script files that define the data model? I would love to see a simple app directory structure explained in MVC context.
Sorry, what I meant to say is that if the controller needs something from the database, it will ask the MODEL to get it. So the controller talks to the model, and the model is what is running queries on the database, generally restructuring it, and passing it back to the controller.
Another concept I didn't cover in this video is that often the Model is not just a database abstraction as many people think, but instead the model might have logic in it which manipulates the database information. This further illustrates the point that the controller doesn't need to have any awareness of the database's structure. So as an example, lets say you set up something in your database called soft deleting. This enables you to "delete" a record without actually removing the database row. This is often done by adding a timestamp to a nullable deleted_at column or making a column value true. The point is the controller doesn't have to be concerned with how the database is set up. If it asks for all the records, the model can give it all of the records which have not been "soft-deleted" by default whenever any request is made to the model. The model knows and understands the DB structure, and the controller doesn't have to worry about it, it simply requests the information it needs from the model and the model translates it as needed.
Another example is that sometimes your model might parse data from a column, before handing it off to the controller, it might combine columns as relevant for certain requests. For example, maybe the controller wants all the active users, and it makes an "activeUsers" request to the model. Well your database might not have an "active" column but your model knows that a user that made at least one post this month is considered active, well the number of posts a user has is most likely in an entirely different table. So it can query the DB appropriately and effectively give the active users to the controller as it requested, despite the fact that "active users" is not something that even the database knows it contains, it is performed as part of the model. The controller asks a simple question: "Can i get all the active users" and the model knows, "ok, i need to find out which posts were made this month and which users posted them, to see who was active this month.". The model does its job and then passes all active users to the controller. The controller doesn't know whether an "active" column exists or whether some type of join between two tables had to be made. It is a separation of concerns, and thats the fundamental concept that MVC provides.
great video! great explanation. I finally understand MVC!
Awesome tutorial, thank u !! And thank sooo much for no background music ! 💗
I have a question that mvc is used for managing the code or develop the application😢
So if I'm understanding the model correctly this is wrong 17:57
The controller doesn't talk to DB but to the model and doesn't recieve info from DB but again, from the model.
That was amazing explanation. Thank you!
Great vid man I've been using MVC so long but didnt realize its called this...I've always programmed in this way because it makes things flow so much better
@DevMakerter, One Question, if Suppose I don't have a Database to deal with in my project, so What Will be MVC, or this architecture is going to Matter?
If my project is having Complex algorithm to deal with the database, processing input data and then save. Is that Algo Model or Controller?
thanks dude. this is much more helpful than stackoverflow answer.. will check out your laravel tutorials later as i want to learn it
Finally. Understood. Thanks man.!!