Saya seorang siswa tetapi saya mudah-mudahan pindah ke industri perangkat lunak segera. Tampaknya ada banyak hype tentang pola perangkat lunak MVC. Saya perhatikan bahwa kerangka kerja PHP sering berupa MVC, bagaimana dengan bahasa non-web .. apakah sama dengan mereka? Untuk disertasi master saya (C ++), saya memilih pola MVC karena dengan baik memisahkan logika dan antarmuka pengguna.
Dalam industri apakah ini banyak digunakan? Jika demikian, apa alasan utama dan apa desain populer yang bersaing lainnya?
Jawaban:
MVC mendapat banyak hype dan digunakan karena merupakan pola yang sangat berguna untuk domainnya.
MVC mendorong pemisahan kekhawatiran. Ini dapat menyederhanakan pengembangan jika dilakukan dengan benar. Aplikasi apa pun yang menampilkan dan / atau memodifikasi data yang terkandung dalam datastore akan memiliki fungsi MVC, tetapi tidak dapat dipisahkan. Tidak memecah komponen cenderung menyebabkan kopling yang tidak diinginkan di antara masalah.
Dengan MVC seharusnya relatif mudah untuk mengubah antarmuka front-end (View) dari suatu aplikasi tanpa memodifikasi baik controller atau model. Ini mungkin diinginkan jika Anda perlu mengizinkan akses dari telepon pintar, Web, dan satu atau lebih aplikasi.
Untuk tim besar, MVC memungkinkan penggunaan sumber daya yang lebih baik karena pengembang dapat ditugaskan untuk bekerja di salah satu lapisan, dan mungkin tidak memerlukan banyak keterampilan di lapisan lain. Bergantung pada overhead dari sumber daya koordinasi, ini mungkin lebih efisien.
sumber
Ya, itu sering digunakan. Aplikasi iPhone / iPad semuanya diatur sebagai MVC. Saya telah melihat banyak aplikasi asp.net MVC belakangan ini.
MVC memungkinkan lebih banyak fleksibilitas di jalan dan sangat mendorong pengembang untuk menulis kode terpisah untuk setiap fungsi. Memudahkan pemeliharaan.
sumber
Sedang populer saat ini.
Jangan pernah meremehkan kekuatan hype. Segera, seseorang akan datang dengan sesuatu yang lain yang lebih baru, lebih bersinar dan lebih mudah untuk dipahami, dan semua orang akan mencela MVC sebagai akar dari semua kejahatan (terjadi pada webforms), atau akan ada begitu banyak orang menggunakannya sehingga para veteran yang lebih beruban decry sebagai "manajemen bull * * " hal (terjadi pada XML). Atau akan ada pergeseran ke beberapa pola lain karena MVC "tidak cukup fleksibel untuk masalah super-keras yang perlu saya pecahkan" (bahasa yang diketik statis vs bahasa dinamis).
Pada akhirnya MVC adalah pendekatan kerangka kerja yang cocok untuk sejumlah masalah yang muntah pemrograman web. Ini akan ada untuk sementara waktu tapi saya membayangkan alasan kebanyakan orang menggunakannya adalah untuk mematuhi kata kunci.
EDIT
Harap dicatat: Saya sangat menyadari bahwa pola MVC telah ada selama bertahun-tahun, dan telah digunakan pada kerangka kerja sebelum asp.net MVC. Saya hanya mengatakan itu cukup populer saat ini sehingga mendapat lebih banyak pers daripada pendekatan lain. Saya menggunakan MVC untuk semua proyek pribadi saya, dan telah menggunakannya pada proyek komersial juga (saya adalah pengembang .net).
Ini bukan kata-kata kasar.
sumber
Dari pengalaman saya, itu tidak digunakan sebanyak yang seharusnya. Ini model yang jauh lebih baik daripada beberapa alternatif, tetapi hanya mendapatkan banyak hype dalam beberapa tahun terakhir; karena itu ada banyak peninggalan warisan bahwa orang takut untuk mengkonversi ke MVC atau takut untuk menggunakan MVC untuk pekerjaan di masa depan karena itu di luar zona nyaman mereka.
sumber
Saya pikir Anda akan menemukan bahwa keluarga Stack Exchange semuanya berjalan pada MVC
sumber
ASP.NET MVC telah mendapatkan banyak keunggulan untuk Aplikasi Web, karena .NET banyak digunakan di industri.
Aplikasi web Microsoft berevolusi dari ASP Klasik ke ASP.NET, yang didasarkan pada Formulir Web (untuk memungkinkan keterampilan VB6 Win Forms, pengembang sudah harus dengan mudah diterjemahkan ke batas baru web).
Sayangnya, Formulir Web berbasis negara dan HTTP (yang berbasis web) tidak memiliki kewarganegaraan, jadi banyak solusi buruk karena hal-hal seperti kondisi tampilan diperlukan.
ASP.NET MVC memungkinkan keterampilan pengembang WebForms harus diterjemahkan ke kerangka kerja web yang memiliki SoC yang baik dan yang telah berupaya keras agar dapat diuji (karena WebForms tidak terlalu dapat diuji, tim MVC telah menempatkan banyak upaya ke dalam kerangka kerja).
Yang mengatakan, itu bukan obat mujarab / peluru perak, dan seperti kerangka kerja apa pun, ada waktu untuk menggunakannya dan waktu untuk tidak menggunakannya. Mudah-mudahan orang tidak akan menggunakannya untuk mencoba menyelesaikan semuanya, setelah semua: ketika satu-satunya alat Anda adalah palu, setiap masalah terlihat seperti paku.
sumber
Ini hanya momen dalam sejarah karena MVC adalah pasangan konsep yang sangat sangat sederhana yang telah menerima hype dari beberapa kerangka kerja tertentu yang menampilkannya secara mencolok dalam materi pemasaran mereka. Ini juga terjadi bersamaan dengan banyak praktik baik yang muncul dalam pengembangan perangkat lunak. Ini berlaku ganda untuk pengembangan pseudo-stateful seperti HTTP; sedemikian rupa sehingga saya hanya tahu satu "pola" lain yang benar-benar berbeda yang digunakan di dunia web - model berbasis event ASP.Net WebForms yang sangat difitnah.
Jujur saya sedikit terkejut ada cukup banyak untuk disertasi.
Tetapi untuk menjawab pertanyaan Anda. WebForms adalah sepotong sempit web-pie yang sebagian besar menjadikannya rumah dalam aplikasi bisnis intranet. Halaman kode-spaghetti tanpa pola nyata mungkin merupakan jumlah yang cukup dari diagram Venn, tetapi cukup banyak apa pun yang merupakan kerangka kerja yang paling sedikit dipengaruhi oleh MVC sehingga jawaban singkat Anda akan menjadi YA yang mantap .
sumber