Apakah pola MVC banyak digunakan dalam industri? Apa semua hype? [Tutup]


16

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?


13
MVC hanyalah implementasi populer dari pemisahan kekhawatiran. SoC adalah yang penting, bukan MVC itu sendiri.
Raynos

1
Anda mungkin ingin memeriksa 'Katalog Arsitektur Aplikasi Enterprise' Martin Fowler untuk beberapa alternatif / variasi pada MVC yang mungkin sesuai dengan aplikasi spesifik yang lebih baik: martinfowler.com/eaaCatalog/index.html
Mchl

3
Juga perhatikan bahwa banyak hal yang diberi label 'MVC' sebenarnya bukan benar-benar MVC, melainkan mengikuti model aplikasi multi-tier (baru): penyimpanan data - logika - presentasi (yang, IMHO, lebih masuk akal sih).
Pelaku

MVC mendahului pemrograman web, jika itu memberi tahu Anda apa-apa.
Jeremy

Jawaban:


6

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.


12

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.


Kerangka kerja Kakao Apple (digunakan pada MacOS X) adalah evolusi dari NextStep, yang berasal dari akhir 1980-an. NextStep, Cocoa, dan Cocoa Touch (digunakan di iOS) semuanya menggunakan MVC.
Caleb

4

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.


7
-1 untuk: 'At the Moment', kecuali jika Anda mempertimbangkan misalnya awal Smalltalk atau Java / Swing sebagai teknologi Moment, MVC agak terlalu tua untuk itu.
keppla

4
Kecuali "saat ini" cukup akurat; MVC hampir tidak digunakan sampai saat ini yang saya sadari, kecuali di dunia Jawa. Di tempat lain itu tidak digunakan sampai sekitar ketika Rails menjadi populer.
Wayne Molina

4
Kebanyakan GUI-Frameworks (non-html) yang saya temui menggunakan MVC, sepertinya tidak 'jarang digunakan' untuk mee 10 tahun terakhir.
keppla

1
Sebenarnya, MVC sudah kalah oleh MVP di beberapa bagian alam semesta.
Tom Anderson

3
Secara pribadi, saya benci Webforms jauh sebelum ASP.NET MVC bahkan sebuah konsep. Kadang-kadang hal-hal itu populer karena mereka sebenarnya pilihan terbaik dalam banyak kasus - dan ya, mereka mungkin digantikan oleh sesuatu yang lebih baru dan lebih kuat, tetapi jadi apa? Itu kemajuan, bukan hype.
Aaronaught

3

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.


1

Saya pikir Anda akan menemukan bahwa keluarga Stack Exchange semuanya berjalan pada MVC


Luar biasa, tidak tahu bahwa +1
ale

1

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.


1

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 .


@geroge: Terima kasih atas jawabannya. Ha .. jangan khawatir, perangkat lunak yang disertakan dengan disertasi saya menggunakan MVC .. itu sebenarnya tidak ada di MVC!
ale
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.