• 如何用Golang协程实现流量统计系统?

    相信专业的程序开发人员都对并发编程十分熟悉。实现并发编程有进程、线程等方式,但是多进程和多线程并不是很完美。都是有内核进行调度,有 CPU 时间片的概念,进行抢占式调度,对于编程来说,难度比较大。 而 Golang 作为一门现代化的编程语言,它不需要你直面这些复杂的问题。本质上, goroutine 就是协程。 不同的是,Golang 在 runtime、系统调用等多方面对 goroutine 调度进行了封装和处理,当遇到长时间执行或者进行系统调用时,会主动把当前 goroutine 的CPU …

  • Go语言并不简单

    Go 不是一种很简单的编程语言。尽管它的许多方面都很简单:语法很简单,大多数语义也很简单。然而,语言不仅仅是语法,我们希望利用它编写出实用的代码。利用 Go 编写有用的代码并不总是那么容易 事实证明,通过某种方式将一些简单的功能组合在一起,编写出有用的代码可能会非常棘手。在 Ruby 中,如何删除某个数组中的一项?list.delete_at(i)。如何通过值删除条目?list.delete(value)。非常简单! 然而在 Go 中,事情可没有那么容易,为了删除索引 i,你需要执行以下操作: …

  • Google 开源力作 Istio 实锤爆火!1111页高清(中文版 )官方实战指南开放下载!

    “在K8S之后,你觉得未来最有前途的容器技术是什么呢”? 华为云容器服务域产品总监方璞曾在一次大会上向Rancher联合创始人及CEO梁胜发问。 随后自答道“我觉得是Istio。” 以目前发展势头来看,这个曾让谷歌不惜与IBM一众大厂翻脸的Istio,绝对会成为未来炙手可热的容器技术。 如果2021年你打算在生产环境中落地 Service Mesh,那么 Istio 必定在你的考虑范围之内! 因为在后 Kubernetes 时代,服务网格(Service Mesh)技术已完全取代了使用软件库实现…

  • Go 语言自学教程入门到精通实战进阶提升(学习路线+思维导图+视频教程+面试题+学习工具+大厂实战手册)

    最近十年来,C/C++在计算机领域其实没有很好得到发展,并没有新的系统编程语言出现。开发效率和系统执行效率在很多情况下不能兼得。要么执行效率高,但低效的开发,如 C++;要么执行低效,但开发还算比较高效,如.NET、Java;所以需要一种拥有较高效的执行速度、编译速度和开发速度的编程语言,Go就横空出世了。 传统的语言比如 C++,大家花费太多时间来学习如何使用这门语言,而不是如何更好的表达开发者的思想,同时编译花费的时间实在太长,对于编写 – 编译 – 运行这个链条来说…

    go开发, 产品升级, 技术干货 2020年9月27日
  • 使用 gin 包优化登录功能

    上一个实战文章我们学习了如何使用 Go 语言原生的 http 包来构建一个 web 应用,实现了一个简单的登录功能。因为原生的 http 包很多功能都需要自己去写,所以就有很多开发者在原生包的基础上开发了第三方包。本文就来介绍一个开发 Go web 十分流行的包—— gin 包。其官方地址为:https://github.com/gin-gonic/gin。   1. 下载 gin 包 因为是第三方包,所以需要从 github 上下载后才可使用。使用以下指令下载使用: 代码块 1  g…

    go开发, 技术干货 2020年9月21日
  • 使用 Go 语言搭建简易登录功能

    在这篇文章之前,已经学完了 Go 语言所有基础特性,对 Go 语言也有了一定掌握和理解。本文就来学习如何使用 Go 语言如何搭建一个 web 服务。这个 web 服务主要提供登录的功能。   1. 搭建服务 在 Go 语言中想要搭建一个 http 服务是非常容易的一件事情,一行代码就可以了。 代码示例: 代码块 1  package main 2 3  import ( 4        “net/http” 5  ) 6 7  func main() { 8        http.…

    go开发, 技术干货 2020年9月19日
  • Go 语言性能测试

    本文来学习一下如何进行 Go 语言的性能测试。这里需要学习一个 Go 语言官方提供的工具 pprof: runtime/pprof:采集程序(非 Server)的运行数据进行分析; net/http/pprof:采集 HTTP Server 的运行时数据进行分析。 上述两个包的底层实现是一样的,一般建议直接在主函数上加上 http 服务而使用第二个包,毕竟可视化显示易于观察和操作。故本文仅介绍 net/http/pprof 的用法。   1. pprof 使用方法 直接在程序入口,也就…

    go开发, 技术干货 2020年9月19日
  • Go 语言中的反射

    反射是在 java 出现后迅速流行起来的一种概念,通过反射可以获取丰富的类型信息,并可以利用这些类型信息做非常灵活的工作。大多数现代的高级语言都以各种形式支持反射功能,反射是把双刃剑,功能强大但代码可读性并不理想,若非必要并不推荐使用反射。本文就来介绍一下反射在 Go 语言中的基本使用方法。   1. 通过反射获取类型 在 Go 语言中提供反射的包为 reflect 包,其中reflect.Type()函数可以获取一个变量的类型。 代码示例: 代码块 1  package main 2…

    go开发, 技术干货 2020年9月19日
  • Go 语言中的变参

    在开发过程中,很有可能会遇到不确定传入参数数量的问题。比如答题系统开发时,可能会遇到多选题,这里面就无法确定传入参数的数量。此时就需要一个变参传递的方案,在 Go 语言中,使用…来接收或者传递变。   1. 使用…来接收变参 在函数的参数类型前加上…就可以用于接收不定长度的该类型的变参,如果连类型也无法确定,则使用…interface{}。变参类型的参数在使用时是一个变参类型的切片。 代码示例: 代码块 1  package main 2 3  import “fmt” 4…

    go开发, 技术干货 2020年9月19日
  • Go strings 系统包的使用说明

    前文我们有学习了 string 变量,发现 Go 语言并没有向面向对象语言那样,类型中自带方法来处理对象的值。Go语言中也有类似的操作,其操作全都在 strings 系统包中实现了。本文主要来讲解一下如何使用 strings 系统包比较常用的字符串操作。   1. 获取字符串长度 在往数据库中写入数据的时候,数据库字段通常都会有长度限制,所以在写入之前最好事先判断一下字符串的长度是否符合自己的设计。 代码示例: 代码块 1  package main 2 3  import ( 4  …

    go开发, 技术干货 2020年9月19日
历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!