Praktek MVC Terbaik (Best Practices)

Walaupun Model-View-Controller (MVC) dikenali hampir seluruh Web developer, bagaimana menggunakan MVC secara benar di dalam pengembangan aplikasi nyata masih membingungkan banyak orang. Pemikiran utama dari MVC adalah code yang dapat dipakai ulang dan pemisahan tanggung jawab. Pada bagian ini, kita akan melihat bagaimana petunjuk umum mengikuti MVC ketika mengembangkan aplikasi Yii.

Supaya lebih gampang mengikuti petunjuk ini, kita berasumsi sebuah aplikasi Web yang terdiri dari beberapa sub-aplikasi, seperti

Sub-aplikasi bisa diimplementasi dengan modules, atau sebagai aplikasi Yii yang berbagai beberapa code dengan sub-aplikasi lainnya.

Model

Models mewakili struktur data dari aplikasi Web. Model sering dibagikan kepada sub-aplikasi berbeda dari aplikasi Web. Misalnya, sebuah model LoginForm mungkin bisa digunakan di bagian front end dan juga back end dari aplikasi; sebuah model News juga dapat digunakan oleh perintah console, Web APIs, dan juga front/back end untuk suatu aplikasi. Oleh karena itu, models

Kadang-kadang, aturan terakhir ini bisa menyebabkan sebuah model menjadi sangat besar, berisi terlalu banyak code untuk sebuah class. Juga bisa membuat model menjadi sulit untuk diurus jika code mengandung tujuan yang berbeda. Misalnya sebuah model News mungkin berisi sebuah method bernama getLatestNews yang hanya digunakan di front-end; juga mungkin berisi method bernama getDeletedNews yang mungkin hanya digunakan di back end. Sebetulnya ini tidak bermasalah untuk aplikasi kecil atau ukuran medium. Tetapi untuk aplikasi berskala besar, strategi berikut dapat diterapkan untuk membuat model lebih gampang diurus:

Jadi, jika kita ingin menggunakan strategi ini pada contoh di atas, kita harus membuat sebuha model News di aplikasi front end yang berisi hanya method getLatestNews, dan kita harus menambah model News yang lain di aplikasi back end, yang hanya berisi method getDeletedNews.

Secara umum, model tidak seharusnya berisi logic yang berhubungan langsung terhadap end user. Lebih jelasnya, models

View

Views bertanggung jawab untuk menampilkan model dalam format yang diinginkan oleh end user. Secara umum, view

View dapat didaya ulang dengan beberapa cara:

Controller

Controllers adalah lem perekat model, view dan komponen-komponen lainnya sehingga menjadi aplikasi yang dapat dijalankan. Controller bertanggung jawab untuk menghadapi langsung dengan request end user. Oleh karenanya, controller

Di dalam aplikasi MVC yang didesain dengan baik, controller sangatlah kecil, mengandung hanya beberapa lusin baris code; sedangkan model lebih besar, mengandung hampir semua code yang bertanggung jawab atas representasi dan manipulasi data. Ini dikarenakan struktur data dan business logic yang diwakili oleh model merupakan sesuatu yang sangat spesifik pada aplikasi tertentu, dan perlu dikustomisasi secara besar-besaran untuk memenuhi keperluan aplikasi; sedangkan logika controller sering mengikuti pola yang mirip pada berbagai aplikasi sehingga dapat disederhanakan dengan framework atau kelas basis.

$Id: basics.best-practices.txt 2795 2010-12-31 00:22:33Z alexander.makarow $