Мой опыт разработки динамических веб-сайтов ограничен в основном сервлетами Java. Я использовал Tomcat для разработки различных Java-сервлетов, и я без колебаний скажу, что я достаточно хорошо владею этой технологией, а также клиентским HTML / CSS / Javascript для внешнего интерфейса.
Когда я думаю о «динамическом веб-сайте», я думаю: пользователь запрашивает URL со строкой запроса, сервер получает запрос, а затем продолжает динамически выводить HTML, чтобы ответить на запрос. Это часто включает в себя связь с базой данных, чтобы получить запрошенные данные для отображения. Это в основном идея doGet
метода Java HttpServlet
.
Но в наши дни я все больше слышу о новых фреймворках, таких как Django и Ruby on Rails, которые используют преимущества архитектуры «Model View Controller». Я читал различные статьи, которые объясняют MVC, но у меня возникают проблемы с пониманием преимуществ. Я понимаю, что общая идея состоит в том, чтобы отделить бизнес-логику от логики пользовательского интерфейса, но я не вижу, чем это действительно отличается от обычного веб-программирования. Веб-программирование по своей природе заставляет вас отделять бизнес-логику (внутреннее программирование на стороне сервера) от программирования пользовательского интерфейса (клиентский HTML или Javascript), потому что они существуют в совершенно разных сферах программирования.
Вопрос: Что предлагает MVC над чем-то вроде сервлета Java, и, что более важно, что такое MVC и чем он отличается от того, что вы обычно делаете для разработки динамического веб-сайта с использованием более традиционного подхода, такого как сервлет Java (или даже что-то старшее вроде CGI)? Если возможно, при объяснении MVC, приведите пример, который иллюстрирует, как MVC применяется к процессу веб-разработки и как это выгодно.