Pengalaman saya dalam mengembangkan situs web dinamis sebagian besar terbatas pada servlets Java. Saya telah menggunakan Tomcat untuk mengembangkan berbagai servlets Java, dan saya tidak akan ragu untuk mengatakan bahwa saya cukup mahir dengan teknologi ini, serta dengan HTML / CSS / Javascript sisi klien untuk front-end.
Ketika saya berpikir "situs web dinamis", saya pikir: pengguna meminta URL dengan string kueri, server menerima kueri, dan kemudian melanjutkan ke output HTML secara dinamis untuk menanggapi permintaan. Ini sering melibatkan komunikasi dengan database untuk mengambil data yang diminta untuk ditampilkan. Ini pada dasarnya adalah ide di balik doGet
metode Java HttpServlet
.
Namun belakangan ini, saya semakin banyak mendengar tentang kerangka kerja yang lebih baru seperti Django dan Ruby on Rails, yang semuanya memanfaatkan arsitektur "Model View Controller". Saya telah membaca berbagai artikel yang menjelaskan tentang MVC, tetapi saya mengalami kesulitan dalam memahami manfaatnya. Saya mengerti bahwa ide umumnya adalah memisahkan logika bisnis dari logika UI, tetapi saya gagal melihat bagaimana ini benar-benar berbeda dari pemrograman web normal. Pemrograman web, pada dasarnya, memaksa Anda untuk memisahkan logika bisnis (pemrograman sisi server) dari pemrograman UI (HTML sisi klien atau Javascript), karena keduanya ada dalam bidang pemrograman yang sepenuhnya berbeda.
Pertanyaan: Apa MVC menawarkan lebih dari sesuatu seperti servlet Java, dan yang lebih penting, apa sebenarnya adalah MVC dan bagaimana cara berbeda dari apa yang biasanya Anda lakukan untuk mengembangkan website dinamis dengan menggunakan pendekatan yang lebih tradisional seperti servlet Java (atau bahkan sesuatu yang lebih tua seperti CGI)? Jika mungkin, ketika menjelaskan MVC, berikan contoh yang menggambarkan bagaimana MVC diterapkan pada proses pengembangan web, dan bagaimana hal itu menguntungkan.