成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我們將項目語言從Python轉(zhuǎn)向Go的5個原因

開發(fā) 前端
Python是一個非常受歡迎的語言,但在企業(yè)世界中,能打的go并沒有給人任何生存的機(jī)會。下面我們對比一下Python和Go​。

前言

Python是一個非常受歡迎的語言。但在企業(yè)世界中,能打的go并沒有給人任何生存的機(jī)會。

如果你明白了這句話的意思,那么你可能已經(jīng)嘗試過或者看過Go編程語言。我認(rèn)為它是最簡單的編程語言,可以適用于任何類型的應(yīng)用程序開發(fā)。

是的!你沒看錯,對我來說go比JavaScript還好學(xué)。我認(rèn)為這是go語言在幾年之內(nèi)變得如此流行的主要原因。

下面我們對比一下Python和Go​。

[[329018]]

那么我們在使用Go之前有什么

這是我們的Python技術(shù)堆棧:

  • Dashboard前端的response .js
  • Django Python用于儀表板后端+身份驗證服務(wù)
  • 用于API服務(wù)的Node.js
  • PostgreSQL用于數(shù)據(jù)庫,Cassandra用于日志記錄
  • 自定義書面集裝箱注冊與Rust語言

正如您所看到的,整個基礎(chǔ)設(shè)施是完全基于微服務(wù)的,大部分邏輯完全分離,甚至使用不同的技術(shù)。

這就是我們開始考慮將API服務(wù)和后端合并到單個項目中的主要原因,因為它們有很多相似之處,但是代碼庫在多種編程語言和技術(shù)上是重復(fù)的。但是我們需要做很多工作來定制Django的API服務(wù),特別是定制JSON響應(yīng)。

為什么使用Go

正如之前所說,Go語言是我所見過和使用過的最簡單的語言。但這只是吸引我的第一點。

這里是我們選擇Go而不是Python Django的5個主要原因

1. 它編譯成單個二進(jìn)制文件

Golang是作為一種編譯語言構(gòu)建的,谷歌開發(fā)人員在這方面做得很好。使用靜態(tài)鏈接,實際上是將所有依賴庫和模塊結(jié)合到一個基于操作系統(tǒng)類型和體系結(jié)構(gòu)的二進(jìn)制文件中。這意味著如果你在你的筆記本電腦上用Linux X86 CPU編譯你的后端應(yīng)用程序,你只需要把編譯好的二進(jìn)制文件上傳到服務(wù)器上,它就會工作,而不需要在那里安裝任何依賴項!

2. 靜態(tài)類型系統(tǒng)

類型系統(tǒng)對于大規(guī)模應(yīng)用程序非常重要。Python是一門偉大而有趣的語言,但有時你會遇到不尋常的異常,因為你試圖把變量當(dāng)作整數(shù)來使用,結(jié)果卻發(fā)現(xiàn)它是一個字符串。

  1. # Django will crash process because of this 
  2. def some_view(request): 
  3.     user_id = request.POST.get('id', 0) 
  4.     # If this post request has "id" parameter then 
  5.     # user_id would be a string,  
  6.     # but you really thinking it is integer 
  7.     User.objects.get(id=user_id

Go會在編譯時作為編譯器錯誤讓您知道這個問題。這是你贏得時間的地方。

3. 性能!

這可能令人驚訝,但在大多數(shù)應(yīng)用程序中,Go比Python(2和3)要快。

在我們的案例中,由于Go的并發(fā)模型和CPU可伸縮性,他的性能更好。每當(dāng)我們需要處理一些內(nèi)部請求時,我們就用單獨的Goroutine來處理它,它在資源上比Python線程便宜10倍。因此,我們節(jié)省了大量的資源(內(nèi)存、CPU),因為語言的內(nèi)置特性。

4. 你不需要網(wǎng)絡(luò)框架

這是編程語言最棒的地方。Go語言的創(chuàng)造者和社區(qū)已經(jīng)構(gòu)建了許多由語言核心支持的工具,在大多數(shù)情況下,你真的不需要任何第三方庫。例如,它有http、json、html模板是用本地語言構(gòu)建的,你可以構(gòu)建非常復(fù)雜的API服務(wù),甚至不需要在Github上查找?guī)?

但是,當(dāng)然有很多為Go構(gòu)建的庫和框架,以及使用Go構(gòu)建web應(yīng)用程序,但是我建議在不使用任何第三方庫的情況下構(gòu)建web應(yīng)用程序或API服務(wù),因為在大多數(shù)情況下,它們并不比使用本地包更容易。

5. 偉大的IDE支持和調(diào)試

當(dāng)您試圖切換編程語言時,IDE支持是最重要的事情之一。舒適的IDE平均可以節(jié)省80%的編碼時間。我發(fā)現(xiàn)了JetBrains IDEA的Go插件,它也支持(Webstorm, PHPStorm等)。這個插件提供了項目開發(fā)所需的一切,利用JetBrains的強(qiáng)大功能,您可以真正促進(jìn)開發(fā)。

根據(jù)我們的代碼庫統(tǒng)計,在重寫所有要運行的項目之后,我們得到的代碼比以前少了64%。

結(jié)論

Go為我們提供了巨大的靈活性,為所有的用例提供了單一的語言,并且對所有的用例都非常有效。我們的后端和API服務(wù)的性能提高了30%。現(xiàn)在我們可以實時處理日志記錄,將其傳輸?shù)綌?shù)據(jù)庫,并使用Websocket從單個或多個服務(wù)進(jìn)行流處理!這是Go語言特性的一個很好的結(jié)果。

英文原文:

https://medium.com/hackernoon/5-reasons-why-we-switched-from-python-to-go-4414d5f42690

 

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2021-04-09 09:55:55

DockerGoLinux

2017-10-18 15:37:13

PythonGo語言Java

2022-03-25 09:57:18

C++Rust語言

2016-09-27 21:25:08

Go語言Ken Thompso

2013-05-17 09:49:24

敏捷開發(fā)開發(fā)項目項目

2017-08-24 08:57:00

2020-10-13 18:16:19

微服務(wù)架構(gòu)數(shù)據(jù)

2020-09-03 16:49:28

物聯(lián)網(wǎng)集成智能單元物聯(lián)網(wǎng)

2018-12-13 09:00:23

GoogleGo微服務(wù)

2018-04-19 14:05:48

敏捷管理

2014-06-23 09:49:32

Go語言Android谷歌

2012-06-02 01:14:13

程序員企業(yè)家

2020-07-09 10:26:28

軟件項目軟件開發(fā)CIO

2022-07-10 23:15:46

Go語言內(nèi)存

2023-03-29 15:01:43

微服務(wù)開發(fā)

2018-06-15 21:26:13

PythonCrystal語言

2022-03-13 23:51:39

Web項目Go

2009-12-28 09:09:34

Google開源項目

2019-11-12 16:44:50

Go語言泛函編程設(shè)計

2018-05-23 14:58:38

云計算
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 四虎影音 | 久久精品欧美一区二区三区不卡 | 日韩欧美中文在线 | 国产精品毛片一区二区三区 | 成人在线精品视频 | 久久久妇女国产精品影视 | h视频免费看 | 6080亚洲精品一区二区 | 午夜av电影 | 国产欧美久久精品 | 久久久久久久久久久福利观看 | 亚洲网站在线观看 | 男女羞羞免费网站 | 精品国产乱码久久久久久影片 | 国产一区二区在线视频 | 色综合色综合色综合 | 婷婷福利视频导航 | 91精品久久久久久久久久 | 一区影院 | 18av在线播放| 精品综合在线 | 一级大黄色片 | 成人三级av | 亚洲视频中文字幕 | 成人影院网站ww555久久精品 | 国产网站在线免费观看 | 国产成人a亚洲精品 | 精品久久国产 | 天堂va在线| 欧美国产日韩一区 | 91麻豆蜜桃一区二区三区 | 色999视频 | 色综合国产 | 国产无套一区二区三区久久 | 色综合久久天天综合网 | 亚洲欧美日韩国产 | 婷婷色国产偷v国产偷v小说 | 国产乱xxav | 欧美精品一二三 | 亚洲黄色在线免费观看 | 国产91在线 | 欧美 |