龙芯Go!Go!Go!——龙芯平台上构建Go语言环境指南

一、初识Go语言Go语言是Google公司于2009年正式推出的一款开源的编程语言,是由Robert Griesemer、Ken Thompson和Rob Pike等世界顶尖计算科学家精心打造的系统编程语言。Go语言最显著的特点是编码简洁迅速、支持高效并发和自动内存管理等。此外,Go语言还面向网络服务器、存储系统和数据库等领域的编程进行了优化设计,并且简化了应用系统的安装和部署。因此,Go语言受到了广大程序员的青睐,越来越多地开始应用于谷歌和百度等知名中外企业的产品中。Go语言形象标识对于这样一...阅读全文

Segmentfault 2021-03-25 09:32:32 这是一个小芯芯

golang的gc

golang v1.3前-标记清除(mark and sweep)方法 标记清除再gc前会进行STW,STW - MARK标记 - SWEEP清除 - 停止STW1、STW暂停程序业务逻辑,找出不可达对象和可达对象;2、开始标记,程序找出所有的可达对象做上标记;3、标记完之后,开始清楚未标记对象;4、停止暂停,让程序继续运行。循环重复这个过程,直到程序生命周期结束;不足:1、STW程序暂停,程序出现卡顿(严重问题)2、标记需要扫描整个heap3、清除数据会产生heap碎片4、缓解办法:可将三步和...阅读全文

简书 2021-03-22 06:32:42 Jaredtian

1 简介

#从韩顺平的B站引入GO能做什么 1 如上图,可以分为区块链,后端,分布式文件系统等应用对于区块链,核心要求分布式数据库账目,公开透明对于服务端开发,要求排序、搜索、推荐的效率,提供负载均衡等等,对效率有较高的要求(要有处理高并发的能力)对于分布式,云计算,要求调度,也反映golang计算能力强go语言是google公司开发的语言,也是其主推的语言,国内很多BAT已经开始使用go开发GO语言历史开发者主要是肯.汤姆逊和罗布.派克。前者一定非常熟悉了,开发了B,C,unix的人,后者也是bell实...阅读全文

简书 2021-03-22 06:32:42 塔利班头子

手撸golang GO与微服务 聚合模式之2

手撸golang GO与微服务 聚合模式之2 缘起 最近阅读 [Go微服务实战] (刘金亮, 2021.1) 本系列笔记拟采用golang练习之 聚合模式 DDD中有两个非常重要的模式:聚合(Aggregate)和聚合根(AggregateRoot)。 聚合是对概念上属于同一实体(entity)或值对象(value object)的封装。 而聚合根的含义是指,任何对该聚合的访问都仅到达聚合根。 比如Car就是聚合根,虽然Car有轮胎、车灯, 但是显然外部访问都只需要访问Car,聚合根确保了聚合的...阅读全文

简书 2021-03-22 06:32:38 老罗话编程

2021-03-21:给定一棵二叉树的头节点head,求以head为头的树中,最小深度是多少?

2021-03-21:给定一棵二叉树的头节点head,求以head为头的树中,最小深度是多少? 福大大 答案2021-03-21: 1.递归。 2.莫里斯遍历。 代码用golang编写,代码如下: package main import "fmt" func main() { head := &TreeNode{} head.Left = &TreeNode{} head.Right = &TreeNode{} head.Right.Right = &TreeNode{} ret := minH...阅读全文

简书 2021-03-22 06:32:38 福大大架构师每日一题

Gin实战演练

Gin实战演练 1 gin的简单使用 package main import "github.com/gin-gonic/gin" func main() { // Default方法的主要作用是实例化一个带有日志、故障恢复中间件的引擎。 r := gin.Default() //实例化一个gin对象 // 定义请求 //定义一个GET请求的路由,参数一是路由地址,也就是在浏览器访问的相对路径, // 参数二是一个匿名函数,函数内部用于业务逻辑处理。 r.GET("/login", func(c...阅读全文

简书 2021-03-22 06:32:38 小魔童哪吒

06 Golang分支和循环

分支控制 1.if else 写法1 age := 30; if age > 18 { fmt.Println("成年人") } 写法2 if age := 30; age > 18 { fmt.Println("成年人") } 两种写法的{}都不能省略,区别是:变量age的作用域不同 2.switch case 这里的break语句,可写可不写。 switch extname := ".html"; extname { case ".html": fmt.Println("text/html"...阅读全文

简书 2021-03-22 06:32:36 learninginto

Go-Array

golang初始化数组 golang中数组为值类型 方式1:指定数组长度 func main() { var defaltArray [3]int //数组会初始化为int类型的零值 var numArray = [3]int{1, 2} //使用指定的初始值完成初始化 var strArray = [3]string{"python", "java", "golang"} //使用指定的初始值完成初始化 fmt.Println(defaltArray) //[0 0 0] fmt.Printl...阅读全文

简书 2021-03-22 06:32:36 SodaCrush

Go-Slice

golang 切片(Slice) 切片为引用类型,切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装,支持自动扩容。 切片的本质就是对底层数组的封装,由三个重要部分构成: 底层数组的指针 切片的长度(len) 和切片的容量(cap) 创建切片 func main() { // 声明切片类型 var a []string //声明一个字符串切片 var b = []int{} //声明一个整型切片并初始化 var c = []bool{false, true} ...阅读全文

简书 2021-03-22 06:32:36 SodaCrush

Golang之不可重入函数实现

Golang之不可重入函数实现 平台开发 360云计算 女主宣言 一个不可重入的函数就是一个在任何时间点只能执行一次的函数,不管它被调用了多少次,以及有多少goroutines。PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦! 一个不可重入的函数就是一个在任何时间点只能执行一次的函数,不管它被调用了多少次,以及有多少goroutines。 本篇文章说明了阻塞不可重入函数,并在golang中产生不可重入的函数实现。 场景用例 某个服务是对某些条件进行轮询,每秒监视一...阅读全文

51CTO博客 2021-03-21 19:36:03 mob604756f04b77

Channels In Go

Channels In Go OpsDev - 高广鹏 360云计算 女主宣言 Go有两个重要的内置功能,同时也是它的特性。分别是channel、Goroutine。这两个特性使Go编写并发程序变的简单、有趣。本文将主要介绍channel。原文来自go101,本文是翻译后留存,方便自己学习。PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦! Channel Introduction 不要通过共享内存来通信,应该通过通信来共享内存,出自Rob Pike。是在Go社区非...阅读全文

51CTO博客 2021-03-21 20:06:26 mob604756f04b77

Go 上下文取消操作

平台开发 360云计算女主宣言本篇文章将解释我们如何利用上下文库的取消特性,并通过一些模式和最佳实践来使用取消,使你的程序更快、更健壮。PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦!许多使用Go的人,都会用到它的上下文库。大多数使用 context 进行下游操作,比如发出HTTP调用,或者从数据库获取数据,或者在协程中执行异步操作。最常见的用法是传递可由所有下游操作使用的公共数据。然而,一个不太为人所知,但非常有用的上下文特性是,它能够在中途取消或停止一个操作。...阅读全文

51CTO博客 2021-03-21 19:58:38 mob604756f04b77

Go语言HTTP/2探险之旅

平台开发 360云计算 女主宣言大家都知道,Go的标准库HTTP服务器默认支持HTTP/2。那么,在这篇文章中,我们将首先展示Go的http/2服务器功能,并解释如何将它们作为客户端使用。PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦!在这篇文章中,我们将首先展示Go的http/2服务器功能,并解释如何将它们作为客户端使用。Go的标准库HTTP服务器默认支持HTTP/2。 HTTP/2 服务器首先,让我们在Go中创建一个http/2服务器!根据http/2文档,所...阅读全文

51CTO博客 2021-03-21 19:42:02 mob604756f04b77

【开源推荐】基于 Go 语言的轻量级高性能日志库 logit使用及测评

前言logit 是一个简单易用并且是基于级别控制的日志库,可以应用于所有的 GoLang 应用程序中。开源地址:gitee.com/FishGoddess/logit核心特性独特的日志输出模块设计,使用 wrapper 和 handler 装载特定的模块,实现扩展功能支持日志级别控制,一共有四个日志级别,分别是 debug,info,warn 和 error。支持日志记录函数,使用回调的形式获取日志内容,对长日志内容的组织逻辑会更清晰支持开启或者关闭日志功能,线上环境可以关闭或调高日志级别支持记...阅读全文

51CTO博客 2021-03-21 17:49:42 mob604756f23a7e

Go调度程序:Ms,Ps&Gs

平台开发 360云计算女主宣言最近决定学习一下关于Go内部的相关知识,所以就整理了此篇文章来和大家分享一下。PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦!最近决定学习一下关于Go内部的相关知识,之前有人写过Go调度程序,觉得很有趣。相信大家也会喜欢这方面的文章,让我们开始吧!1基础Go运行时管理调度、垃圾收集和goroutines的运行时环境。在这里,我将只关注调度程序。运行时调度器通过将它们映射到操作系统线程来运行goroutines。Goroutines是线...阅读全文

51CTO博客 2021-03-21 16:49:19 mob604756f04b77

基本操作:Go创建GraphQL API

基本操作:Go创建GraphQL API 平台开发 360云计算 女主宣言 越来越多的项目中都能看到GraphQL的身影,不知道大家在项目中有没有使用过GraphQL呢?今天给大家分享一下使用Go,来创建基础GraphQL API,供大家参考学习。PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦! 引言 随着时间推移,我们在越来越多的项目中,都可以发现GraphQL的身影。 从几个方面看,包括图形化的数据、多个分布式团队和高度版本化的api,以及关于类型安全和文档的...阅读全文

51CTO博客 2021-03-21 16:34:53 mob604756f04b77

如何编写Go中间件

如何编写Go中间件 开发组 360云计算 女主宣言 大家有没有写过中间件呢,它是怎么写的呢?今天给大家分享一下使用Go,如何编写中间件,供大家参考学习。PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦! 引言 一开始,我们认为编写中间件似乎很容易,但是我们实际编写的时候也会遇到各种各样的坑。让我们来看看一些例子。 1 读取请求 在我们的示例中,所有的中间件都将接受http。处理程序作为一个参数,并返回一个http.Handler。这使得人们很容易就能把中间产品串起来...阅读全文

51CTO博客 2021-03-21 16:20:39 mob604756f04b77

Gin实战演练

Gin实战1 gin的简单使用package main import "github.com/gin-gonic/gin" func main() { // Default方法的主要作用是实例化一个带有日志、故障恢复中间件的引擎。 r := gin.Default() //实例化一个gin对象 // 定义请求 //定义一个GET请求的路由,参数一是路由地址,也就是在浏览器访问的相对路径, // 参数二是一个匿名函数,函数内部用于业务逻辑处理。 r.GET("/login", func(c *gi...阅读全文

Segmentfault 2021-03-24 23:32:33 小魔童哪吒

手撸golang GO与微服务 聚合模式之2

手撸golang GO与微服务 聚合模式之2缘起最近阅读 [Go微服务实战] (刘金亮, 2021.1)本系列笔记拟采用golang练习之聚合模式DDD中有两个非常重要的模式:聚合(Aggregate)和聚合根(AggregateRoot)。 聚合是对概念上属于同一实体(entity)或值对象(value object)的封装。 而聚合根的含义是指,任何对该聚合的访问都仅到达聚合根。 比如Car就是聚合根,虽然Car有轮胎、车灯, 但是显然外部访问都只需要访问Car,聚合根确保了聚合的完整性。 ...阅读全文

Segmentfault 2021-03-24 21:32:32 ioly

Gin+Gorm 小说网站接口实战教程

# 关于项目 # 项目载体 大家先看一个 [小说网站](https://www.leixuesong.cn/),这个小说网站就是该课程项目的载体,是我浏览相关博客时无意发现的一个唯美的小说网站,风格比较清新,个人感觉还不错,纵观整个网站的页面上的数据,发现并没有那么复杂,下面是首页截图,本课程实现的就是这个网站的后端接口,包括后台和前台首页的所有接口,听上去是不是有点感觉了。 ![](https://p.pstatp.com/origin/138ea00005d67bcc46b26) ...阅读全文

Go语言中文网 2021-03-21 22:29:17 LastAres