Refactoring & Design Pattern
Halo teman-teman! Kemnali lagi bersama saya, Luqman! Kali ini saya akan membahas tentang Refactoring & Design Pattern!
Refactoring?
Refactoring adalah proses pengubahan sebuah software (seperti penamaan, letak, dan lain-lain) tanpa mengubah behaviour-nya. Refactoring dilakukan untuk memperbagus code yang sudah ada dan mencegah kerusakan.
Code refactoring dilakukan agar bisa lebih mudah dipahami dan menjaga kemudahan maintenance code di kemudian hari.
Design Pattern?
Design pattern merupakan sebuah template yang dapat digunakan dalam mengembangkan suatu code. Design Pattern bukanlah suatu desain yang sudah selesai dan bisa diubah ke code yang kita mau.
Design Pattern bisa mempercepat pengembangan suatu code, karena sudah tested dan terbukti keefektifannya.
Berikut adalah ke-3 kelompok design pattern:
Creational Design Pattern
Design Patternn ini berkaitan dengan class instatiation. Berikut adalah jenis-jenisnya:
- Abstract Factory
- Builder
- Factory Method
- Object Pool
- Method
- Singleton
Structural Design Pattern
Design Pattern ini berkaitan dengan komposisi class dan object. Berikut adalah jenis-jenisnya:
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Private Class Data
- Proxy
Behavioral Design Pattern
Design Pattern ini berkaitan dengan komunikasi antar object. Berikut adalah jenis-jenisnya:
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Null Object
- Observer
- State
- Strategy
- Template Method
- Visitor
Implementasi pada SISIDANG-NG
Pada proyek kami, kami menggunakan Design Pattern MTV (Models Views Template). MTV adalah gabungan dari design pattern composite (tree), strategy (enkapsulasi algoritma), dan observer (notifikasi ke kelas lain berupa models).
MTV sering digunakan pad aaplikasi berbasis website, salah satunya adalah framework Django yang kami pakai.
- Models: models.py — Berfungsi untuk manipulasi data
- Templates: templates.html — Sebagai tampilan interface user
- Views: views.py — Sebagai pengontrol aplikasi
Yap, sekian untuk hari ini, semoga kita semua mendapat hal baru untuk dipelajari. Sampai jumpa!