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

Pergi: Reka letak repositori untuk perkhidmatan mikro dengan kod kongsi

王林
王林ke hadapan
2024-02-09 09:33:28795semak imbas

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

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

Ada juga go.mod yang bermula seperti:

module mymodule

Jika common/common.go kelihatan seperti ini:

package common

func commonfunction() string {
    return "this is a common function"
}

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

package main

import (
        "mymodule/common"
        "fmt"
)

func main() {
        res := common.commonfunction()
        fmt.println(res)
}

Anda akan membina perkhidmatan s1 seperti ini:

go build ./services/s1

Bina s2 Sama seperti:

go build ./services/s2

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam