Moje doświadczenie w tworzeniu dynamicznych stron internetowych ogranicza się głównie do serwletów Java. Użyłem Tomcata do opracowania różnych serwletów Java i nie zawahałbym się powiedzieć, że jestem dość biegły w tej technologii, a także w HTML / CSS / JavaScript po stronie klienta dla frontonu.
Kiedy myślę o „dynamicznej witrynie”, myślę: użytkownik żąda adresu URL z ciągiem zapytania, serwer odbiera zapytanie, a następnie dynamicznie generuje kod HTML w celu odpowiedzi na zapytanie. Często wiąże się to z komunikacją z bazą danych w celu pobrania żądanych danych do wyświetlenia. Jest to w zasadzie idea doGet
metody Java HttpServlet
.
Ale obecnie coraz częściej słyszę o nowych frameworkach, takich jak Django i Ruby on Rails, z których wszystkie korzystają z architektury „Model View Controller”. Czytałem różne artykuły, które wyjaśniają MVC, ale mam problemy z faktycznym zrozumieniem korzyści. Rozumiem, że ogólną ideą jest oddzielenie logiki biznesowej od logiki interfejsu użytkownika, ale nie rozumiem, jak to naprawdę różni się od normalnego programowania w Internecie. Programowanie sieciowe ze swej natury zmusza cię do oddzielenia logiki biznesowej (programowanie po stronie serwera) od programowania interfejsu użytkownika (HTML lub JavaScript po stronie klienta), ponieważ oba te programy występują w zupełnie innych obszarach programowania.
Pytanie: Co oferuje MVC w stosunku do serwletu Java, a co ważniejsze, czym dokładnie jest MVC i czym różni się od tego, co normalnie robiłbyś w celu opracowania dynamicznej strony internetowej przy użyciu bardziej tradycyjnego podejścia, takiego jak serwlet Java (lub nawet coś starszego jak CGI)? Jeśli to możliwe, wyjaśniając MVC, podaj przykład ilustrujący, w jaki sposób MVC jest stosowany do procesu tworzenia stron internetowych i jak jest on korzystny.