MVC Best Practices

Model yaitu Setiap atribut merepresentasikan data yang spesifik. Harus berisi logika bisnis (misalnya aturan validasi) untuk memastikan data yang diwakili memenuhi persyaratan.

  • Dapat berisi kode untuk memanipulasi data. Misalnya, model Search Form, selain mewakili data input pencarian, mungkin berisi metode pencarian untuk mengimplementasikan pencarian yang sebenarnya.
  • Tetap menjaga untuk tidak meletakkan kode terlalu banyak pada model karena akan mempersulit saat maintenance.
  • Menghindari penulisan kode yang digunakan untuk menangani interaksi pengguna secara langsung pada model.
  • Menghindari meletakkan kode html atau statement presentasi lainnya.

View
  • Berisi kode yang digunakan untuk menyusun tampilan (html).
  • Kode logika hanya digunakan untuk melakukan formatting tampilan (misal rendering list).
  • Menghindari penulisan query db secara langsung.
  • Menghindari penanganan request secara langsung dari pengguna (misal parsing request body, dsb).

Agar View dapat digunakan pada komponen-komponen lain dapat didefinisikan menjadi beberapa bagian berikut:
  • Layout: bagian besar yang basic, misalnya header dan footer.
  • Partial: misal section untuk filter.
  • Widgets: apabila terdapat partial yang membutuhkan banyak logika untuk melakukan handle tampilan.
  • Helper: fungsi-fungsi yang dibutuhkan oleh tampilan,misalnya formatting currency.

Controller
  • Dapat langsung melakukan manipulasi pada atribut request seperti URL Query maupun request body.
  • Membuat instance model dan melakukan manajemen lifecycle model tersebut.
  • Menghindari penyertaan statement SQL ataupun database secara langsung.
  • Menghindari penyertaan kode HTML maupun logika yang digunakan untuk presentasi.