国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

放棄 Python 轉(zhuǎn)向 Go語言有人給出了 9 大理由

2020-02-16 10:25:17
字體:
供稿:網(wǎng)友

轉(zhuǎn)用一門新語言通常是一項(xiàng)大決策,尤其是當(dāng)你的團(tuán)隊(duì)成員中只有一個(gè)使用過它時(shí)。今年 Stream 團(tuán)隊(duì)的主要編程語言從 Python 轉(zhuǎn)向了 Go。本文解釋了其背后的九大原因以及如何做好這一轉(zhuǎn)換。

一、為什么使用 Go

原因 1:性能

Go 極其地快。其性能與 Java 或 C++相似。在我們的使用中,Go 一般比 Python 要快 30 倍。以下是 Go 與 Java 之間的基準(zhǔn)比較:

原因 2:語言性能很重要

對很多應(yīng)用來說,編程語言只是簡單充當(dāng)了其與數(shù)據(jù)集之間的膠水。語言本身的性能常常無關(guān)輕重。

但是 Stream 是一個(gè) API 提供商,服務(wù)于世界 500 強(qiáng)以及超過 2 億的終端用戶。數(shù)年來我們已經(jīng)優(yōu)化了 Cassandra、PostgreSQL、Redis 等等,然而最終抵達(dá)了所使用語言的極限。

Python 非常棒,但是其在序列化/去序列化、排序和聚合中表現(xiàn)欠佳。我們經(jīng)常會(huì)遇到這樣的問題:Cassandra 用時(shí) 1ms 檢索了數(shù)據(jù),Python 卻需要 10ms 將其轉(zhuǎn)化成對象。

原因 3:開發(fā)者效率&不要過于創(chuàng)新

看一下絕佳的入門教程《開始學(xué)習(xí) Go 語言》

(http://howistart.org/posts/go/1/) 中的一小段代碼:

如果你是一個(gè)新手,看到這段代碼你并不會(huì)感到吃驚。它展示了多種賦值、數(shù)據(jù)結(jié)構(gòu)、指針、格式化以及內(nèi)置的 HTTP 庫。

當(dāng)我第一次編程時(shí),我很喜歡使用 Python 的高階功能。Python 允許你創(chuàng)造性地使用正在編寫的代碼,比如,你可以:

在代碼初始化時(shí),使用 MetaClasses 自行注冊類別 置換真假 添加函數(shù)到內(nèi)置函數(shù)列表中 通過奇妙的方法重載運(yùn)算符

毋庸置疑這些代碼很有趣,但也使得在讀取其他人的工作時(shí),代碼變得難以理解。

Go 強(qiáng)迫你堅(jiān)持打牢基礎(chǔ),這也就為讀取任意代碼帶來了便利,并能很快搞明白當(dāng)下發(fā)生的事情。

注意:當(dāng)然如何容易還是要取決于你的使用案例。如果你要?jiǎng)?chuàng)建一個(gè)基本的 CRUD API,我還是建議你使用 Django + DRF,或者 Rails。

原因 4:并發(fā)性&通道

Go 作為一門語言致力于使事情簡單化。它并未引入很多新概念,而是聚焦于打造一門簡單的語言,它使用起來異常快速并且簡單。其唯一的創(chuàng)新之處是 goroutines 和通道。Goroutines 是 Go 面向線程的輕量級方法,而通道是 goroutines 之間通信的優(yōu)先方式。

創(chuàng)建 Goroutines 的成本很低,只需幾千個(gè)字節(jié)的額外內(nèi)存,正由于此,才使得同時(shí)運(yùn)行數(shù)百個(gè)甚至數(shù)千個(gè) goroutines 成為可能。你可以借助通道實(shí)現(xiàn) goroutines 之間的通信。Go 運(yùn)行時(shí)間可以表示所有的復(fù)雜性。Goroutines 以及基于通道的并發(fā)性方法使其非常容易使用所有可用的 CPU 內(nèi)核,并處理并發(fā)的 IO——所有不帶有復(fù)雜的開發(fā)。相較于 Python/Java,在一個(gè) goroutine 上運(yùn)行一個(gè)函數(shù)需要最小的樣板代碼。你只需使用關(guān)鍵詞「go」添加函數(shù)調(diào)用:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 瑞金市| 望江县| 竹山县| 台山市| 中阳县| 周宁县| 新晃| 崇文区| 邢台市| 深泽县| 铜陵市| 外汇| 英德市| 沈丘县| 东明县| 唐山市| 罗山县| 阳信县| 鄄城县| 武穴市| 安岳县| 博湖县| 怀柔区| 中宁县| 二连浩特市| 黔西县| 大城县| 博客| 泰宁县| 疏勒县| 乌拉特后旗| 天台县| 辽宁省| 华阴市| 柳河县| 中牟县| 读书| 宁德市| 平利县| 扬中市| 中江县|