go godoc 文档服务器

搭建公司内部自己的 godoc 服务器 早期的go项目规范: 必须在GOPATH下 项目的包的命名路径与git的路径关联 引入go modules之后,项目可以不在GOPATH内,包的命名也可以不包含git的路径。 godoc 生成的文档,只扫描GOPATH与GOROOT内的代码,在此之外的代码无法生成在线文档,详见go-issue-26827 。 基于此历史背景,一个较好的go项目规范如下: 项目统一命名规范带上git路径,格式:module git.your-company.com/{bus...阅读全文

简书 2020-03-11 13:32:52 cdz620

注释

[TOC] 注释 类型: block comment: /* */ line comment: // 注释方式: 要注释的内容前面进行注释 doc.go:注释的内容比较多 注释规范: 段落的标题: 空行{标题}空行。example: https://golang.org/src/encoding/gob/doc.go#L15 简短代码例子:前后空行,代码部分缩进控制 url会自动转化成html链接 第一句注释比较重要: 做为概要句子出现在 godoc's package 注释时必须以注释的对象(...阅读全文

简书 2020-03-11 13:32:51 cdz620

作为程序员,你怎么看待用go语言重写所有的Java后台工程

作为程序员,你怎么看待用go语言重写所有的Java后台工程作为程序员怎么看待这件事,go语言是成主流趋势了吗?会Java的程序员怎么办,不会失业吧!现在小编就带领大家看看这两门语言到底有何特点以及网友对此事的一个认知。Go语言是谷歌2009年发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。北京时间2010年1月10日,Go语言摘得了TIOBE公布的2009年年度大奖。Java:是一种可以撰...阅读全文

51CTO博客 2020-03-10 21:29:30 java周某人

Go打包二进制文件

背景 众所周知,go语言可打包成目标平台二进制文件是其一大优势,如此go项目在服务器不需要配置go环境和依赖就可跑起来。 操作 需求:打包部署到centos7笔者打包环境:mac os方法:进入main.go所在目录,输入如下命令,当前目录便会生成main的可执行文件 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go Windows平台打包到Linux执行不一样,需要输入如下命令 set CGO_ENABLED=0 set GOOS=l...阅读全文

Segmentfault 2020-03-16 16:32:35 赵栩彬

Micro In Action(一):入门

![](https://s2.ax1x.com/2020/03/10/8FZ2kD.png) 这个系列聊一聊 [Micro](https://micro.mu/), 我们将以实际开发微服务为主线,顺带解析相关功能。从最基本的话题开始,逐步转到高级特性。 Micro 很强大,掌握后使用起来也相当便利。 但它的演进速度非常快, 导致其文档有严重缺失和滞后。 很多功能没有文档;很多基本问题不得不去 GitHub 上提 issue 或去 Slack 里面问,又得不到什么反馈。最后, 查...阅读全文

Go语言中文网 2020-03-10 21:11:21 polaris

Artifactory清理未使用的二进制品的最佳实践

Artifactory充分利用了基于Checksum的存储,但是这种机制无法代替常规的工件清理任务。软件开发可能很杂乱,很多时候Artifactory中的许多工件都从未使用过。例如,许多CI / CD构建都配置为基于源代码控制“提交”运行,并且一旦将这些快照构建发送到Artifactory,就永远不会实际下载它们。 考虑到软件开发的动态性质,大多数组织都有自己的数据保留策略。由您决定可以清除哪些数据,但是内置工具可以覆盖大多数情况。通常,在Artifactory中使用三种技术来管理工件存储:–...阅读全文

Go语言中文网 2020-03-10 19:09:52 JFrogChina

可视化Go内存管理

本文翻译自《Visualizing memory management in Golang》。 “内存管理”系列的一部分 在这个由多部分组成的系列文章中,我旨在揭示内存管理背后的概念,并对某些现代编程语言的内存管理机制做更深入的探究。我希望该系列文章可以使您对这些语言在内存管理方面正在发生的事情能有所了解。 在本章中,我们将研究Go编程语言(Golang)的内存管理。和C/C++、Rust等一样,Go是一种静态类型的编译型语言。因此,Go不需要VM,Go应用程序二进制文件中嵌入了一个小型运行时(...阅读全文

小心go.mod中的go directive

在撰写《Go 1.14中值得关注的几个变化》这篇文章时,我使用的试验环境为我的2019款 MacPro,OS版本:10.14.6。我通过下载 https://dl.google.com/go/go1.14.darwin-amd64.tar.gz并解压的方式安装的Go 1.14版本。在我的工作环境中,我通常通过变更GOROOT的方式来使用不同的Go版本。但在进行Go 1.14新增的overlapping interface的实验时,我遇到了一个问题。本文记录的就是这个问题的发现和解决过程,以备自己...阅读全文

Tony Bai 三月 9, 2020 bigwhite

Go 1.14中值得关注的几个变化

可能是得益于2020年2月26日Go 1.14的发布,在2020年3月份的TIOBE编程语言排行榜上,Go重新进入TOP 10,而去年同期Go仅排行在第18位。虽然Go语言以及其他主流语言在榜单上的“上蹿下跳”让这个榜单的权威性饱受质疑:),但Go在这样的一个时间节点能进入TOP 10,对于Gopher和Go社区来说,总还是一个不错的结果。并且在一定层度上说明:Go在努力耕耘十年后,已经在世界主流编程语言之林中牢牢占据了自己的一个位置。 图:TIOBE编程语言排行榜2020.3月榜单,Go语言重...阅读全文

Tony Bai 三月 8, 2020 bigwhite

最常用的调试 golang 的 bug 以及性能问题的实践方法?

场景1: 如何分析程序的运行时间与CPU利用率情况? (1) shell内置time指令 这个方法不算新颖,但是确很实用。 time是Unix/Linux内置多命令,使用时一般不用传过多参数,直接跟上需要调试多程序即可。 $ time go run test2.go &{{0 0} 张三 0} real 0m0.843s user 0m0.216s sys 0m0.389s 上面是使用time对 go run test2.go对执行程序坐了性能分析,得到3个指标。 real:从程序开始到结束,实...阅读全文

Segmentfault 2020-03-16 11:32:41 aceld

GO微信交流群-诚邀愿意分享和想学习GO相关技术的你

在go开发和学习过程中经常遇到一些问题,想找人请教一下,因为是其他语言转go 认识写GO 的比较少,所以建了一个技术交流群。群里有时会有人用Zoom,腾讯会议之类的做直播分享,欢迎有兴趣的朋友一起交流学习,更希望愿意分享的朋友一起交流,如果你有感觉不错的技术,也可以在群里直播分享,会极大的提升自己的技术和总结能力。 为防止发广告的进群 请加我拉群 暗号:GoGoGo 微信号:XU1014129578 ![image.png](https://static.study...阅读全文

Go语言中文网 2020-03-10 10:52:11 xupenga

Go语言基础(五)—— 并发编程

前言: 本专题用于记录自己(647)在Go语言方向的学习和积累。 系列内容比较偏基础,推荐给想要入门Go语言开发者们阅读。 目录如下: Go语言基础(一)—— 简介、环境配置、HelloWorld Go语言基础(二)—— 基本常用语法 Go语言基础(三)—— 面向对象编程 Go语言基础(四)—— 优质的容错处理 Go语言基础(五)—— 并发编程 Go语言基础(六)—— 测试、反射、Unsafe Go语言基础(七)—— 架构 & 常见任务 Go语言基础(八)—— 性能调优 本篇将介绍如下内容: 1...阅读全文

掘金 2020年03月10日 奇舞647

7天用Go动手写/从零实现ORM框架GeeORM

0 目录 第一天:database/sql 基础 | Code 第二天:对象表结构映射 | Code 第三天:记录新增和查询 | Code 第四天:链式操作与更新删除 | Code 第五天:实现钩子(Hooks) | Code 第六天:支持事务(Transaction) | Code 第七天:数据库迁移(Migrate) | Code 1 谈谈 ORM 框架 对象关系映射(Object Relational Mapping,简称ORM)是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程...阅读全文

Segmentfault 2020-03-16 10:32:33 极客兔兔

go防止缓存击穿

当线上接口请求量比较大时,如果恰好遇到缓存失效,会造成大量的请求直接打到数据库,导致数据库压力过大、甚至崩溃。如果缓存的数据实时性要求不那么高,可以试试 do-once-while-concurrent https://github.com/abusizhish... do-once-while-concurrent中有三个主要方法, Req 方法 对具有同一资源标识的请求进行拦截 Wait 方法 等待数据 Release 方法 广播信号,数据已就位 下面是一个简单的示例我们的实际项目中有 两级...阅读全文

Segmentfault 2020-03-16 07:32:33 无形

字节跳动商业产品研发团队招聘

团队介绍 大家好,我们是字节跳动商业产品研发团队,目前负责字节跳动旗下多款移动端创新产品的研发工作。2019年我们团队经历了蓬勃发展的一年,无论是用户规模还是收入增长都取得了不俗的表现,2020我们将面临更大的增长挑战,热切期盼有更多优秀的同学能加入我们再创佳绩。 目前大团队方向诸多,对各类研发都有大量需求,分为用户侧,商业侧,增长侧,数据组和质量保证等;团队精彩瞬间有趣有料还“挣钱”,字节跳动商业产品研发团队了解一下期待您的加入,也欢迎推荐同事和朋友前来面试,入职成功更有惊喜大礼相送。简历发送...阅读全文

掘金 2020年03月09日 Abcat

gin框架之log处理

我们在开发的过程中往往需要记录日志,记录日志可以帮我们追踪错误,追踪业务需求。那么gin中是如何记录日志的呢? package main import ( "github.com/gin-gonic/gin" "io" "os" ) func main() { // 记录到文件。 f, _ := os.Create("gin.log") gin.DefaultWriter = io.MultiWriter(f) router := gin.Default() router.Run() } 我们自...阅读全文

简书 2020-03-09 20:33:10 寒云暮雨

构建乘积数组

题目描述 给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。 示例 输入: [1,2,3,4,5] 输出: [120,60,40,30,24] 思路 1.可以从题目给出的公式中,推导出一幅图。 根据图片的内容,可以通过计算“三角形”的结果,推导出最终元素的结果。 3.三角形主要包括,上半部和下半部,具体计算详情,可以参看代码。 Java代码实现 cla...阅读全文

简书 2020-03-09 20:33:01 youzhihua