Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Teknik Membina: Menyelam Mendalam ke Go

Teknik Membina: Menyelam Mendalam ke Go

Linda Hamilton
Linda Hamiltonasal
2024-09-30 18:11:03700semak imbas

Building Techniques: A Deep Dive into Go

Go telah menjadi bahasa penting dalam kerjaya peribadi saya. Saya membina Pelayan iklan audio yang kukuh dan SSP dengannya semasa saya menjadi CTO di Soundcast. Go menjadikan rangkaian dan paralelisme begitu mudah sehingga terasa seperti menipu. Semua itu dengan prestasi yang sangat baik, yang sesuai untuk kerja yang perlu kami lakukan.

Dalam bahagian 1, kami mendedahkan asas-asas fasa pembinaan perisian. Dalam artikel ini, kami akan menjadikan ini lebih relevan dengan bantuan bahasa yang mempunyai tempat istimewa di hati saya. Malah, walaupun asas membina perisian adalah serupa merentas bahasa, setiap ekosistem bahasa mempunyai alatan dan amalan uniknya sendiri.

Tanpa berlengah lagi, mari kita terokai ini, dengan tumpuan khusus pada Pergi.

Pendekatan Pembinaan Go

Go, direka oleh Google, mengambil pendekatan unik untuk membina yang menekankan kesederhanaan dan kelajuan.

Perintah

Go disertakan dengan arahan bina. Perintah ini menyusun pakej yang dinamakan oleh laluan import, bersama-sama dengan kebergantungan mereka, tetapi tidak memasang hasilnya. Ia menjana fail boleh laku.

Contoh:

go build main.go

Kompilasi Silang dalam Go

Salah satu ciri yang paling berguna bagi pengkompil Go ialah keupayaan untuk melaksanakan kompilasi silang dengan sangat mudah. Apa yang anda perlu lakukan ialah tetapkan pembolehubah persekitaran GOOS dan GOARCH untuk menyasarkan platform yang diingini.

Contoh:

GOOS=windows GOARCH=amd64 go build main.go

Ini akan mencipta boleh laku untuk Windows di bawah seni bina amd64.

Modul Go

Mod Go datang agak lewat kerana ia diperkenalkan dengan Go 1.11, tetapi ia adalah sistem pengurusan pergantungan terbina dalam. Sebelum itu, kami perlu meletakkan semua projek Go kami ke dalam direktori khusus pada mesin kami yang dipanggil {$GOPATH}. Walaupun ia berfungsi, mod Go memberikan kami lebih fleksibiliti sekarang, yang sangat bagus!

Penggunaan agak mudah, seperti segala-galanya dalam Go.

  • go mod inikan memulakan modul baharu.
  • Fail go.mod menjejaki kebergantungan dan versinya.

Anda boleh menambah kompilasi bersyarat dengan menggunakan teg binaan, tetapi ciri yang paling menarik, pada pendapat saya, ialah Go secara automatik menyimpan output binaan untuk mempercepatkan binaan berikutnya (sudah tentu, anda boleh membersihkan cache jika perlu).

Teknik Membina Go Lanjutan

Membenamkan Sumber

Jika anda mempunyai fail statik yang ingin anda sertakan dalam binari anda, anda boleh menggunakan arahan //go:embed.

Pengesanan Perlumbaan

Go adalah hebat apabila ia berkaitan dengan keselarian. Dengan sistem goroutine dan saluran untuk berkomunikasi antara mereka, pembangun boleh dengan mudah membahagikan beban kerja perisian pada teras yang berbeza. Tetapi ia juga mudah untuk mengacaukan keadaan dan mencipta "perlumbaan."

Perlumbaan data berlaku apabila dua goroutine mengakses pembolehubah yang sama secara serentak dan sekurang-kurangnya satu daripada akses itu ialah tulis. Lihat Model Memori The Go untuk butiran.

Pengkompil Go boleh membantu anda mencari mereka!

Gunakan bendera perlumbaan untuk mengesan keadaan perlumbaan:

go build -race main.go

Profil dan Pengoptimuman

Salah satu perkara utama yang saya suka dalam Go ialah prestasinya. Bahasa ini memberikan hasil yang kukuh dengan tidak banyak usaha. Tetapi jika anda ingin mencuba lebih banyak, ekosistem Go juga memberikan anda beberapa alatan yang sangat hebat untuk mengukur prestasi anda dan mengoptimumkan kod anda.

Saya tidak akan pergi ke butiran, tetapi jika anda ingin menyelami subjek, saya menjemput anda untuk membaca permata ini: https://www.practical-go-lessons.com/chap-34-benchmarks

Mod Binaan Tersuai

Kadangkala, anda tidak membina perisian tetapi pemalam atau perpustakaan, sebagai contoh. Pasukan Go telah menyokong anda. Dalam Go, anda boleh menentukan mod binaan untuk mendapatkan hasil yang anda inginkan!

  • Bina perpustakaan kongsi: pergi bina -buildmode=c-shared
  • Bina pemalam: pergi bina -buildmode=plugin
  • Dapatkan senarai penuh di https://pkg.go.dev/cmd/go#hdr-Build_modes

Seperti yang anda lihat, Go menyediakan banyak ciri dalam pengkompil dan ekosistemnya untuk membolehkan pembangun memanfaatkan sepenuhnya teknologi Go.

Dan itu sahaja untuk hari ini. Saya akan mengeluarkan artikel lain minggu ini yang mempamerkan teknik pembinaan untuk TypeScript, jadi langgan atau ikuti jika anda ingin memastikan tidak terlepas!

Sehingga itu, selamat mengekod!

Atas ialah kandungan terperinci Teknik Membina: Menyelam Mendalam ke Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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