Skip to content

aditya3232/assessment-go-source-code-muhammad-aditya

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deskripsi

Ini adalah Layered Architecture kalau dilihat secara struktur partisinya

Architecture

Layered Architecture

Berikut adalah penjelasan dari setiap layer yang ada di dalam Layered Architecture ini:

  1. Sistem eksternal melakukan permintaan (HTTP, gRPC, Messaging, dll) ke delivery, contoh permintaan dari sistem eksternal adalah request HTTP get dari client, request gRPC dari client, baca pesan dari message broker, atau baca cache dari redis
  2. Delivery akan mengakses model request untuk setiap request yang masuk, dan memanggil model response, untuk mengembalikan response data dari use case ke sistem eksternal
  3. Delivery akan memanggil use case, didalam use case berisi bisnis logic (transaksi, validasi, dll)
  4. Use case membuat instance baru dari entity dan mengisi data entity dari request model
  5. Use case memanggil repository, untuk menyimpan data instance entity yg telah dibuat ke database
  6. Repository menggunakan data entity untuk melakukan operasi database
  7. Repository melakukan operasi basis data ke database
  8. Use case memberikan response yang sesuai berdasarkan model response
  9. Lalu jika ada data yang perlu dikirim ke sistem eksternal, maka use case akan memanggil gateway, dan gateway akan mengirimkan data ke sistem eksternal
  10. Gateway juga akan mengaksesl model untuk data yang dikirim ke sistem eksternal
  11. Gateway akan melakukan permintaan mengirimkan data ke sistem eksternal

Tech Stack

Framework & Library

Configuration

Semua konfigurasi add di file config.json.

API Spec

Semua api spec ada di folder api-spec.

Database Migration

Semua database migration ada di folder db/migrations.

Install Migrate Mysql

go install -tags 'mysql' github.com/golang-migrate/migrate/v4/cmd/migrate@latest

Create Migration

migrate create -ext sql -dir db/migrations create_table_xxx

Run Migration

migrate -database "mysql://root:root@tcp(localhost:3306)/assessment_go_source_code_muhammad_aditya?charset=utf8mb4&parseTime=True&loc=Local" -path db/migrations up

Run Application

Run unit test

go test -v ./test/

Run web server

go run cmd/web/main.go

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages