Sistem perangkat lunak yang kita bangun biasanya sesuai dengan arsitektur komponen tertentu. Pendekatan ini berpusat pada penguraian aplikasi perangkat lunak menjadi beberapa blok (komponen) yang berdiri sendiri. Komponen-komponen tersebut dibuat untuk melakukan tugas tunggal dan dapat digunakan kembali di beberapa proyek, sehingga meningkatkan produktivitas dan konsistensi. Pada artikel ini, kita akan membahas dasar-dasar arsitektur komponen, keuntungan yang ditawarkan, dan bagaimana arsitektur ini mendorong penggunaan kembali dalam rekayasa perangkat lunak.
Apa yang dimaksud dengan Arsitektur Komponen?
Penjelasan - Ini adalah arsitektur modular di mana setiap bagian dari perangkat lunak dibangun dengan menggunakan komponen lain sebagai blok bangunan. Komponen ini merangkum fungsionalitas tertentu, bersama dengan antarmuka yang terdefinisi dengan baik yang memungkinkannya untuk berinteraksi dengan bagian lain dari sistem. Contoh komponen dapat berupa apa saja, mulai dari elemen UI seperti tombol, formulir, dan menu hingga layanan backend seperti modul autentikasi dan API.
Dengan menggunakan arsitektur ini, pengembang dapat menyembunyikan kompleksitas sistem yang besar yang dengan demikian akan membuat sistem lebih mudah dimengerti, dapat diuji, dan diperluas. Arsitektur komponen sangat cocok jika Anda bekerja dengan Nodejs atau kerangka kerja lain seperti React, Angular dan Vue. Anda dapat menggunakan js untuk pengembangan frontend dan layanan mikro untuk sistem backend.
sumber: annisadev.com |
Prinsip Desain Komponen
- Dienkapsulasi: Sebuah komponen harus menjaga keadaannya sendiri dan diisolasi dari layanan eksternal, hanya mengekspos metode yang boleh diakses publik. Hal ini mendorong adanya hubungan yang longgar dan perubahan pada satu komponen tidak mempengaruhi komponen lainnya.
- Reusability: Komponen harus dirancang sedemikian rupa sehingga dapat digunakan kembali dalam konteks yang berbeda dengan sedikit atau tanpa modifikasi.
- Kompatibilitas: Komponen dapat digabungkan untuk menghasilkan fungsi yang lebih kompleks, seperti balok-balok Lego yang disatukan untuk membangun struktur yang lebih besar.
- Modularitas: Setiap komponen sangat modular dan menangani masalah tertentu disarankan untuk dibuat seminimal mungkin, mengikuti Prinsip Tanggung Jawab Tunggal (SRP) yang menyatakan bahwa sebuah modul hanya boleh memiliki satu alasan untuk berubah.
Penggunaan Kembali dalam Arsitektur Komponen
Manfaat Penggunaan Ulang:
- Mengurangi pemborosan: Komponen yang dapat digunakan kembali berarti tidak perlu menulis kode yang hampir sama berulang kali.
- Konsistensi: Pedoman pencetakan untuk komponen UI memastikan desain dan pengalaman pengguna yang konsisten di seluruh proyek.
- Jaminan Kualitas: Mengingat komponen yang digunakan kembali sudah teruji, Anda dapat mencegah bug dan masalah kinerja dalam aplikasi di masa mendatang.
- Modularitas: komponen dapat diganti dan dapat dengan mudah ditingkatkan atau diperpanjang dengan cara yang memastikan sistem dapat berkembang seiring waktu.
Penggunaan Kembali Komponen
- Identifikasi Fitur Umum Abstrak: Pilih fungsionalitas umum di seluruh aplikasi, dan abstraksikan menjadi komponen yang dapat digunakan kembali. Contohnya adalah komponen aCard dalam pustaka UI yang dapat menampilkan gambar, teks, dan tindakan.
- Definisi antarmuka: Setiap kali komponen yang berbeda berkomunikasi, Anda harus menggunakan API yang eksplisit dan terstandarisasi. Hal ini membantu mengurangi ketergantungan dan membuat aplikasi kompatibel dengan berbagai sistem.
- Gunakan Libraries dan Framework: Cara yang baik untuk berlatih menggunakan komponen yang dapat digunakan kembali adalah dengan menggunakan library seperti React, yang dilengkapi dengan alat dan metodologi untuk membuat komponen yang dapat digunakan kembali. Alat seperti Storybook dapat digunakan untuk mendokumentasikan serta menampilkan komponen yang dapat digunakan kembali dalam semacam katalog visual.
- Standarisasi Perpustakaan: Server Pusat untuk menyimpan semua komponen yang dapat digunakan kembali juga, Perpustakaan Basis Penampilan diatur oleh sistem desain. Hal ini akan membantu menjaga konsistensi dalam branding dan fungsionalitas proyek apa pun.
Masalah dengan Penggunaan Kembali Komponen
- Rekayasa yang berlebihan: Mencoba membuat semua komponen dapat digunakan kembali dapat membuat kode mati sekaligus menambah kompleksitas yang membuat pengembangan menjadi lebih sulit dari yang diinginkan.
- Komponen Khusus Konteks: Beberapa komponen mungkin tidak berskala universal di seluruh kasus penggunaan yang mengarah pada kebutuhan untuk menyeimbangkan fungsi umum dan khusus.
- Manajemen Ketergantungan: Hal ini dapat menjadi sulit untuk mempertahankan ketergantungan antara komponen yang berbeda selama proyek berlangsung yang membuat hal ini semakin terasa ketika sistem tumbuh lebih besar.