[译]Go语言最佳实战[一]

Go 语言实战: 编写可维护 Go 语言代码建议目录 指导原则 1.1 简单性 1.2 可读性 1.3 生产力 标识符 2.1 选择标识是为了清晰, 而不是简洁 2.2 标识符长度 2.3 不要用变量类型命名变量 2.4 使用一致的命名风格 2.5 使用一致的声明样式 2.6 成为团队的合作者 注释 3.1 关于变量和常量的注释应描述其内容而非其目的 3.2 公共符号始终要注释 包的设计 4.1 一个好的包从它的名字开始 4.2 避免使用类似 base、 common或 util的包名称 4.3...阅读全文

51CTO博客 2021-04-21 14:16:40 mob604756f0bbf4

Go2设计草案介绍

前言Go,毫无疑问已经成为主流服务端开发语言之一,但它的类型特性却少的可怜,仅支持 structural subtyping。在 TIOBE 排名前二十的语言中,不管是上古语言 Java, 还是 2010 年之后出现的新语言 Rust/Julia 等,都支持至少三种类型特性,对此社区抱怨很多,另外还有它的错误处理方式,以及在 Go1.11 版本才解决的依赖管理等问题。在最近的 GopherCon2018 上,官方放出了解决这些问题的草案 (draft),这些内容还没有成为正式的提案 (propo...阅读全文

51CTO博客 2021-04-21 13:59:22 mob604756f0bbf4

云原生的浪潮下,为什么运维人员适合学习Go语言?

作者 | Natalie Pistunovich译者 | 无明随着云原生和可观察性理念的普及,现在的运维也越来越向云原生方向靠拢,本文提供一个视角,向你说明 Go 语言可以如何在 DevOps 中使用。本文旨在为使用 Go 语言提供一个新的视角。你不要指望在这篇文章里看到代码或者学到什么新东西,我只是提供了一个开放的新视角,并将它分享给正在寻找新解决方案的系统运维 /DevOps/Observability 工程师们。不久前,系统运维还是一个很常见的工作岗位,这个岗位负责更新软件、配置网络和编写...阅读全文

51CTO博客 2021-04-21 12:01:04 mob604756ef1373

Golang协程详解和应用

Golang协程详解和应用前言学习和使用golang也有一段时间了,golang最近2年在国内很火,提起golang和其它语言最大区别莫过于协程,不过咱今天先不说协程,我先说一下自己的一些理解。对c熟悉的人应该对go不陌生,它们都属于强类型静态编译型语言,在语法上和PHP这种弱类型动态解释型语言不一样,虽然差异很大,但是基本语法都是差不多,掌握一种语言之后再去学其它语言语法不是什么大问题。在IT行业,编程语言之争一直是个很热闹的话题,编程语言之间的区别不仅仅在于语法和特性,语法只是表达编程思想的...阅读全文

51CTO博客 2021-04-21 10:47:44 mb6066e41c771e0

大数据开发-Go-初始Go && 常见特点

Go提供了几种基本但非必需的类型,比如切片,接口和通道。Go简单不是它的主要卖点,做为一门静态语言,Go却和很多动态脚本语言一样得灵活是Go的主要卖点,节省内存、程序启动快和代码执行速度快合在一块儿是Go的另一个主要卖点,Go是一门编译型的和静态的编程语言。 Go诞生于谷歌研究院内置并发编程支持:使用协程(goroutine)做为基本的计算单元。轻松地创建协程。使用通道(channel)来实现协程间的同步和通信。内置了映射(map)和切片(slice)类型。支持多态(polymorphism)。...阅读全文

51CTO博客 2021-04-21 11:24:35 mb6066e41c771e0

RabbitMQ 入门 (Go) - 1. 简介和安装

Message Broker(消息代理)维基百科对 Message Broker 的定义是:Message broker 是一种中介程序模块,它把消息从发送方的正式消息传递协议转化为接收方的正式消息传递协议。这个定义略繁琐,下面看看 RabbitMQ 官网对 Message broker 的定义:Message broker 接收来自发布者的消息并将其路由到消费者。 上面两个定义说的都是同一件事情,但是 RabbitMQ 官网的定义里缺少了“转换”这部分。RabbitMQ 实现了一个加 AMQP...阅读全文

51CTO博客 2021-04-21 10:22:19 mb6066e41c771e0

人工智能数据流中Golang的应用实践

薛磊:Momenta资深研发工程师,前Sun中国工程研究院工程师,专注于分布式系统、存储系统、容器等技术,目前从事深度学习训练平台的基础架构研发。热爱开源和分享,目前是Kubeflow member及多个开源项目contributor。 前言 目前人工智能非常火,大家所熟知的人脸识别、智能安防、自动驾驶等领域都在应用人工智能技术。但在自动驾驶这个行业中我们能用Go语言做什么事情?今天分享的主要是人工智能数据流的流转方式,也是Golang在Momenta大数据平台当中的应用。 Momenta大数据...阅读全文

51CTO博客 2021-04-20 23:57:48 mob604756f0bbf4

丁靖--go工程效率实践

丁靖:2007年开始PHP, PECL开发,Swoole开发组成员;2015年开始Golang,从事存储,图像处理,高并发服务开发;目前是贝壳找房基础服务负责人 前言 今天我分享的主题是go的工程效率实践,做一个简单的自我介绍,我叫丁靖,8年PHP、PECL开发,2015年开始接触go,现在从事存储和图象处理以及高并发服务开发,目前是贝壳找房基础服务负责人。 先做一个铺垫,分享一下我对技术团队价值的理解,还有我们有哪些效率问题,以及我们是怎么解决的。 技术价值 技术团队的价值 首先看技术的价值,...阅读全文

51CTO博客 2021-04-20 23:47:00 mob604756f0bbf4

Go 1.11版本发布

今天Go团队很高兴地宣布Go 1.11发布了。您可以从下载页面获取它。https://golang.google.cn/dl/ 这个版本中工具链,运行时和库有许多变化和改进,但是两个特别突出的特性特别令人兴奋:modules和WebAssembly支持。 此版本增加了“modules”的新概念的初步支持,这是GOPATH的替代方案,集成了对版本控制和软件包分发的支持。modules支持目前仍然是实验性的,并且仍有一些持续优化的空间。 Go 1.11还为WebAssembly(js / wasm)...阅读全文

51CTO博客 2021-04-20 23:43:18 mob604756f0bbf4

Go在广发证券分布式行情和交易系统的应用和实践

作者简介:罗意,广发证券 IT 中后台系统架构师。2013 年初加入腾讯,主要负责腾讯微博的转发评论的逻辑层和存储层,后期负责微博后台的基础组件研发。2016 年加入广发证券信息技术部,主要负责行情、交易等中后台业务的系统架构设计和研发工作。在高性能、高可用后台系统架构设计方面经验丰富。目前专注于金融 IT 系统、FinTech 等相关技术的应用,关注互联网技术和金融系统的深度融合。 目录 证券行情和交易系统服务架构 如何做到高并发、高性能? 如何做到高质量推送? 如何做到高可用、可扩展? 遇到...阅读全文

51CTO博客 2021-04-20 23:42:44 mob604756f0bbf4

一周 Go World 新鲜事

01 【Go并发编程】第二篇 - Goroutines和Channels Goroutine是Go中最基本的执行单元。事实上每一个Go程序至少有一个goroutine:主goroutine。当程序启动时,它会自动创建。 事实上goroutine采用了一种fork-join的模型。 sayHello := func() { fmt.Println("hello") }go sayHello() 出自GoCN每日新闻(2018-06-22) 原文链接: https://juejin.im/post/...阅读全文

51CTO博客 2021-04-20 23:39:03 mob604756f0bbf4

Klook分享Go应用秘籍:服务千万级全球用户的4点心得

Klook是总部位于香港的旅游科技公司,成立四年,在亚洲旅游创业领域成为一匹黑马,为全球上千万用户提供折扣门票、旅游特色活动的预订服务。Klook在技术的不断探索和创新,是这家公司国际化、规模型业务的实现根基。今天由Klook的后端技术总监熊传亮,为大家分享Klook在Go语言的应用实践。 目录 1.Go 在Klook的应用情况 2.如何用Go实施新架构 3.架构面临的挑战和技术的演进 4.一点探索和思考 1.Go 在Klook的应用情况 Klook用Go很早,2015年就开始尝试用Go做项目开...阅读全文

51CTO博客 2021-04-20 23:37:21 mob604756f0bbf4

一周 Go World 新鲜事

01 GO 的链式调用写一个转码库 前两天用 GO 写一个网站的爬虫练手,但爬下来的内容是乱码的,一看原来该网站是 GBK 编码的,而 GO 中默认编码是 UTF-8 的,所以会导致非 UTF-8 的内容是乱码的。 于是我去找了一下 GO 的转码库,主要有 mahonia、iconv-go、和官方的 golang.org/x/text 这三个库用的比较多。 对这三个库都使用了一下,发现都不是很满意。下面看一下这三个库的 GBK 转 UTF-8。 出自GoCN每日新闻(2018-06-16) 原文...阅读全文

51CTO博客 2021-04-20 23:34:33 mob604756f0bbf4

Go在迅雷P2P连通系统中的性能优化实践-朱文

目录 如何构建压测环境 如何分析性能瓶颈 如何做性能优化 语言层面 设计层面 总结 主要内容 我是来自迅雷的后台开发架构师,今天很高兴给大家分享一下我在迅雷连通系统中的性能优化实践经验。P2P连通系统是我们迅雷下载过程中用来辅助P2P打洞和穿透的系统,C++开发,性能要求很高,是迅雷访问量最大的系统。16年的时候,我们发现P2P连通率有较大的提升空间,所以决定升级P2P连通系统后台,以提高P2P连通率以及用户下载体验。在此之前,我们零星使用过Go来开发模块,体验到Go的高效开发效率,所以我们决定...阅读全文

51CTO博客 2021-04-20 23:33:28 mob604756f0bbf4

一周 Go World 新鲜事

01 大道至简—GO语言最佳实践 2007年,受够了C++煎熬的Google首席软件工程师Rob Pike纠集Robert Griesemer和Ken Thompson两位牛人,决定创造一种新语言来取代C++, 这就是Golang。出现在21世纪的GO语言,虽然不能如愿对C++取而代之,但是其近C的执行性能和近解析型语言的开发效率以及近乎于完美的编译速度,已经风靡全球。特别是在云项目中,大部分都使用了Golang来开发,不得不说,Golang早已深入人心。而对于一个没有历史负担的新项目,Gola...阅读全文

51CTO博客 2021-04-20 23:29:19 mob604756f0bbf4

Go语言汇编优化-蒙卓

目录 基础知识 汇编语法 Demo 基本程序 debug 讲汇编优化,不得不说一句高德纳的名言——过早的优化就是万恶之源。如果你们没有被逼到绝路,或者要榨干CPU的性能,千万不要尝试以下演讲的内容。 我给 Go 的 1.11 提交了这几个项目,第一个是 Hashmap 优化,就是你们常用的 map 操作里面最费时的哈希值计算优化。VDSO,虚拟动态对接的 syscall,主要是优化系统时间调用。Md5、Chacha20就不说了。还有一个 Duffcopy,这是给编译器展开优化用的,它在 arm6...阅读全文

51CTO博客 2021-04-20 23:27:29 mob604756f0bbf4

深入CGO编程

作者简介 柴 树 杉 青云QingCloud应用平台研发工程师,开源的多云应用管理平台OpenPitrix开发者,Go 语言代码的贡献者,《Go 语言圣经》翻译者,《Go 语言高级编程》开源免费图书作者。2010年开始参与和组织 Go 语言早期文档翻译,2013年正式转向Go语言开发,CGO资深用户。 目录 CGO的价值 快速入门 类型转换 函数调用 CGO内部机制 实践:包装 c.qsort 内存模型 Go和C++对象 背景 在2017年年底初步完成了《Go 语言高级编程》的第二章 CGO 编...阅读全文

51CTO博客 2021-04-20 23:21:14 mob604756f0bbf4

一周 Go World 新鲜事

01 使用golang 实现JSON-RPC2.0 远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。 远程过程调用是一个分布式计算的客户端-服务器(Client/Server)的例子,它简单而又广受欢迎。远程过程调用总是由客户端对服务器发出一个执行若干过程请求,并用客户...阅读全文

51CTO博客 2021-04-20 23:11:30 mob604756f0bbf4

bazel build //:go

作者简介 何 源 古典互联网从业者 2014年底加入英语流利说,目前主要负责 Platform Team。来流利说工作之前,在 the Plant 杭州工作。 内容大纲 1.程序包管理(Package Management) 2.代码管理(Code Management Multi languages) 3.bazel build //:go 4.Demo 1. 程序包管理(Package Management) Vendor Go 从 1.5 版本开始引进了 Vendor, 1.7 的时候默认...阅读全文

51CTO博客 2021-04-20 23:09:52 mob604756f0bbf4

亿级用户日活千万的社交平台探探,如何用Go支撑后端工程实践

作者简介 任 贺 在“探探”领导产品后端团队工作,负责处理开发 GO 到 PostrgreSQL 所有的数据库管理部分 目录 1.探探的概述 2.Go 在探探后端的使用 3.探探工程实践 4.探探架构演变 5.分享小结 一、探探的概述 今天是第一次在Gopher大会上介绍我们在Go上的使用经验,探探算是国内比较早使用Go的公司之一,我们在做探探之前,就已经陆陆续续用Golang写了一些Web Server。 我先简单介绍一下:探探是一款陌生人交友的产品,面向的用户群主要是单身的年轻用户。探探的第...阅读全文

51CTO博客 2021-04-20 23:04:26 mob604756f0bbf4