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.
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 s1
和 s2
- 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
的同级目录)并将公共代码放在那里 - 但是在编译 s1
和 s2
, How will go get the code dari sana?
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!