Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fajrulaulia/golang-solid

implement golang with solid SOLID principles
https://github.com/fajrulaulia/golang-solid

Last synced: about 6 hours ago
JSON representation

implement golang with solid SOLID principles

Awesome Lists containing this project

README

        

# PENERAPAN SOLID DENGAN GOLANG

## SOLID itu benda apa ?

SOLID merupakan prinsip penting yang dirumuskan oleh Para expertise Software Engineering. Prinsip-prinsip ini bertujuan untuk membantu dalam mengembangkan perangkat lunak yang memiliki stabilitas tinggi dan dapat diandalkan. Dengan penerapan SOLID, tujuan utamanya adalah menciptakan perangkat lunak yang kokoh dan handal, serta dapat dengan mudah dikembangkan dan diubah seiring waktu, S.O.L.I.D merupakan prinsip-prinsip yang dibuat untuk membantu programmer yang menggunakan bahasa pemograman berbasis OOP.

### Bisa OOP, Bisa SOLID?
Walaupun Pemrograman Berorientasi Objek (OOP) adalah pendekatan yang umum digunakan dalam merancang dan menulis kode di berbagai bahasa pemrograman, SOLID membawa prinsip-prinsip yang lebih mendalam dan spesifik. Dengan memahami dan menerapkan SOLID, kita dapat menciptakan kode yang lebih terstruktur, mudah untuk dijaga, dan memiliki fondasi yang kokoh untuk masa depan, Jawabannya bisa.

## Apa Saja Prinsip dari S.O.L.I.D

1. Single Responsibility Principle (SRP) setiap kelas atau modul hanya boleh memiliki satu alasan untuk berubah. Dalam kata lain, satu kelas hanya seharusnya memiliki satu tanggung jawab.

2. Open/Closed Principle (OCP) terbukan untuk pengembangan, tertutup untuk modifikasi.

3. Liskov Substitution Principle (LSP) objek dari kelas turunan harus dapat digunakan sebagai pengganti objek kelas induk tanpa mengganggu fungsionalitas yang diharapkan.

4. Interface Segregation Principle (ISP) tidak boleh dipaksa untuk mengimplementasikan metode yang tidak mereka gunakan.

5. Dependency Inversion Principle (DIP) yang merupakan Modul tingkat tinggi tidak boleh bergantung pada modul tingkat rendah. Keduanya sebaiknya bergantung pada abstraksi. Selain itu, detail seharusnya tidak bergantung pada abstraksi, tetapi sebaliknya.

## Apakah golang bisa menerapkan S.O.L.I.D
bisa, Prinsip-prinsip SOLID dapat diterapkan dalam bahasa pemrograman golang seperti dalam bahasa pemrograman lainnya. Meskipun golang memiliki pendekatan yang agak berbeda dalam beberapa aspek seperti inheritance, class dll, prinsip-prinsip desain SOLID masih berlaku dan bisa memberikan manfaat yang signifikan dalam pengembangan perangkat lunak, disini saya akan mencoba menerapkan SOLID di golang.

bisa diikutin dengan link sebagai berikut:
1. [Single Responsibility Principle (SRP)](./srp/)
2. [Open/Closed Principle (OCP) ](./ocp)
3. [Liskov Substitution Principle (LSP)](./lsp) WIP
4. [Interface Segregation Principle (ISP)](./isp) WIP
5. [Dependency Inversion Principle (DIP)](./dip) WIP