Clean Architecture
kita sudah pernah mempelajari clean arcitecture
kali ini kita akan menggunakan konsep domain
structure folder sebagai berikut
---- [domain]
---- [ddrivers]
---- [handler]
grpc.go
---- [repositories]
repo.go
---- [usecase]
usecase.go
otherfile.go
---- [validation]
validationfile.go
repository_interface.go
usecase_interface.go
validation_interface.goKita akan memecah file domain/ddrivers/handler.go menjadi mengikuti structur folder di atas.
Helper
untuk fungsi-fungsi pendukung akan dikelompokkan ke dalam folder lib/helper
Buat file lib/helper/error_ctx.go
Repository
repository adalah kode-kode yang mengakses transaksi database
Buat file domain/ddrivers/repository_interface.go
Buat folder domain/ddrivers/repositories. Semua file yang mengimplementasikan repository interface akan dibuat dalam filder ini.
Buat file domain/ddrivers/repositories/repo.go
Buat file domain/ddrivers/repositories/find_all.go
Buat file domain/ddrivers/repositories/find_driver_by_id.go
Buat file domain/ddrivers/repositories/create_driver.go
Buat file domain/ddrivers/repositories/update_driver_by_id.go
Buat file domain/ddrivers/repositories/delete_driver_by_id.go
Validation
Setiap request perlu divalidasi
Buat file domain/ddrivers/validation_interface.go
Untuk kemudahan pengelolaan kode, semua implementasi validasi akan dimasukkan dalam folder domain/drivers/validation
Buat file domain/ddrivers/validation/driover_validation.go
Buat file domain/ddrivers/validation/create_driver_validation.go
Buat file domain/ddrivers/validation/update_driver_validation.go
Buat file domain/ddrivers/validation/delete_driver/validation.fo
Usecase
usacase digunakan untuk menghandle logic. usecase yang akan memanggil validation maupun repository sekiranya logic membutuhkan hal tersebut.
Buat file usecase_interface.go
Buat folder usecase untuk menyimpan seluruh fiule implementasi usecase interface.
Buat file domain/ddrivers/usecase/usecase.go
Buat file domain/ddrivers/usecase/create_driver_usecase.go
Buat file domain/ddrivers/usecase/list_driver_usecase.go
Buat file domain/ddrivers/usecase/update_driver_usecase.go
Buat file domain.ddrivers/usecase/delete_driver_usecase.go
Perbarui Handler
handler merupakan endpoint service.
handler mengimpolementasikan seluruh seluruh funhgsi dari interface DomainServiceServer
Buat file domain/ddrivers/handler/grpc.go
Perbarui Routing
Ubah file route/route.go
Last updated
Was this helpful?