Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah bahasa go digunakan sebagai backend?

Bolehkah bahasa go digunakan sebagai backend?

青灯夜游
青灯夜游asal
2022-12-27 10:50:585175semak imbas

Bahasa Go boleh digunakan sebagai hujung belakang. Bahasa Go ialah bahasa pengaturcaraan bahagian pelayan Arahnya terutamanya bahagian belakang Ia sangat sesuai untuk memproses log, pembungkusan data, pemprosesan mesin maya, sistem fail, sistem teragih, ejen pangkalan data, dll. Sebab untuk menggunakan bahasa Go untuk pembangunan back-end: 1. Ia mempunyai ciri-ciri sintaks yang mudah dan kecekapan pelaksanaan yang tinggi pada tahap bahasa 2. Ia memfokuskan pada concurrency dan dilahirkan untuk concurrency data besar + era pengkomputeran awan Tinggi, senario aplikasi teragih;

Bolehkah bahasa go digunakan sebagai backend?

Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.

Bahasa Go ialah bahasa pengaturcaraan bahagian pelayan, terutamanya digunakan untuk bahagian belakang Ia sangat sesuai untuk memproses log, pembungkusan data, pemprosesan mesin maya, sistem fail, sistem teragih, ejen pangkalan data, dll.

Mengapa menggunakan bahasa Go untuk pembangunan bahagian belakang?

1. Ringkas dan cekap: Hampir semua bahasa pengaturcaraan arus perdana seperti Java, C++, PHP, Python, JavaScript, dll. boleh digunakan untuk pembangunan bahagian pelayan ialah bintang yang sedang meningkat pada peringkat bahasa, ia mempunyai ciri sintaks mudah dan kecekapan pelaksanaan yang tinggi (sebagai perbandingan, Java, Python dan PHP semuanya tidak cekap, C++ terlalu menyusahkan, dan Go boleh mencapai kedua-dua kesederhanaan); dan kecekapan;

2. Konkurensi tinggi: Bahasa Go memfokuskan pada concurrency dan titik permulaannya adalah untuk menyasarkan senario aplikasi yang diedarkan dalam era pengkomputeran awan besar

3. Cross-platform: Ia boleh disusun secara langsung untuk menjana program boleh laku pada platform yang berbeza Penggunaan memori asas adalah sangat kecil membolehkan golang digunakan pada Raspberry Pi dan seumpamanya Ia berjalan dengan baik pada peranti kecil, yang berprestasi jauh lebih baik daripada Java

Pebekalan, pengedaran dan perkhidmatan mikro adalah trend dalam pembangunan pelayan, dalam arahan ini:

  • Penyusunan: Bahasa Go adalah penguasa mutlak dalam medan kontena yang terkenal Docker dan Kubernets (K8S) dibangunkan menggunakan bahasa Go;

    Diedarkan: Contoh terbaik ialah Ethereum, kerana blockchain ialah lejar teragih

  • Perkhidmatan Mikro: Contoh terbaik perkhidmatan mikro menyokong bahasa Go ialah Toutiao, Toutiao Pada masa ini, lebih daripada 80; % daripada trafik perkhidmatan bahagian belakang berjalan pada perkhidmatan yang dibina dalam Go. Bilangan perkhidmatan mikro melebihi 100, QPS puncak melebihi 7 juta, dan volum permintaan pemprosesan harian melebihi 300 bilion Ia mungkin merupakan aplikasi Go terbesar dalam industri.

  • Bahasa Go ialah bahasa back-end Berbanding dengan bahasa back-end yang lain, apakah kelebihan atau ciri Go?

Tahap bahasa menyokong konkurensi Ini adalah ciri terbesar Go. Ia adalah mudah untuk menulis program berbilang benang dan boleh menggunakan berbilang teras.

  • Sebagai bahasa pengaturcaraan yang lahir pada abad ke-21, ia menyokong pengumpulan sampah Seperti Java, pembangun tidak perlu mengurus memori dan boleh menumpukan pada pelaksanaan perniagaan.

  • Pustaka standard yang kaya, Go mempunyai sejumlah besar perpustakaan terbina dalam, terutamanya perpustakaan rangkaian yang sangat berkuasa.

  • Pengaturan bahasa Go adalah agak mudah, ia disusun terus ke dalam kod mesin dan terdapat pilihan kompilasi merentas platform.

  • Falsafah bahasa Go ialah "less is more". Berbanding dengan C++ dan Java, bahasa Go lebih mudah untuk dimulakan.

  • Kisah kejayaan bahasa Go

1. Docker Ia hampir merupakan kisah kejayaan yang sukar dicari dan disalin dalam Go. Projek Docker menerima $40 juta dalam pembiayaan Siri C pada September 2014. Kelajuan lelaran versi adalah sangat pantas Pada masa ini, terdapat 78 versi yang dilihat di GitHub, dan ia hanya projek yang dimulakan secara rasmi pada awal 2013. Pada masa ini, promosi teknologi Docker domestik juga sedang giat dijalankan, seperti komuniti Cina Docker, dan CSDN juga telah menubuhkan zon Docker. Sebab mengapa pasukan Docker suka menggunakan bahasa Go adalah terutamanya kerana Go mempunyai perpustakaan standard yang berkuasa, persekitaran pembangunan penuh dan keupayaan pembinaan merentas platform. 2. Kubernetes (bekas)

Kubernetes ialah Kubernetes yang dilancarkan oleh Google pada musim panas 2014. Ia berdasarkan Docker dan tujuannya adalah untuk membolehkan pengguna mengurus gugusan kontena awan melalui gugusan Kubernetes tanpa memerlukan pengguna untuk Melakukan kerja persediaan yang kompleks. Sistem akan memilih nod kerja yang sesuai secara automatik untuk melaksanakan kerja penjadualan dan pemprosesan kelompok kontena tertentu. Konsep terasnya ialah Container Pod.

3. Etcd & Fleet (pangkalan data teragih)

etcd ialah sistem storan nilai kunci yang dibangunkan dan diselenggara oleh CoreOS Ia ditulis dalam bahasa Go dan mengendalikan replikasi log melalui algoritma konsistensi Raft. Pastikan konsistensi yang kuat. Pada masa ini, sistem pengurusan kluster kontena Google Kubernetes, platform PaaS sumber terbuka Cloud Foundry dan CoreOS' Fleet semuanya menggunakan dsb secara meluas. Armada ialah sistem pemulaan teragih. Sebab mengapa mereka memilih untuk menggunakan bahasa Go adalah kerana sokongan merentas platform yang baik bagi bahasa Go dan komuniti yang kuat di belakangnya.

4. Deis (platform perkhidmatan awan)

Deis ialah platform PaaS sumber terbuka berdasarkan Docker dan CoreOS, direka untuk memudahkan penggunaan dan mengurus aplikasi pada pelayan. Ia boleh dijalankan pada platform AWS, GCE dan Openstack.

5. Flynn (platform perkhidmatan awan)

Flynn ialah platform PaaS sumber terbuka yang ditulis dalam bahasa Go, yang boleh membina dan menggunakan sebarang aplikasi secara automatik untuk dijalankan pada gugusan kontena Docker. Projek Flynn disokong oleh Y Combinator dan masih dalam pembangunan Ia dipanggil platform PaaS sumber terbuka generasi seterusnya.

6. Lime (aplikasi desktop)

Berbanding dengan bahasa Go di atas selain bahagian awan dan pelayan, Lime agak istimewa. Lime ialah program editor desktop yang ditulis dalam bahasa Go, yang dianggap sebagai pelaksanaan sumber terbuka editor terkenal Sublime Text.

7. Revel (Rangka Kerja Web)

Revel ialah rangka kerja Web bahasa Go yang sangat produktif. Rangka kerja Revel menyokong kompilasi panas Apabila mengedit, menyimpan dan menyegarkan kod sumber, Revel akan menyusun kod dan templat secara automatik dan menyokong penghalaan, penghuraian parameter, pengujian, pengantarabangsaan dan fungsi lain.

8. InfluxDB (pangkalan data teragih)

Pangkalan data pemasaan, acara dan penunjuk teragih sumber terbuka yang ditulis dalam suara Go, tanpa kebergantungan luaran. Matlamat reka bentuknya adalah untuk mencapai penskalaan teragih dan mendatar.

9. .Syncthing (cakera awan)

Alat perkhidmatan storan dan penyegerakan sumber terbuka yang ditulis dalam bahasa Go akan dikawal sepenuhnya oleh mereka sendiri dan semua komunikasi akan disulitkan . Setiap nod akses disahkan dengan sijil penyulitan. Projek ini dianggap sebagai alternatif sumber terbuka kepada Dropbox dan BitTorrent Sync Sebab mengapa Syncthing memilih bahasa Go juga disebabkan oleh pertimbangan merentas platform.

10. Gogs (perkhidmatan Git layan diri)

Gogs ialah projek perkhidmatan Git layan diri yang dibangunkan oleh Guoren Wuwen (GitHub). Matlamat Gogs adalah untuk mencipta cara termudah, terpantas dan termudah untuk membina perkhidmatan Git layan diri. Menurut penulis, sebab memilih untuk menggunakan bahasa Go untuk pembangunan ialah Go membenarkan Gogs diedarkan melalui binari bebas dan mempunyai sokongan yang baik untuk merentas platform.

Pergi prospek pembangunan belakang

Ambil Imperial City sebagai contoh, gaji jurutera pembangunan Go dalam sampel rawak adalah seperti serendah 10K dan setinggi Hingga 60, kebanyakan kawasan berada dalam julat 20K-40K; industri?

Bolehkah bahasa go digunakan sebagai backend?

Pertama sekali, dalam medan Web, Go boleh melakukan apa sahaja yang Java/php boleh lakukan, dan ia lebih mudah dan lebih cekap

Dalam senario berikut, Go amat menonjol sebagai bahasa Kelebihan:

Senario yang memerlukan kecekapan tinggi: Contohnya, enjin pengesyoran mesti cepat membentuk potret pengguna berdasarkan analisis data besar dan menjana kandungan yang disyorkan - jadi cadangan Toutiao enjin menggunakan Go

Senario algoritma yang kompleks: seperti pengisihan data besar, yang dahulunya dilakukan dengan C/C++, tetapi kini boleh dilakukan dengan Go
  • Senario Concurrency Tinggi: Program yang boleh dilaksanakan oleh pelayan yang dibangunkan dalam bahasa Go dapat menahan berjuta-juta, sementara Java perlu menggunakan lebih banyak pelayan untuk mengimbangi beban, yang meningkatkan kos;
  • Senario diedarkan: terutamanya senario pengedaran berskala besar, atau nod pelayan yang merancang untuk menyertai rantaian blok; >Pengajaran Pengaturcaraan

Atas ialah kandungan terperinci Bolehkah bahasa go digunakan sebagai backend?. 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