Rumah > pembangunan bahagian belakang > Golang > Pergi: Reka letak repositori untuk perkhidmatan mikro dengan kod kongsi

Pergi: Reka letak repositori untuk perkhidmatan mikro dengan kod kongsi

王林
Lepaskan: 2024-02-09 09:33:28
ke hadapan
824 orang telah melayarinya

Pergi: Reka letak repositori untuk perkhidmatan mikro dengan kod kongsi

Go ialah bahasa pengaturcaraan berkuasa yang telah menjadi semakin popular dalam seni bina perkhidmatan mikro sejak beberapa tahun kebelakangan ini. Kesederhanaan, kecekapan dan keselarasannya menjadikannya ideal untuk membina aplikasi berprestasi tinggi. Apabila membina perkhidmatan mikro dengan Go, susun atur repositori adalah pertimbangan penting. Dalam artikel ini, PHP Editor Banana akan memperkenalkan reka letak repositori perkhidmatan mikro dengan kod kongsi untuk membantu anda mengatur dan mengurus kod anda dengan lebih baik.

Kandungan soalan

Kami baru-baru ini mula menggunakan go untuk membangunkan perkhidmatan mikro baharu. Setiap perkhidmatan mikro ialah modul go dan kami menguruskannya sebagai satu repositori:

/
  services/
    s1/
      go.mod
      main.go
    s2/
      go.mod
      main.go
Salin selepas log masuk

Ini berfungsi dengan baik, tetapi kini kita perlu berkongsi beberapa kod antara s1s2 - beberapa struktur yang digunakan oleh kedua-dua perkhidmatan, fungsi yang dimuat naik ke s3, dsb.

Apakah cara yang betul untuk menangani situasi ini? Sebaik-baiknya, saya akan mempunyai direktori common (adik kepada services) dalam akar repositori dan meletakkan kod biasa di sana - tetapi apabila menyusun common 目录(services 的同级目录)并将公共代码放在那里 - 但是在编译 s1s2, How will go get the code dari sana?

Penyelesaian

Saya rasa apa yang anda tanyakan sebenarnya hanyalah "Bagaimana untuk membina aplikasi go untuk menjana berbilang binari? ".

Anda boleh mengalihkan go.mod ke nama semula direktori peringkat atas supaya anda mempunyai reka letak berikut:

.
├── common
│   └── common.go
├── go.mod
└── services
    ├── s1
    │   └── main.go
    └── s2
        └── main.go
Salin selepas log masuk

Ada juga go.mod yang bermula seperti:

module mymodule
Salin selepas log masuk

Jika common/common.go kelihatan seperti ini:

package common

func commonfunction() string {
    return "this is a common function"
}
Salin selepas log masuk

Kemudian dalam modul services/s1/main.go中,可以导入common:

package main

import (
        "mymodule/common"
        "fmt"
)

func main() {
        res := common.commonfunction()
        fmt.println(res)
}
Salin selepas log masuk

Anda akan membina perkhidmatan s1 seperti ini:

go build ./services/s1
Salin selepas log masuk

Bina s2 Sama seperti:

go build ./services/s2
Salin selepas log masuk

Anda biasanya akan mempunyai peringkat atas makefile untuk membina berbilang perkhidmatan secara automatik.

Atas ialah kandungan terperinci Pergi: Reka letak repositori untuk perkhidmatan mikro dengan kod kongsi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan