Jelajahi pro lan kontra Go for DevOps

Kanthi nggunakake ing sistem kontainer, integrasi API lan layanan mikro, Go — kadhangkala dikenal minangka Golang — minangka basa pamrograman sing tambah populer kanggo DevOps lan proyek awan.

Go minangka sumber terbuka, basa sing diketik kanthi kuat sing bubar peringkat ing 10 basa pemrograman paling tren ing IEEE kanggo 2022. Amarga Docker lan Kubernetes ditulis ing Go – kaya alat DevOps sing akeh digunakake kaya Terraform lan Red Hat OpenShift – sinau Go mbukak lawang kanggo nulis implementasi lan plugin sing disesuaikan lan menehi kontribusi kanggo proyek sumber terbuka kasebut.

“Go dhewe dadi luwih akeh basa web — ing lingkungan awan lan awan,” ujare Teiva Harsanyi, insinyur perangkat lunak senior ing Docker lan penulis buku kasebut. 100 Go Kesalahan lan Cara Nyingkiri. “Umume sistem saiki ing konteks lingkungan awan dibangun ing Go.”

Harsanyi pisanan wiwit nggarap Go enem taun kepungkur, nalika tim ditugasake kanggo migrasi aplikasi monolitik gedhe sing ditulis ing C ++ sing diarani “rada kekacoan.” Nalika organisasi pengin modernisasi proyek kanthi nggawe luwih granular lan dipercaya, Go minangka pilihan alami.

Klik kanggo informasi luwih lengkap

bab ‘100 GB Kesalahan lan

Carane Nyingkiri Wong-wong mau.’

Ing bukune, Harsanyi ngatasi kesalahan paling gedhe sing dideleng ing antarane pangembang Go lan nuduhake saran supaya bisa ngoptimalake basa kasebut. 12 bab ing buku kasebut maca kesalahan Go umum miturut kategori — kayata jinis data, senar lan optimasi — kanthi kode sampel kanggo nggambarake masalah lan solusi.

Keuntungan saka basa pamrograman Go

Sanajan 100 cara pangembang Go bisa salah sing digarisake Harsanyi ing buku kasebut, dheweke minangka advokat kanggo basa kasebut. Go, digawe ing Google ing 2007, lags popularitas konco opsi liyane diadegaké kaya Python lan Jawa, nanging Harsanyi pracaya iku wis sawetara kaluwihan, kalebu stabilitas, gamblang lan kacepetan.

Miturut Harsanyi, lanskap Go ora owah akeh sajrone telung taun wiwit nulis bukune — sing digambarake minangka salah sawijining mupangat basa kasebut. Harsanyi ujar manawa introduksi obat generik Maret 2022 minangka tambahan utama kanggo Go sing dideleng wiwit dheweke miwiti nggarap basa kasebut.

Pembaruan sing relatif jarang iki, bebarengan karo sifat ekspresif Go, nggawe basa kasebut stabil lan bisa diwaca. Wong anyar ing proyek pangembangan piranti lunak modern asring disambut kanthi atusan utawa ewu baris kode sing wis ana. Kanthi Go, “gampang banget kanggo wong teka ing proyek lan ngerti apa sing ditindakake kode kasebut,” ujare Harsanyi. Kurva sinau sing cethek iki minangka kauntungan ing lingkungan DevOps kanthi cepet sing mbutuhake basis kode sing ringkes lan bisa dijaga.

Keterbacaan Go umume asale saka sintaks sing prasaja lan desain standar. Amarga basa kayata Python lan Jawa nawakake macem-macem cara kanggo ngrampungake tugas sing padha, programer beda bisa nggunakake macem-macem cara kanggo nggayuh tujuan sing padha. Nalika macem-macem pilihan iki narik kawigaten kanggo sawetara, liyane nemokake iku akeh banget – utamané nalika adopsi saka perpustakaan njaba lan frameworks ndadékaké kanggo proyèk luwih Komplek karo akeh dependensi.

Aku ndeleng liyane lan liyane back-end pangembang milih Go ing mangsa.

Teiva HarsanyiPenulis, ‘100 Kesalahan lan Cara Nyingkiri’

Go, ing kontras, gumantung banget ing perpustakaan standar sing dibangun, tegese programer Go kurang perlu sinau pendekatan sing beda nalika gabung karo tim anyar. Harsanyi menehi conto ngleksanakake layanan HTTP anyar. Dene pangembang Python bisa milih ing antarane puluhan perpustakaan lan kerangka kerja, Go nduweni perpustakaan layanan HTTP standar minangka bagéan saka basa inti.

Amarga Go diketik kanthi statis lan kompilasi langsung menyang kode mesin, program Go cenderung cepet lan entheng, ndhukung panyebaran kanthi cepet lan kabutuhan kinerja dhuwur saka alur kerja DevOps. Harsanyi wis nggarap macem-macem basa — kalebu Jawa, Scala, Rust lan Python — lan nemokake Go dadi sing paling efisien kanggo aplikasi mburi.

“Sasi kepungkur aku kudu bali menyang Jawa maneh, lan iki ekosistem sing akeh banget [more] Komplek kanggo ngerti, “ujare. “Ana perpustakaan ing ngendi wae. … Dadi aku ndeleng luwih akeh pangembang mburi sing milih Go ing mangsa ngarep.”

Gotchas kanggo pangembang nggunakake Go

Salah sawijining kesalahan sing paling penting sing ditemokake Harsanyi ing antarane pangembang Go kalebu konkurensi: pendekatan pemrograman sing dimaksudake kanggo nambah kinerja kanthi nglakokake macem-macem operasi sekaligus. Fitur iki migunani kanggo insinyur DevOps sing kudu nglakokake proses lan fungsi mandiri kanthi bebarengan.

Nalika sawetara basa, kayata Rust, mbutuhake perpustakaan eksternal kanggo nulis program bebarengan, Go kalebu primitif konkurensi sing diarani goroutine lan saluran minangka bagéan saka basa kasebut. Nanging, ngetrapake konkurensi kanthi bener isih dadi tantangan kanggo pangembang Go. Luwih saka setengah saka bug sing ana gandhengane karo konkurensi sing ditemokake ing repositori populer kayata Docker lan Kubernetes asale saka masalah khusus Go, miturut panaliten 2019 dening peneliti saka Pennsylvania State University lan Universitas Purdue.

Nalika nerangake temuan iki, lan sajrone buku kasebut, Harsanyi ujar manawa kesederhanaan Go ora ngilangi kabutuhan kanggo mbangun pangerten sing jero babagan cara basa kasebut. “Sederhana ora ateges gampang,” ujare. “Sampeyan bisa duwe soko prasaja kanggo nulis minangka bagéan saka basa, nanging ora ateges sing bakal gampang kanggo bener ngleksanakake.”

Pangembang uga kudu nimbang kepiye basa pamrograman sing beda bisa kerja bareng, tinimbang ndeleng minangka pesaing, ujare Harsanyi. Dheweke ndeleng Go lan Rust minangka pelengkap utamane kanggo insinyur DevOps: Go kanggo ngleksanakake aplikasi awan sing cepet, efisien lan dipercaya, lan Rust kanggo sistem latensi rendah sing kinerja penting.

“Minangka insinyur mburi, aku ndeleng rong basa kasebut minangka masa depan,” ujare Harsanyi. “Aku seneng banget yen loro basa kasebut ora ana konflik.”

Download PDF kanggo maca kutipan saka Bab 3 saka 100 Go Kesalahan lan Cara Nyingkiri. Bab 3 (“Jinis data”) nyakup kesalahan umum sing ana gandhengane karo jinis data, irisan, peta lan perbandingan nilai ing Go. Buku kasebut, dirilis ing Agustus 2022, ISBN 9781617299599, kasedhiya saka Manning.

Leave a Comment

Your email address will not be published. Required fields are marked *