Design Pattern Pada Django

Khoirul Khuluqi Abdulloh
Scrum Booster
Published in
3 min readApr 4, 2019
Hasil gambar untuk software design pattern comic

Dalam software engineering, design pattern adalah solusi umum untuk masalah yang biasa atau sering terjadi dalam software design. design pattern merupakan deskripsi atau templat untuk menjawab bagaimana menyelesaikan masalah yang dapat digunakan dalam berbagai situasi.
Design pattern dapat mempercepat proses pengembangan dengan menyediakan paradigma pengembangan yang telah teruji dan terbukti. dengan menggunakan design pattern, kita dapat mencegah berbagai masalah yang mungkin dianggap sepele namun dapat menyebabkan masalah besar, dan juga dapat meningkatkan code readability.

Template Method Pattern

Paradigma : Tentukan kerangka suatu algoritma dalam sebuah operasi, biarkan beberapa langkah untuk didefinisikan subclass, sehingga memungkinkan client mendefinisikan ulang langkah-langkah tertentu dari suatu algoritma tanpa mengubah struktur algoritma.

Struktur Template Method Pattern

Pada pengembangan web service untuk aplikasi Scrum Booster, terdapat penggunaan Template Method Pattern. Yaitu pada potongan kode berikut

Pada potongan kode tersebut, saya membuat class GetCeremonyAndProblemByPhase yang meng-inherit APIView. Dengan demikian, saya tidak perlu men-define ulang semua langkah-langkah untuk meng-handle GET request, namun hanya perlu melakukan override pada method ‘get()’.

Model View Controller Pattern

Model-View-Controller atau biasa disingkat MVC adalah sebuah metode untuk membuat sebuah aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). Dalam implementasinya kebanyakan framework dalam aplikasi website seperti Django, menerapkan arsitektur MVC.

  • Model hanya berisi data aplikasi murni, tidak mengandung logika yang menjelaskan cara menyajikan data kepada pengguna.
  • View menampilkan data kepada pengguna tanpa mengetahui arti dari data ini atau apa yang dapat dilakukan pengguna untuk memanipulasinya.
  • Controller berada di antara view dan model. Controller me-listen request dari pengguna dan mengeksekusi reaksi yang sesuai untuk request ini. Pada controller, terkandung logika untuk memanipulasi data pada Model.

Pattern ini memungkinkan code reusable, seperti menggunakan berbagai Controller untuk memanipulasi suatu Model, menggunakan beberapa View dengan tampilan berbeda untuk Model yang sama, dan sebagainya.

Framework Django sendiri menerapkan MVC pattern, namun dengan penamaan yang berbeda, yaitu Template yang berperan sebagai View, dan View yang berperan sebagai Controller.

Refactoring

Refaktorisasi kode (code refactoring) adalah proses restrukturisasi kode program komputer yang sudah ada tanpa mengubah perilaku eksternalnya. Hal ini dilakukan untuk meng-improve atribut nonfunctional pada pengembangan software, seperti meningkatkan readability, mengurangi kompeksitas, dan meningkatkan maintainability.

Refactoring adalah proses sistematis untuk memperbaiki kode tanpa membuat fungsionalitas baru yang dapat mengubah kode yang berantakan menjadi clean code dan desain sederhana.

Terdapat beberapa metode pada Refactoring untuk mencapai clean code. Seperti Extract Method, Inline Method, Extract Variable, Replace Temp with Query, Split Temporary Variable, Replace Method with Method Object, Remove Middle Man, Replace Array with Object, dan lain-lain.

--

--