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

2020 年為什么要選擇 Go 并放棄 Python

開發(fā) 后端
過去一段時(shí)間,Go 語言中文網(wǎng)推過挺多 Python 相關(guān)的公眾號(hào),很多人詫異:為什么推的都是 Python 的呢?其實(shí)主要原因是因?yàn)?Python 類的公眾號(hào)實(shí)在太多了,而且很多粉絲都特別多,我也挺納悶的。不過他們值得我學(xué)習(xí),也說明 Go 還有很長(zhǎng)的路要走。

過去一段時(shí)間,Go 語言中文網(wǎng)推過挺多 Python 相關(guān)的公眾號(hào),很多人詫異:為什么推的都是 Python 的呢?其實(shí)主要原因是因?yàn)?Python 類的公眾號(hào)實(shí)在太多了,而且很多粉絲都特別多,我也挺納悶的。不過他們值得我學(xué)習(xí),也說明 Go 還有很長(zhǎng)的路要走。

[[315867]]

為了證明 Go 語言中文網(wǎng)堅(jiān)持做 Go 語言,推廣 Go、分享 Go,為 Go 的發(fā)展做貢獻(xiàn),這兩天會(huì)分享兩篇 Go 和 Python 的對(duì)比文章。歡迎指正。

您會(huì)在 Python 和 Go 之間選擇哪個(gè)?如果您對(duì) Go(Golang)有更深入的了解,那么您肯定會(huì)選它。否則將會(huì)選擇Python。那么我們討論一下。Python 的伙伴們,有 5 個(gè)理由可以讓您選擇 Go。讓我們一起閱讀這篇文章。

“ Python非常強(qiáng)大,尤其是 Python 3 具有異步功能,但是 Go 將完全取代它在大型企業(yè)中的地位……”

如果您真的理解引號(hào),則可以嘗試使用 Go 編程語言。我認(rèn)為 Go 是一種非常簡(jiǎn)單的編程語言,可以適應(yīng)任何應(yīng)用程序環(huán)境,甚至比 Javascript 編程還要簡(jiǎn)單。這可能就是為什么 Go 編程語言近年來變得流行的原因。

在本文中,我將比較兩種語言的以下方面。這些方面的參數(shù)將幫助您確定哪種語言更適合您的手頭項(xiàng)目。

  • 性能
  • 可擴(kuò)展性
  • 實(shí)際應(yīng)用
  • 執(zhí)行方式
  • 程序庫(kù)
  • 代碼可讀性
2020 年為什么要選擇 Go 并放棄 Python

網(wǎng)站 TreeScale.com 主頁(yè)和 API 是基于某些分析工具的 Web 應(yīng)用程序。這是他們的技術(shù)棧:

  • React.js 主頁(yè)前端
  • Django Python 主頁(yè)后端和身份驗(yàn)證服務(wù)
  • Node.js API 服務(wù)
  • PostgreSQL 數(shù)據(jù)庫(kù),Cassandra 日志記錄系統(tǒng)
  • 自定義容器注冊(cè)表正在使用 Rust 語言
  • Python

Repustate 幾乎完全是 Python 商店。他們使用 Django 來實(shí)現(xiàn) API 和網(wǎng)站。因此(當(dāng)前)使用 Python 來實(shí)現(xiàn)阿拉伯情感引擎是合理的,以便保持代碼的一致性。僅用于原型設(shè)計(jì)和實(shí)現(xiàn),Python 是一個(gè)不錯(cuò)的選擇。它的表達(dá)能力非常強(qiáng)大,第三方類庫(kù)等也很好。如果您要使用 Web 服務(wù),那么 Python 是不錯(cuò)的選擇。但是,當(dāng)您執(zhí)行低級(jí)計(jì)算并嚴(yán)重依賴哈希表( Python 中的字典類型)進(jìn)行比較時(shí),一切都會(huì)變慢。我們每秒可以處理大約兩到三個(gè)阿拉伯文文檔,但這太慢了。相比之下,他們的英語情感引擎每秒可以處理大約 500 個(gè)文檔。

從上面可以看到,基本框架完全基于微服務(wù)和邏輯的分離(前端和后端分離),甚至是完全不同的技術(shù)來實(shí)現(xiàn)。

他們將 API 服務(wù)和后端集成到一個(gè)項(xiàng)目中的主要原因是它們?cè)谠S多地方都相似,并且通過多種語言或技術(shù)進(jìn)行編碼,同時(shí)有很多重復(fù)的代碼。最后,他們需要花費(fèi)大量時(shí)間來個(gè)性化 Django 的 API 服務(wù),尤其是在自定義 JSON 響應(yīng)方面。

我覺得當(dāng)您開發(fā)一些普通的應(yīng)用程序時(shí),使用 Django 很棒,但是當(dāng)您需要更高的性能和一些個(gè)性化的模塊時(shí),使用 Django 會(huì)使它更加復(fù)雜。

為什么選擇 Go 編程?

1、編譯為單個(gè)二進(jìn)制文件

Golang 是一種編譯語言,Googe 的開發(fā)人員為此付出了很多努力。它使用靜態(tài)鏈接根據(jù)操作系統(tǒng)類型和環(huán)境將所有相關(guān)的庫(kù)文件和模塊實(shí)際組合到一個(gè)二進(jìn)制文件中,這也意味著如果要將后端應(yīng)用程序編譯到 Linux 操作系統(tǒng)和基于 X86 CPU 的應(yīng)用程序,您只需將已編譯的二進(jìn)制應(yīng)用程序下載到服務(wù)器,然后后端應(yīng)用程序就可以工作,不需要任何相關(guān)文件。

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

2020 年為什么要選擇 Go 并放棄 Python

類型系統(tǒng)對(duì)于大規(guī)模應(yīng)用非常重要。Python 是一種很棒的有趣的語言,但是有時(shí)您會(huì)看到一些奇怪的異常,因?yàn)楫?dāng)您嘗試將變量用作整數(shù)變量時(shí),而實(shí)際它是字符串類型。

def some_view (request): user_id = request.POST.get ('id', 0)這樣的代碼將導(dǎo)致 Django 崩潰。

而 Go 會(huì)進(jìn)行編譯,并告訴您這是一個(gè)編譯器錯(cuò)誤,這是它在愚蠢問題上贏得時(shí)間的地方。

3、優(yōu)化(性能)

令人驚訝的是,在大多數(shù)應(yīng)用程序場(chǎng)景中,Go 比 Python(第 2 版或第 3 版)更快。比較的結(jié)果可以在基準(zhǔn)測(cè)試中看到,這當(dāng)然是不公平的,它取決于應(yīng)用程序的類型和用戶用例。

就我們而言,Go 擁有自己的多線程模塊和 CPU 可擴(kuò)展性,因此性能更高。每當(dāng)我們需要執(zhí)行一些內(nèi)部請(qǐng)求時(shí),我們都可以使用 Goroutine 分別執(zhí)行它們,這比 Python 中的線程要節(jié)省十倍的資源。借助這些內(nèi)置的語言功能,我們可以節(jié)省大量資源(內(nèi)存和 CPU)。

4、Go 不再需要 Web 框架

2020 年為什么要選擇 Go 并放棄 Python

對(duì)于編程語言來說,這是一件很酷的事情。Go 語言的創(chuàng)建者和社區(qū)擁有核心語言支持的許多內(nèi)置工具,在大多數(shù)情況下,您不再需要任何第三方庫(kù)。例如,它具有內(nèi)置的 http,json 和 html 模板。您甚至可以構(gòu)建非常復(fù)雜的 API 服務(wù),而不必?fù)?dān)心在 Github 上找到第三方庫(kù)。

當(dāng)然,Go 也有許多用于構(gòu)建 Web 項(xiàng)目的庫(kù)和框架,但是我建議您不要使用第三方庫(kù)來構(gòu)建 Web 項(xiàng)目或 API 服務(wù),因?yàn)樵诖蠖鄶?shù)情況下,使用標(biāo)準(zhǔn)庫(kù)包將使您的生活更輕松。

5、更好的 IDE 支持和調(diào)試

當(dāng)您嘗試更改編程語言時(shí),IDE 支持是最重要的考慮因素之一。友好的 IDE 可以平均節(jié)省 80% 的編程時(shí)間。Go Plugin for JetBrains IDEA,還提供其他支持,例如(Webstorm,PHPStorm 等)。該插件提供項(xiàng)目開發(fā)中所需的任何服務(wù)。強(qiáng)大的 JetBrains IDEA 可以使您的開發(fā)更加強(qiáng)大,更好用的是 Goland。

選擇 Go,還是 go home?

Mozilla 正在內(nèi)部將其龐大的基礎(chǔ)日志記錄架構(gòu)轉(zhuǎn)換為 Go,部分原因是強(qiáng)大的 goroutines 。Go語言是由 Google 的人員設(shè)計(jì)的,在設(shè)計(jì)之初,對(duì)并發(fā)的支持才是重中之重,而不是像其他各種 Python 解決方案一樣在其后添加。因此,我們開始從 Python 切換到 Go。

盡管我們的 Go 代碼產(chǎn)品尚未正式發(fā)布,但結(jié)果令人鼓舞。現(xiàn)在,我們每秒可以處理一千個(gè)文檔,使用更少的內(nèi)存,并且不需要調(diào)試在 Python 中遇到的問題:丑陋的多進(jìn)程/gevent/“為什么 Control-C 無法殺死進(jìn)程”。

為什么我們喜歡 Go?

任何對(duì)編程語言的工作方式(解釋與編譯,動(dòng)態(tài)與靜態(tài))了解甚少的人都會(huì)說:“切,當(dāng)然 Go 會(huì)更快”。是的,我們還可以用 Java 重寫所有內(nèi)容,并且可以看到類似且更快的改進(jìn),但這不是 Go 語言獲勝的原因。您在 Go 中編寫的代碼似乎是正確的。我不知道發(fā)生了什么,但是一旦代碼被編譯(快速的編譯速度),您就會(huì)覺得代碼可以正常工作(不僅可以正確運(yùn)行,而且在邏輯上正確)。我知道這聽起來不太可靠,但確實(shí)如此。就冗余(或非冗余)而言,這與 Python 非常相似。它以函數(shù)為首要目標(biāo),因此函數(shù)式編程將易于理解。當(dāng)然,Go 線程和通道使您的工作變得更輕松,可以從靜態(tài)類型中獲得很大的性能提升,并且可以更好地控制內(nèi)存分配,但是不必為語言表現(xiàn)力付出太多成本。

根據(jù)我們的代碼統(tǒng)計(jì),用 Go 重寫項(xiàng)目后,我們減少了 64% 的代碼。

您不需要調(diào)試不存在的代碼。代碼越少,錯(cuò)誤越少!

結(jié)論

Go 為我們提供了極大的靈活性。一種語言可以在所有用戶方案中使用,并且在所有用戶方案中都能很好地工作。在后端和 API 服務(wù)中,我們獲得了 30% 的性能優(yōu)化。現(xiàn)在,我可以實(shí)時(shí)處理日志,轉(zhuǎn)換為數(shù)據(jù)庫(kù),并通過 WebSocket 處理一項(xiàng)或多項(xiàng)服務(wù)!這是 Go 語言功能提供的非常強(qiáng)大的功能。

 

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

2019-08-20 09:24:54

Python編程語言Java

2022-05-10 15:24:34

KafkaZooKeeperKafka Raft

2020-06-22 07:18:21

Java語言開發(fā)

2021-02-01 07:20:51

KafkaPulsar搜索

2018-12-21 11:26:49

MySQLMongoDB數(shù)據(jù)庫(kù)

2016-08-19 16:27:52

數(shù)據(jù)庫(kù)Mongo DB開發(fā)

2020-01-18 09:35:03

微服務(wù)團(tuán)隊(duì)架構(gòu)

2021-04-21 12:29:45

KafkaZookeeper模型

2022-06-02 08:48:39

Go枚舉器Iota

2020-09-16 14:56:11

MYSQL知識(shí)數(shù)據(jù)庫(kù)

2018-09-28 10:06:21

移動(dòng)開發(fā)App

2022-11-14 21:34:17

2020-03-03 15:31:47

ReactVue前端

2011-12-09 20:15:17

Flash

2016-09-27 21:25:08

Go語言Ken Thompso

2022-01-17 16:09:43

Go語言開發(fā)

2020-04-06 13:39:35

混合云公共云IT

2020-08-14 10:40:35

RestTemplatRetrofitJava

2020-05-09 11:40:54

PythonGo語言

2022-01-26 00:00:00

GoGopher語言
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产精品一区二区久久 | 天堂成人国产精品一区 | 亚洲成人二区 | 中文字幕福利视频 | 午夜在线小视频 | 午夜网站视频 | 超碰在线影院 | 日韩国产一区二区三区 | 亚洲a视频 | 丁香久久 | 久久综合一区 | 91黄在线观看 | 久久狠狠 | 黄片毛片在线观看 | 欧美国产日韩一区二区三区 | 日韩亚洲视频 | 日韩精品一区在线 | 国产特级毛片 | 四虎永久影院 | 欧美国产日韩一区二区三区 | 天天摸天天干 | 国产韩国精品一区二区三区 | 日本精品999 | 久久伊人一区 | 亚洲美女天堂网 | 国产成人精品一区二三区在线观看 | 亚洲欧美在线视频 | 欧美日韩精品免费观看 | 精品国产乱码久久久久久影片 | 国产精品久久久久久久 | 一级黄色毛片a | 韩日精品在线观看 | 午夜免费福利影院 | 亚洲免费成人av | 国产精品久久久久久久久大全 | 亚州综合一区 | 国产精品久久久久久久久久久久 | 亚洲国产精品精华素 | 天天久久| 欧美黄色精品 | 国产精品成人一区二区三区夜夜夜 |