SOLID principles sejatinya hanyalah aturan yang dirancang untuk membantu programmer menulis kode yang terstruktur dan mudah dipelihara. Secara garis besar konsep SOLID ini meliputi Single Responsibility, Open/Close, Liskov Subtitution, Interface Segregation, Dependency Inversion. artikel ini diharapkan dapat memberikan pemahaman penerapan SOLID di bahasa go dan sebagai reminder pribadi saat merasa bahwa kode yang saya tulis terasa tidak rapi dan sulit dipahami.
Konsep ini seringkali dijadikan fondasi dalam membangun sebuah sistem perangkat lunak modern dan konsep ini seringkali hadir sebagai guideline dalam menulis kode yang rapih karena prinsip ini seharusnya dapat membuat code yang kita tulis lebih mudah dipahami oleh orang lain, mudah diperbaiki dan juga mudah dikembangkan di masa mendatang.
kenapa kita perlu setidaknya mengetahui SOLID principle ini? menulis kode biasanya hanya sekedar membuat kode yang berfungsi sesuai kebutuhan saja, tetapi seiring berjalannya waktu kadang kita akan menyadari bahwa kode yang berfungsi saja tidak cukup. kode yang tidak terstruktur dengan baik akan menjadi mimpi buruk saat harus diperbaiki atau di optimize.
Berikut beberapa alasan mengapa kadang solid principle ini perlu untuk di ikuti:
- kode yang terstruktur dengan baik tidak hanya lebih mudah untuk dimengerti, tetapi juga memudahkan tim lain yang mungkin harus bekerja dengan kode yang orang lain tulis.
- mendesain kode yang fleksibel dan mudah diperluas membuat perubahan dapat dilakukan tanpa mempengaruhi bagian kode yang lain
- membagi kode ke dalam tanggung jawab yang terpisah memudahkan dalam memperbaiki bug dengan lebih cepat dan efisien.
- kode yang modular dan bersih memudahkan dalam memahami bagian-bagian progam dengan mudah.
- membantu dalam pembuatan code skala besar yang scalable seiring bertambahnya fitur fitur lain nya.
Single Reponsibility Principle (SRP)
Single Responsibility Principle merupakan prinsip yang menyatakan bahwa sebuah kelas harus hanya memiliki satu tanggung jawab yang spesifik
Open/Closed Principle (OCP)
Open Closed Principle merupakan prinsip yang menyatakan bahwa sebuah entitas perangkat lunak terbuka untuk ekstensi atau menambahkan fitur baru tanpa mengubah code yang sudah ada
Liskov Subtitution Principle (LSP)
Liskov Substitution Principle merupakan prinsip yang menyatakan bahwa kelas turunan harus dapat menggantikan kelas dasarnya tanpa mengubah sifatnya
Interface Segregation Principle (ISP)
Interface Segregation Principle merupakan prinsip yang menyatakan bahwa sebuah klien tidak seharusnya dipaksa untuk bergantung pada metode-metode yang tidak digunakannya atau interface yang terlalu besar harus dipisah menjadi beberapa interface yang lebih spesifik sesuai dengan kebutuhan
Dependency Inversion Principle (DIP)
Dependency Inversion Principle merupakan prinsip yang menyatakan bahwa modul tingkat tinggi tidak boleh bergantung pada modul tingkat
rendah. Keduanya harus bergantung pada abstraksi
Top comments (0)