文章目录序言目录统一规范篇1.1 合理规划目录1.2 GOPATH设置1.3 import 规范1.4 代码风格1.5 大小约定参考链接 序言看过很多方面的编码规范,可能每一家公司都有不同的规范,这份编码规范是写给我自己的,同时希望我们公司内部同事也能遵循这个规范来写Go代码。如果你的代码没有办法找到下面的规范,那么就遵循标准库的规范,多阅读标准库的源码,标准库的代码可以说是我们写代码参考的标杆
高质量编程高质量编程简介1.编码规范2.性能优化建议3.性能调4.优实战5.性能调优简介6.性能分析工具pprof实战性能调优案例什么是高质量?——编写的代码能够达到正确可靠。简洁清晰的目标可称之为高质量代码1.各种边界条件是否考虑完备2.异常情况处理,稳定性保证3.易读易维护编程原则简单性1.消除“多余的复杂性”,以简单清晰的逻辑编写代码2.不理解的代码无法修复改进3.可读性4.代码是写给人看的
Go语言语法类似于C语言,因此熟悉C语言及其派生语言(C++、C#、Objective-C 等)的人都会迅速熟悉这门语言。C语言的有些语法会让代码可读性降低甚至发生歧义。Go语言在C语言的基础上取其精华,弃其糟粕,将C语言中较为容易发生错误的写法进行调整,做出相应的编译提示。(1) 去掉循环冗余括号Go语言在众多大师的丰富实战经验的基础上诞生,去除了C语言语法中一些冗余、烦琐的部分。下面的代码是C
转载
2023-07-24 00:18:18
95阅读
1. gofmt 命令 大部分的格式问题可以通过 gofmt 来解决,gofmt 自动格式化代码,保证所有的 go 代码与官方推荐的格式保持一致,所有格式有关问题,都以gofmt的结果为准。所以,建议在提交代码库之前先运行一下这个命令。2. 行长 一行最长不超过80个字符,超过的使用换行展示,尽量保持格式优雅。3. 注释 在编码阶段应该同步写好 变量、函数、包 的注释,最后可以利用 go
转载
2023-08-30 16:34:27
82阅读
Go 基本架构一、Go 基本架构:package main
import "fmt"
func main() {
fmt.Println("hello, world")
}go 文件的后缀是 .go ;package main:表示文件所在的包是main;每个Go应用程序都包含一个为main的包;所有包名都应该使用小写字母;import “fmt”:表示引入一个包,包名为fmt,引入该
一、helloworld实例解释1、package main:定义了包名。必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。其表示一个可独立执行的程序,每个Go应用程序都包含一个名为main的包。2、import “fmt”:告诉编译器这个程序需要使用fmt包,fmt包实现了格式化 IO(输入/输出) 的函数。3、func main():是程序入口。main函数是每
在我们日常开发中,会遇到一些耗时的操作,比如下载一个大文件,这时候如果能给用户一个进度提示,会显得比较友好,因为用户知道自己还要等多久可以,就可以下载好这个文件。进度提示有很多种,比如百分比,但是它比较单调,如果更形象一些的话,可以使用进度条。在偏向于UI或者GUI开发的时候,会有现成的进度条组件供我们使用,但是如果我们用Go语言开发CLI程序,如何在终端中显示进度条呢?这就需要今天的主角儿 pr
转载
2023-08-09 20:42:16
127阅读
Golang常用库学习标准库fmt标准库log标准库time标准库strconv标准库 testing单元测试简单测试单元测试覆盖率统计表格驱动测试性能(基准)测试标准库 os文件操作标准库 flag简单命令行传参复杂命令行参数(子命令)net/httphttp服务端http客户端json编码解码标准库math/rand生成随机数 标准库fmtfmt.Fprintf 向文件中写内容格式化字符串获
转载
2023-07-11 23:41:04
70阅读
目录 一、log二、使用Logger三、配置logger3.1 标准logger的配置3.2 flag选项3.3 配置日志前缀3.4 配置日志输出位置四、创建logger五、总结 更新、更全的《Go从入门到放弃》的更新网站,更有python、go、人工智能教学等着你:无论是软件开发的调试阶段还是软件上线之后的运行阶段,日志一直都是非常重要的一个环节,我们也应该养成在程序中记录日志的好习惯。一
在Go语言世界中,除了标准库自带的html/template包之外,还有种类繁多的第三方模板引擎库,这些库大多来自其他语言的经验继承。提起Go语言模板引擎,很多人自然会想到pongo2模板引擎,这也是笔者接触最早的Go语言模板引擎,几乎所有的Go主流流行的Web框架都对它提供支持,你甚至在xormplus/xorm这个数据库框架库中也能看到他的身影,它是一个像django语法的Go语言模板引擎,如
一、什么是govclgovcl是一款简单+小巧+原生的go语言GUI库,内部通过绑定Delphi VCL/Lazarus LCL来实现。二、为什么要自己做现在开源的go UI库也有不少,自己也尝试简单使用过go-qt、lxn/walk、andlabs/ui、go-sciter等,但都不如意,缺失的太多,有些处在停止更新,有些二进制依赖太多太臃肿、有些组件太少、有些非原生、有些不易使用等等各种问题,
转载
2023-07-12 00:06:24
206阅读
第一节、 go中内嵌原生c代码编译命令:go build -o 生成后文件名 main.go; – 规则一:调用C函数时,必须是C.开头; – 规则二:调用C函数时,参数也需要转为C类型;注意: – CGO 会保留序文中的宏定义,但是并不会保留注释,也不支持#program,C 代码块中的#program 语句极可能产生未知错误; – CGO 中使用 #cgo 关键字可以设置编译阶段和链接阶段的相
转载
2023-10-19 09:34:02
151阅读
对go语言编程中的音乐库进行整理
原创
2016-01-18 11:01:02
1545阅读
一、简介2007年,为了提高在多核、网络机器(networked machines)、大型代码库(codebases)的业务场景下的开发效率,Google 首席软件工程师决定创造一种语言那就是 Golang,简称Go。Go 于2009年11月正式宣布推出,成为开放源代码项目,是一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,支持Linux、macOS、Windows等操作
转载
2023-07-23 19:20:40
7阅读
在公司进行代码开发,一般都会制定一套编程规范。良好的代码规范可以改善项目可读性,提高团队开发的合作效率。具体在 Go 语言中,我们可以借鉴 Go 官方的 Go Code Review Comments、Uber 开源的 uber-go/guide 项目,大家感兴趣可以去学习。本文我们聚焦于一个点:Go 的 error 判断。启示代码我们直接看一段代码type MyselfError struct{
转载
2023-08-13 11:31:26
74阅读
在上一篇大概了解了Golang的简单语法及函数等相关后,我们进入到Gin框架的安装一、安装Gin包管理工具以及类库1、安装govendor(包管理工具):必须安装gitgo get github/kardianos/govendor2、安装一些辅助的类库:由于直接访问golang.org会因为需要而无法访问,有的就算有也是无法访问的在这里Gin官方就很友好了,把镜像放到了Gin的官
目录1. 取两数之间的随机数2. time.After3. sort.sort实现自定义排序(此部分转载)4. 进制5. 字符串处理5.1 输入输出5.2 ASCII字符串反转、切片反转6. math基本数学函数7. 取调用函数名和调用者的方法名8. map8.1 golang中,map作为函数参数是如何传递的8.2 读取json文件并解析成map9. slice切片中的坑!10. go操作文件
转载
2023-09-18 20:30:41
102阅读
go是一种静态编译型的语言,它的编译速度非常快。 go的官方编译器称为gc,包括编译工具5g,6g和8g,连接工具5l,6l和8l。其中的数字表示处理器的架构。我们不必关心如何挑选这些工具,因为go提供了名为”g
转载
2023-09-11 15:58:49
70阅读
Goroutines在Go语言中,每一个并发的执行单元叫作goroutine。设想一个程序中有两个函数,假设两个函数没有相互之间的调用关系。一个线性的程序会先调用其中的一个函数,然后再调用另一个。如果程序中包含多个goroutine,对两个函数的调用则可能发生在同一时刻。当一个程序启动时,其main函数即在一个单独的goroutine中运行,我们叫它main goroutine。新的gorouti
文章目录strings包子字符串包含判断字符串比较大小写转换包含前缀后缀字符串分割字符串拼接strconv包bool 类型与string 类型转换number数字与string的转换time包sort排序包io/ioutil 读写工具包bufio 缓冲io读写包os包获取当前目录pwd创建系统目录创建文件go 1.21新增包 cmpcmp.Lesscmp.Compareprint、println
转载
2023-09-26 15:47:53
114阅读