Week 13. Refactor
Refactor
Minggu ini saya banyak melakukan refactor untuk meningkatkan integrasi dengan backend dan microservice. Berikut beberapa refactor yang saya lakukan
Menambah isOwner permission ke print history
dll
Riset provider SMS
Saya melakukan beberapa riset untuk mencari provider terbaik untuk SMS. Berikut beberapa provider yang sempat saya cek
130 rupiah per sms, 10 sms gratis, API agak kurang powerfull karena tidak bisa newline pesannya
326.34 rp per sms + sewa nomor 2$ per bulan
Security concern karena takut password disimpan sebagai plain text
401.72 rp per sms + sewa nomor 3$
243.16 rupiah
Namun pada akhirnya atas saran dari PO saya menggunakan layanan dari raja-sms. Dikarenakan harganya relatif murah dan APInya lebih mantap ketimbang zenziva
Memakai Raja SMS
Software Architecture
Software architecture adalah struktur dari sebuah sistem software, didalamnya terdapat komponen dari software dan relasinya satu sama lain
Println menggunakan microservice software architecture . Microservice kami sekarang hanya 1, yakni melakukan percetakan. Karena web berbasis web, kami juga menggunakan client-server software architecture
Berikut beberapa komponen dari println
- Frontend, menangani semua interaksi user di web
- Backend, menyediakan akses data untuk frontend dan microservice. Juga melayani pengiriman notifikasi ke user
- Microservice (Print), mengambil data dari backend dan mengatur proses print dengan printer
Think Big & Daily Improvement
Println memiliki potensi bisnis yang besar. Dengan menggunakan sistem pembayaran di muka Println tidak akan menemui masalah seperti halnya cetakin yang sering tidak dibayar dan diambil orderan percetakkannya (di println order percetakan bisa tidak diambil, tapi tidak akan pernah tidak dibayar)
Println juga dapat mengimplementasikan dynamic pricing dan voucher dengan mudah. Sehingga admin dapat dengan mudah melakukan kampanye diskon untuk marketing. Rencananya untuk masa pameran nanti, kami akan menggunakan voucher untuk marketing kami nanti.
Menggunakan sms membutuhkan membayar service. Namun pada khalayak luas sms masih banyak digunakan, dan tidak ada kepastian dapat menggunakan bot untuk aplikasi chat seperti di line/telegram/discord/fb messanger. Selain itu sms hampir pasti menjadi push notification pada semua jenis hp, tidak seperti email yang bisa saja dimatikan push notificationnya karena storage smartphone tidak muat (cukup sering terjadi di smartphone dengan storage kecil seperti smartphone saya), dan tidak membatasi ke smartphone saja.
Di PPL. daily improvement saya adalah belajar mengenai DRF lebih dalam dan belajar mengenai pengembangan software sehingga saya memiliki skill yang berguna untuk mencari pekerjaan nanri
Refactoring & Design Pattern
Refactoring
Berikut meme curian untuk topik ini
Saya melakukan banyak refactor minggu ini. Terutama mengikuti kritik dan saran dari teman-teman. Beberapa yang saya refactor sudah saya lampirkan di paling atas. Beberapa diantaranya adalah refactor yang diakibatkan oleh perubahan requirment seperti penambahan field queue di return untuk suatu endpoint.
Saya juga melakukan refactor untuk meningkatkan kualitas dari test. Seperti dibawah ini. Karena test yang baik akan meningkatkan kepercayaan orang lain yang akan menggunakan kode anda
Design Pattern
In Println backend, kami menggunakan DRF. Django dan DRF sendiri bukan MVC, hal ini wajar karena MVC dibuat untuk GUI desktop application, sedangkan Django dan DRF untuk web aplikasi.
- Template Pattern: ViewSet adalah template yang digunakan untuk mendefinisikan view. Viewset memberikan keseragaman dan kepraktisan
- Facade Pattern: Serializer dapat dianggap sebagai facade dari Model. View di drf melakukan aksi ke model tanpa benar-benar menggunakan model dan hanya melalui serializer.
Design pattern adalah sebuah solusi. Apabila suatu problem akan lebih baik jika menggunakan design pattern, maka gunakan design pattern. Namun jangan mengimplementasikan design pattern hanya karena bisa. Implementasi design pattern yang berlebihan hanya akan membuat kode menjadi lebih kompleks dan sulit dibaca