作家
登录

Go语言的9大优势和3大缺点

作者: 来源: 2017-10-24 14:21:39 阅读 我要评论


转用一门新说话平日是一项大年夜决定计划,尤其是当你的团队成员中只有一个应用过它时。本年 Stream 团队的重要编程说话大年夜 Python 转向了 Go。本文说清楚明了其背后的九大年夜原因以及若何做好这一转换。

Go的优势

原因 1:机能

Go说话的9大年夜优势和3大年夜缺点

Go 极其地快。其机能与 Java 或 C++类似。在我们的应用中,Go 一般比 Python 要快 30 倍。以下是 Go 与 Java 之间的基准比较:

Go说话的9大年夜优势和3大年夜缺点

Go说话的9大年夜优势和3大年夜缺点

缺点 3E敉件担保理

Go说话的9大年夜优势和3大年夜缺点

Go说话的9大年夜优势和3大年夜缺点

原因 2:说话机能很重要

对很多应用来说,编程说话只是简单充当了其与数据集之间的胶水。说话本身的机能经常无关轻重。

然则 Stream 是一个 API 供给商,办事于世界 500 强以及跨越 2 亿的终端用户。数年来我们已经优化了 Cassandra、PostgreSQL、Redis 等等,然而最终抵达了所应用说话的极限。

Python 异常棒,然则其在序列化/去序列化、排序和聚合中表示欠佳。我们经常会碰到如许的问题:Cassandra 用时 1ms 检索了数据,Python 却须要 10ms 将其转化查对象。

原因 3:开辟者效力&不要过于立异

看一下绝佳的入门教程《开端进修 Go 说话》(http://howistart.org/posts/go/1/)中的一小段代码:

  1. package main 
  2. type openWeatherMap struct{}func (w openWeatherMap) temperature(city string) (float64, error) { 
  3.    resp, err := http.Get("http://api.openweathermap.org/data/2.5/weather?APPID=YOUR_API_KEY&q=" + city) 
  4.    if err != nil { 
  5.        return 0, err 
  6.    } 
  7.    defer resp.Body.Close() 
  8.    var d struct { 
  9.        Main struct { 
  10.            Kelvin float64 `json:"temp"
  11.        } `json:"main"
  12.    } 
  13.    if err := json.NewDecoder(resp.Body).Decode(&d); err != nil { 
  14.        return 0, err 
  15.    } 
  16.    log.Printf("openWeatherMap: %s: %.2f", city, d.Main.Kelvin) 
  17.    return d.Main.Kelvin, nil} 

如不雅你是一个新手,看到这段代码你并不会认为吃惊。它展示了多种赋值、数据构造、指针、格局化以及内置的 HTTP 库。

当我第一次编程时,我很爱好应用 Python 的高阶功能。Python 许可你创造性地应用正在编写的代码,比如,你可以:

  • 在代码初始化时,应用 MetaClasses 自行注册类别
  • 置换真假
  • 添加函数到内置函数列表中
  • 经由过程奥妙的办法重载运算符

毋庸置疑这些代码很有趣,但也使得在攫取其他人的工作时,代码变得难以懂得。

Go 强迫你保持打牢基本,这也就为攫取随便率性代码带来了便利,并能很快搞明白当下产生的工作。

 1/4    1 2 3 4 下一页 尾页

  推荐阅读

  被小程序坑了这几点,你遇到了吗?

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 因为你只须要简单进修三种说话的写法,就能轻松上手开辟小法度榜样。固然说的很有事理,我并不否定小法度榜>>>详细阅读


本文标题:Go语言的9大优势和3大缺点

地址:http://www.17bianji.com/lsqh/38136.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)