如何在 Go 中构建一个基本的 Web 服务器 Go 是一种大有前途的编程语言,用于构建现代 Web 应用程序和系统软件。它一发布就席卷了科技行业,并为 Docker、Kubernetes、Terraform、Dropbox 和 Netflix 等... 系统教程# go# net# web 2年前120
为什么说 Go 语言字符串是不可变的? 这个问题本身并不困难,但对于新手来说确实容易产生困惑,今天就来回答一下。 首先来看看它的底层结构: type stringStruct struct { str unsafe.Pointer len ... 网站建设# go# 代码# 前端 2年前1310
一图胜千言,帮你搞懂Go面试中常问的channel问题! 一图胜千言 下面的表格中总结了对不同状态下的通道执行相应操作的结果。 注意:对已经关闭的通道再执行 close 也会引发 panic。 这篇文章将重点讲解Go面试进阶知识点:select和channe... 网站建设# channel# go# 前端 2年前210
Dubbo-go v3.0 正式发布-打造国内一流开源 Go 服务框架 Go 语言作为最流行的云原生语言,近些年拥有很高的热度,一度备受国内开源生态的关注,据笔者了解,众多企业也在近年来从自身传统技术栈转型 Go 语言技术栈。Go 以其开发敏捷、易用性高、入门较为容易... 网站建设# go# 开发# 开发工具 2年前660
Go defer 去掉闭包函数,靠谱吗? 大家好,我是煎鱼。,在 Go 语言里,defer 关键字是大家很爱用的。因为他有着 defer+recover+panic 的组合拳打法,还有种各种 defer close 等常用场景。,这是 Go ... 网站建设# defer# go# 代码 2年前120
“Rust难学”只是一个谎言 近年来Rust的存在感日渐升高,但是其陡峭的学习曲线似乎总是令人望而生畏。不过谷歌的一项内部调查表明,关于Rust的“难学”或许只是一种谣传。,Rust到底难不难学?谷歌有了Go,为何还要支持Rust... 网站建设# c# go# rust 2年前2690
Go进阶面试题详解 逃逸分析是Go语言中的一项重要优化技术,可以帮助程序减少内存分配和垃圾回收的开销,从而提高程序的性能。下面是一道涉及逃逸分析的面试题及其详解。,有如下Go代码:,请问上面的代码中,变量x是否会发生逃逸... 网站建设# go# 函数# 分配内存 2年前290
Go语言开发者的Apache Arrow使用指南:高级数据结构 经过对前面两篇文章《Arrow数据类型》[1]和《Arrow Go实现的内存管理》[2]的学习,我们知道了各种Arrow array type以及它们在内存中的layout,我们了解了Go arrow... 网站建设# array# arrow# go 2年前540
「Go开源包」requests:一个比net/http包更简洁、高效的开源包 大家好,这里是Go学堂。,今天给大家推荐一个高效的HTTP的请求包:carlmjohnson/requests。项目地址是:https://github.com/carlmjohnson/reques... 网站建设# go# http# net 2年前2340
Go1.21 速览:支持自定义 go.env 文件,可惜还是有所残缺 大家好,我是煎鱼。,不知道大家平时在调整 Go 环境变量是怎么设置的呢,还是说都用默认配置,又或是直接走 IDE 设置?,像以前最早时,有的同学是打开 ~/.zshrc,一番 vim 操作,设置好 e... 网站建设# env# go# 环境变量 2年前300
Go 语言类型转换的陷阱 Go 语言作为强类型语言,在使用 Golang 开发项目时,经常会遇到类型转换的场景,整型之间可以直接转换,字节切片和字符串之间也可以直接转换。,但是,如果整型和字符串之间做类型转换,则需要使用 st... 网站建设# go# strconv# 字符串 2年前80
如何使用jsFinder快速全面地获取目标应用的JavaScript文件 jsFinder是一款针对JavaScript文件的数据收集工具,该工具基于Go语言开发,是一个命令行工具,在该工具的帮助下,广大研究人员可以快速扫描目标网页以查找HTML源代码中链接的JavaScr... 网站建设# go# javascript# jsfinder 2年前510
Go中“哨兵错误”说法的由来及使用建议 大家好,我是渔夫子。,前些天有网友问我,在golang的错误处理中,“哨兵错误(sentinel error)”这个词的出处。之前我也只是在一些书籍和资料中见到过,也没深究。当这个网友问了我之后,就深... 网站建设# go# golang# 哨兵 2年前480
Go中这么多创建Error的方式,你真的了解它们各自的应用场景吗 在Go中,error是一种内建的数据类型,被定义为一个接口,定义如下:,由此可知,该接口只有一个返回字符串的Error函数,所有的类型只要实现了该函数,就创建了一个错误类型。,创建error的方式包括... 网站建设# error# go# new 2年前140
Go 团队将修改 for 循环变量的语义,Go1.21 新版本即可体验! 大家好,我是煎鱼。,之前有提到 Go for 循环变量的问题,许多面试题和泄露与此有关。,Russ Cox(下称:rsc)甚至一度表示他一直在研究这个问题,认为当前语义的代价是很大的,想看看能不能进行... 网站建设# go# item# 变量 2年前740
Google 公布 2022 年度最热门 Chrome 扩展 Google 从去年开始一直在大力推行 Manifest V3 扩展,虽然遭到了不少外部阻力,但这并没有影响 Chrome 扩展程序生态的繁荣。那么在过去一年,有哪些扩展脱颖而出,获得了 Google... 网站建设# c# chrome# g 3年前540
Goscript:Rust 实现的 Go 语言规范 Anaconda 开发商最近发布了 PyScript,这是一个可以让开发者在 HTML 中混写 Python 代码的框架,有人将其称为 “Python 版 JSP”。事实上,PyScript 底层采用... 网站建设# go# goscript# pyscript 3年前440
Go 语言源码级调试器 Delve Delve 是一个简单、强大和易用的 Go 语言源代码层级的调试器,也是 Go 官方推荐使用的调试器。,Delve 安装非常简单,如果读者朋友使用的是 Go 1.16 或更高版本,可以直接使用 go ... 网站建设# delve# go# 使用 3年前300
Go 编程语言中使用文本文件指南 ,作为一种编程语言,Go 具有广泛的内置功能,包括创建、读取和写入文本(.txt)文件等文件的功能。,文件是现代世界我们日常生活的重要组成部分。文本文件对于存储结构化的人类可读数据非常有用,而无需使用... 网站建设# bufio# go# io 3年前190
Go语言中通过WaitGroup控制并发 Channel能够很好的帮助我们控制并发,但是在开发习惯上与显示的表达不太相同,所以在Go语言中可以利用sync包中的WaitGroup实现并发控制,更加直观。,我们将之前的示例加以改造,引入sync... 网站建设# go# waitgroup# 函数 3年前270
Go 语言怎么解决编译器错误“err is shadowed during return”? 在 Go 语言开发中,我们可能会遇到“错误在返回时被隐藏”的错误,该错误在 Go 编码时很难发现,在 GoLand 中也只是会变量名高亮提示,只有在编译 Go 项目时,Go 编译器会返回 err is... 网站建设# err# go# shadowed 3年前220
如何快速学一门新语言? 我花了半个月时间学习Go,就开发了商业项目,抗住了并发考验,并且成功被Go圈粉。,2022年初,入职新公司后,花了3天时间,学习GoFrame框架,提前完成了开发任务,在项目复盘会上成了同事口中的... 网站建设# go# 动手# 教程 3年前730
我敢打赌你一定没用过 Java 中的这个类! ,在 Java 中有这样的一个类,平时可能都用不到,但是需要的时候还是会很方便的,它就是 Java 中的javafx.util.Pair。在介绍 Pair 的使用之前我们先看看下面的例子。,如果对 P... 网站建设# go# java# pair 3年前760
函数式编程在 Go 泛型下的实用性探索 函数式编程(Functional Programming / FP)作为一种编程范式,具有无状态、无副作用、并发友好、抽象程度高等优点。目前流行的编程语言(C++、Python、Rust)都或多或少地... 网站建设# functional# go# 函数 3年前680
Go 项目使用 Makefile Go 提供一个名为go的命令,该命令可自动下载、构建、安装和测试 Go 包和命令。,Go 提供go命令,官方的目的是为了不需要编写 Makefile,而是能够仅使用 Go 源代码本身中的信息来构建 G... 网站建设# go# make# makefile 3年前680
在 Go 语言中使用 exec 包执行 Shell 命令 exec 是 os 包中的一个子包,它可用于使用 Go 运行外部命令。Go exec 命令教程展示了如何在 Golang 中执行 shell 命令和程序。,要使用这个包,我们需要按如下方式导入:,我们... 网站建设# exec# go# shell 3年前230
Go 要违背初心吗?新提案:手动管理内存 由于手动管理内存普遍会给程序员带来一定的心智负担,提高一门编程语言的入门门槛(还记得大学写 OC 时经常有同学写着写崩了...)。,对应到 Go 语言上,他是一门带垃圾回收的编程语言。也就是说不需要程... 网站建设# arena# go# 内存 3年前210
为什么 Go 用起来会难受?这六个坑你知道吗 在做新的应用选型时,我们会进行应用编程语言的选择,这时会纠结 Java、PHP、Go...各种,会思考有没有致命的问题,不能用?,可以明确的是,Go 没有非常致命的问题,否则你我他都不会在这里相遇,也... 网站建设# go# 泛型# 要不得 3年前300
一文读懂 Go Http Server 原理 俗话说万事开头难,但用 Go 实现一个 Http Server 真不难,简单到什么程度?起一个 Server,并且能响应请求,算上包名、导入的依赖,甚至空行,也就只要 15 行代码:,这么简单,能与之... 网站建设# go# http# server 3年前600
Go语言将引入新型排序算法:Pdqsort 哈喽,大家好,我是asong。最近在逛Go仓库时看到了一个commit是关于排序算法的,即pdqsort排序算法,Go计划将在下一个版本中支持该排序算法,下面我们就具体来看一看这个事情;,commit... 网站建设# commit# go# pdqsort 3年前450
从Go log库到Zap,怎么打造出好用又实用的Logger 日志无论对于程序还是程序员都非常重要,有多重要呢,想要长期在公司健健康康的干下去就得学会阶段性划水,阶段性划水的一大关键的就是干活快过预期但是装作。。。不对,这个开头不对劲,下面重来。,日志无论对于程... 网站建设# go# logger# 日志 3年前1040
Go 1.18 的那些事——工作区、模糊测试、泛型 作者 | 张闻阗,2022 年 3 月 15 日,Google 发布了万众瞩目的 Golang 1.18,带来了好几个重大的新特性,包括:,本文将简单讲述这三个特性的相关内容。,在实际的开发工作中,我... 网站建设# common# go# service 3年前1650
伙计,Go项目怎么使用枚举? 哈喽,大家好,我是asong。枚举是一种很重要的数据类型,在java、C语言等主流编程语言中都支持了枚举类型,但是在Go语言中却没有枚举类型,那有什么替代方案吗?本文我们来聊一聊这个事情;,我们以j... 网站建设# go# 使用# 常量 3年前90
聊聊Go语言中文件操作 文件操作应该是应用程序里非常常见的一种操作,无论是哪种应用场景,几乎都离不开文件的基本操作。Go语言中提供了三个不同的包去处理文件,os包提供了处理文件的API接口,遵循Unix标准,平台无关,所有操... 网站建设# go# io# os 3年前260
Go 语言 Errgroup 库的使用方式和实现原理 在 Go 语言中,我们可以使用 errgroup 库处理 goroutine 中的错误。,errgroup 库最近更新了,新增支持限制并发数量的功能。,本文我们介绍 errgroup 库的使用方式和... 网站建设# errgroup# go# goroutine 3年前210
Go 数组和切片的介绍 了解使用数组和切片在 Go 中存储数据的优缺点,以及为什么其中一个更好。,在本文中,我将解释 Go 数组和切片,包括如何使用它们,以及为什么你通常要选择其中一个而不是另一个。,数组是编程语言中最流行的... 网站建设# go# 切片# 存储 3年前670
PHP转Go优选的框架:GoFrame 最近发现了一款非常好用的基于go语言的web开发框架,非常适合PHP转Go的同学使用,在很多设计思想和使用上和PHP的Laravel框架非常像。,今天就为大家简单介绍一下GoFrame的特点:,GoF... 网站建设# go# goframe# php 3年前240
Go语言如何自定义linter(静态检查工具) 哈喽,大家好,我是asong;,通常我们在业务项目中会借助使用静态代码检查工具来保证代码质量,通过静态代码检查工具我们可以提前发现一些问题,比如变量未定义、类型不匹配、变量作用域问题、数组下标越界、内... 网站建设# go# 代码# 工具 3年前320
聊聊 Go 如何打包与压缩文件 文件的打包、压缩与解压缩是经常会使用到的功能,我们可以通过 tar、gzip 等工具来完成这些操作。在 Go 中,标准库archive与compress为我们提供了这些能力,通过本文示例,你会发现以 ... 网站建设# go# tar# 压缩 3年前290
PHP转Go,框架选什么? 这是一期会引起广泛讨论的内容,不亚于“PHP是世界上最好的语言”。,不管我们是否基于框架去开发,不管使用什么框架去开发。,6个字的内功心法一定要牢记:高内聚,低耦合。,不管是单体项目还是微服务,不管是... 网站建设# go# goframe# php 3年前500
依葫芦画瓢理解一个小型Go框架 最近在开发Go程序,同事(github.com/WiFeng/go-sky)参考go-kit框架封装了一个简易的轮子,包含了Api和Task任务,已经能满足大部分Web需求,依葫芦画瓢,自己理解了下... 网站建设# endpoints# go# service 3年前110
这不会又是一个Go的BUG吧? hello,大家好呀,我是小楼。,最近我又双叒叕写了个BUG,一个线上服务死锁了,不过幸亏是个新服务,没有什么大影响。,出问题的是Go的读写锁,如果你是写Java的,不必划走,更要看看本文,本文的重点... 网站建设# bug# client# go 3年前420
我认为 Go 的成功归功于这五个方面 大家好,我是煎鱼。,在国外的播客节目 Go Time #100 中,Rob Pike 和 Robert Griesemer(Go 的两位创始人)和主持人 Jerod Santo 讨论了 Go 语言的成... 网站建设# go# jerod# pike 3年前250
Go插件系统Plugin的分析 ,在Go语言中,有一个好像很好用,但却比较少人提及的功能,那就是Go Plugin。,目前在 Go 工程中普遍还没广泛的使用起来,覆盖率不高。在 Go issues 上吐槽挺多,甚至感觉有点像凉了半截... 网站建设# go# plugin# 为什么 3年前200
Go 1.18 新增三大功能之一“工作区模式”介绍 Go 官方在 Go v1.11 新增 Go Modules 模式,并一直持续到 Go v1.16,每个版本的 Go Modules 模式都会有一些变化。但是,我们的项目使用 Go Modules 模式... 网站建设# git# go# modules 3年前340
简单易懂的 Go 泛型使用和实现原理介绍 本文是对泛型的基本思想及其在 Go 中的实现的一个比较容易理解的介绍,同时也是对围绕泛型的各种性能讨论的简单总结。首先,我们来看看泛型所解决的核心问题。,假设我们想实现一个简单的 tree 数据结构... 网站建设# go# 实现# 泛型 3年前540
Go1.20 那些事:PGO、编译速度、错误处理等新特性,你知道多少? 大家好,我是煎鱼。,最近 Go1.20 在 2 月初已经正式发布,来的挺早的,以往都是拖到月底的,我翻了好几篇,发现最后还是做了不少功能取舍,被迫放了某些新特性(例如:arena 等)的鸽子!,怀疑 ... 网站建设# go# 泛型# 特性 3年前370
Go 语言一次性定时器使用方式和实现原理 在 Go 语言标准库 time 包中的 Timer 类型,它是表示单一事件的计时器,也就是说它是一次性定时器。,在 Go 语言项目开发中,定时器使用广泛,本文我们介绍 Go 语言中怎么使用 Time... 网站建设# go# time# timer 3年前210
Go 为什么要设计 Iota 常量? 大家好,我是煎鱼。,Go 语言中有一个非常有特色的东西,那就是 iota 常量。经过某鱼的不完全统计,许多 Go 开发者都是由 PHP、Java、C++、Python 等转型过来,对此还是挺好奇的... 网站建设# go# iota# 常量 3年前290
在 Go 中生成随机的安全密码 你可以使用 Go 编程语言 提供的随机数生成器来生成由 ASCII 字符组成的难以猜测的密码。尽管本文中提供的代码很容易阅读,但是你仍需要了解 Go 的基础知识,才能更好地理解它。如果你是对 Go ... 网站建设# ascii# go# 字符 3年前500
Go1.19 那些事:国产芯片、内存模型等新特性,你知道多少? 大家好,我是煎鱼。,感觉时间过得很快,Go1.18 发布没太久,泛型还在风风火火,看了看上次的投票结果,绝大部分同学还没有在生产环境应用泛型。,这不,Go1.19 Beta1 已经正式发布了。今天就由... 网站建设# atomic# go# 内存 3年前400
学会 Go 中的时间处理 作为程序员,我们经常需要对时间进行处理。在 Go 中,标准库 time 提供了对应的能力。,本文将介绍 time 库中一些重要的函数和方法,希望能帮助到那些一遇到 Go 时间处理问题就需要百度的童鞋... 网站建设# gmt# go# time 3年前360
如何用Go实现一个ORM 为了提高开发效率和质量,我们常常需要ORM来帮助我们快速实现持久层增删改查API,目前go语言实现的ORM有很多种,他们都有自己的优劣点,有的实现简单,有的功能复杂,有的API十分优雅。在使用了多个类... 网站建设# api# database# go 3年前430
试试动 Go recover 刀子,看看能不能优化错误处理? 大家好,我是煎鱼。,Go 的错误处理一直是表现最突出的一块地方,许许多多的同学都提出了各种提案,例如:引入 try-catch、用 panic 代替 if err != nil、引入新的关键字等。但这... 网站建设# go# recover# 提案 3年前280
加大力度!Go 将会增强 Go1 向后兼容性 大家好,我是煎鱼。,前段时间我们在写 Go1.20 新特性和变更时,发现了一个问题有悖论。,Go1 有兼容性承诺,但如果发现了 BUG,会破坏兼容性。那怎么办?是大胆修改,破坏掉,还是说设计如此,打死... 网站建设# go# 例外# 兼容性 3年前290
Go1.20 将会修改全局变量的初始化顺序。梅度二开,继续打破 Go1 兼容性承诺! 大家好,我是煎鱼。,Go1.20 已经发布了 rc1,大家都关注了一些大头的功能特性,例如:PGO、Arean 等,都没有那么的常接触到。,实质上本次新版本还修复了在全局变量初始化方面的顺序,来自《c... 网站建设# f# go# 全局变量 3年前140
PHP转Go实践:xjson解析神器「开源工具集」 今天分享的文章源自于开源项目jinzaigo/xutil的封装。,在封装过程中,劲仔将实现原理以及相关实践思考,写成文章分享出来,从而汇总系列文章集合。,我和劲仔都是PHP转Go,身边越来越多做PHP... 网站建设# go# json# php 3年前280
照猫画虎把SpringBoot搬到K8s,居然翻船咧,体验到了Go在云原生的两个优势 这是我们K8s快速入门与实践的最后一篇啦,上一个实践篇里我们讲了怎么从写第一行代码开始到把 Go 服务部署到 K8s 上都有哪些步骤,每一步该怎么做。,今天这篇我们再更新一个怎么把 SpringBoo... 网站建设# go# ks# springboot 3年前430
这三个 Go 水平自测题,手写不出来还是先老实上班吧 现在技术文章特别卷,啥啥底层都能给你分析的头头是道,但是分析的对不对要看作者水平,很有可能一个错,抄他的那些人也跟着错,因为我以前看源码的时候就经常感觉自己在两种状态下切换:懂了 / 娘咧漏看了,这个... 网站建设# go# 以前# 八股文 3年前170
Go 语言怎么优化重复的 if err != nil 样板代码? Go 语言的错误处理在社区中一直被部分 Go 开发者诟病,其中重复的 if err != nil 样板代码是最令 Go 开发者难以忍受的,严重降低代码的可读性。,针对这个社区争论非常激烈的话题,笔者介... 网站建设# err# go# nil 3年前170
Go 1.18 新增三大功能之一“模糊测试”使用方式 在 Go 1.18 之前,Go 语言支持功能测试、基准测试和示例测试,在 Go 项目开发中,使用最多的是功能测试,读者朋友们应该都比较熟悉功能测试的使用方式了。,在 Go 1.18 中,Go 语言新增... 网站建设# go# 功能测试# 模糊 3年前300
记一次线上服务的内存泄露排查 ,在风和日丽的一天,本人正看着需求、敲着代码,展望美好的未来。突然收到一条内存使用率过高的告警。,告警的这个项目,老代码是python的,最近一直在go化。随着go化率不断上升,发现内存的RSS使用率... 网站建设# go# rss# 内存 3年前500
Go Gin框架请求自动验证和数据绑定,看完这篇就会用了 之前做项目基本上公司是用 gRPC 和 echo 这两个框架的组合,后来 Gin 框架在Go圈越来越流行,陆续我在公司接触到的项目也开始有人用 Gin 框架开发了。,因为我也是偶尔开发,像Gin框架里... 网站建设# gin# go# 参数 3年前670
Go 语言代码风格规范-概述篇 每门开发语言都会有其特有的风格规范(亦或指南),开发者遵循规范能带来显著收益,有效促进团队协作、减少 bug 错误、降低维护成本等。,Google 开源的 Google Style Guides ... 网站建设# go# google# https 4年前280
对 Go2 错误处理提案的批判 在 2018 年 8 月,官方正式公布了 Go 2 Draft Designs[2],其中包含泛型和错误处理机制改进的初步草案:,,Go 2 Draft Designs,下面是关键的 Go2 错误处理... 网站建设# check# draft# go 4年前450
Go内存分配和逃逸分析-实践总结篇 大家好,我是阳哥。,上期内容给大家分享了:Go内存分配和逃逸分析-理论篇,这期内容带大家理论联系实践,详解Go逃逸分析的场景,我还找到了一个非常好用的在线协作工具,大家可以直接在线调试:ht... 网站建设# go# 内存# 分配 4年前500
一款好用的 Go 调用链可视化工具 在接手他人代码或调研一些开源项目时,如果能够理清其中的代码调用链路,这将加速我们对实现的理解。,本文介绍一款工具 go-callvis,它能够将 Go 代码的调用关系可视化出来,并提供了可交互式的 w... 网站建设# callvis# go# 代码 4年前530
Go 语言怎么使用变长参数函数? Go 语言中函数的最后一个参数可以是变长参数,细心的读者朋友们可能已经发现,在 Go 语言标准库 fmt包中就有使用变长参数函数,比如 Println 和 Printf。,我们在使用 Go 语言开... 网站建设# go# 函数# 参数 4年前90
Go语言负责人离职后,一门国产语言诞生了 上周,谷歌Go语言项目负责人Steve Francia宣布辞去职务,而他给出理由是:Go项目的工作停滞不前,让他感到难受。有意思的是,部分国内的Gopher(Go语言爱好者的自称)对Go语言也产生了... 网站建设# go# gopher# wago 4年前820
在 Go 中复制文件的三种方法 本文将介绍展示如何使用 Go 编程语言 来复制文件。在 Go 中复制文件的方法有很多,我只介绍三种最常见的:使用 Go 库中的 io.Copy() 函数调用、一次读取输入文件并将其写入另一个文件,以及... 网站建设# copy# go# io 4年前210
Go 语言官方依赖注入工具 Wire 使用指北 接触 Golang 有一段时间了,发现 Golang 同样需要类似 Java 中 Spring 一样的依赖注入框架。如果项目规模比较小,是否有依赖注入框架问题不大,但当项目变大之后,有一个合适的依赖注... 网站建设# go# golang# wire 4年前400
在位6年,谷歌GO语言负责人突然宣布离职!曾带领MongoDB、Docker走向辉煌 失去了他,谷歌GO处境又将如何?,,,2016年9月15号,是Steve Francia加入谷歌GO团队的第一天。,,他在博客中写道,GO是他过去十年间的热爱,GO让他再次爱上了编程。,接下来就是一顿... 网站建设# go# 团队# 目标 4年前420
分析了 700 万份工作需求,市场需求最高的八种编程语言是这些 ,在过去的 8 个月时间里(从 2021 年 10 月到 2022 年 6 月),DevJobsScanner 分析了超过 700 万份开发者工作需求,得出了目前行业需求量最高的 8 种编程语言。,需... 网站建设# devjobsscanner# go# 万份 4年前430
Go 语言内存逃逸案例 在「Go 语言逃逸分析」中,我们了解到内存分配的相关知识,栈空间分配开销小,堆空间分配开销大。,Go 语言编译器可以通过逃逸分析决定内存分配到栈空间或堆空间。但是,分配到栈空间的对象在某些情况中会逃逸... 网站建设# go# 内存# 分配 4年前550
Go 语言开源项目使用的函数选项模式 在阅读 Go 语言开源项目的源码时,我们可以发现有很多使用 “函数选项模式” 的代码,“函数选项模式” 是 Rob Pike 在 2014 年提出的一种模式,它使用 Go 语言的两大特性,变长参数和... 网站建设# go# 代码# 函数 4年前440
Go 在信创这一块会输给 Java,想不通...... 大家好,我是投稿的网友草莓。,Go 语言已经开源 10+ 年,从高的关注度,再到云原生时代引爆学习 Go 的浪潮,再到现在的数年后。,其搜索热度和 TIOBE 排名基本维持如下:,,最新的排名第是第 ... 网站建设# go# java# 信创 4年前290
Go 探讨了13年,怎么解决再赋值的坑? 大家好,我是煎鱼。,最近在看 Go 的一些历史提案时,发现有个别很神奇的提案,已经提出来了许多年,但在如今依然没有关闭,并且不断地有人在讨论,但又解决不了。,有种 “很气又干不掉我的样子”,今天就由煎... 网站建设# err# go# 复制 4年前170
Go Scheduler 的 GMP 模型 ,Go 为了自身 goroutine 执行和调度的效率,自身在 runtime 中实现了一套 goroutine 的调度器,下面通过一段简单的代码展示一下 Go 应用程序在运行时的 goroutine... 网站建设# go# goroutine# 内核 4年前300
常见排序算法的Golang 实现 现在的面试真的是越来越卷了,算法已经成为了面试过程中必不可少的一个环节,你如果想进稍微好一点的公司,「算法是必不可少的一个环节」。那么如何学习算法呢?很多同学的第一反应肯定是去letcode上刷题,首... 网站建设# go# 刷题# 学习 4年前130
微服务配置中心, 这个方案 Go 里用起来不输 SpringCloud 微服务架构设计模式里有一条讲到,要设计可配置的服务。把服务从单体架构细分成微服务后,所有配置属性都集中存储在一个位置,更易于管理。这个集中存储管理配置的地方,就是配置中心。,使用配置中心还有一个好处就... 网站建设# go# 中心# 方案 4年前490
在 Go 中实现一个支持并发的 TCP 服务端 TCP 和 UDP 服务端随处可见,它们基于 TCP/IP 协议栈,通过网络为客户端提供服务。在这篇文章中,我将介绍如何使用 Go 语言 开发一个用于返回随机数、支持并发的 TCP 服务端。对... 网站建设# go# goroutine# tcp 4年前220
现在还值得学 Go 编程语言吗? Golang,或简称“Go”,是一种较新的编程语言,最初于 2012 年发布。追溯到谷歌,许多人认为它是谷歌的内部语言。,曾经考虑过作为新程序员学习 Golang 吗?也许您是现有的开发人员,并希望将... 网站建设# go# golang# 值得 4年前500
Go 要加个箭头语法,这下更像 PHP 了! 大家好,我是煎鱼。,在六一儿童节前夕在摸煎鱼时,看到一个很神奇的 Go2 的技术提案,想要加一个更简单、更轻量的匿名函数语法。,今天就由煎鱼和大家一起看看。,新的 Go 提案目的是添加轻量级的匿名函数... 网站建设# go# 函数# 匿名 4年前110
用 Go interface{} 等于什么也没说 大家好,我是煎鱼。,如果说在 Go 里要有一句与 interface{} 相关,你会想到什么?是万物皆要定义 interface,否则没法抽象?,Go 谚语中认可的是:"interface{} say... 网站建设# go# interface# 变量 4年前140
你信吗?Go 泛型竟然已经被迅速采用 ,9 月 8 日,Go 语言社区发布 2022 年第二季度开发者调查报告,本次调研覆盖 5752 位受访开发者,主题涉及他们在使用 Go 1.18 全新功能特性(包括泛型、安全工具和工作区)时的真实感... 网站建设# go# 受访者# 图标 4年前340
Go语言实现的可读性更高的并发神库 哈喽,大家好,我是asong;前几天逛github发现了一个有趣的并发库-conc,其目标是:,从简介上看主要封装功能如下:,接下来就区分模块来介绍一下这个库;,仓库地址:https://github... 网站建设# conc# go# 代码 4年前320
Go 语言错误处理为什么更推荐使用 Pkg/Errors 三方库? Go 语言项目开发中,我们通常需要在代码逻辑中进行错误处理,Go 官方标准库 errors 为我们提供了一些方法,比如 New,Unwarp,Is 和 As。,其中,我们用的最多的是 New,但... 网站建设# errors# go# new 4年前250
Go 错误处理新思路?用左侧函数和表达式 大家好,我是煎鱼。,错误处理一直是 Go 一个很有争议的地方,大家在该类提案上贡献了各种各样的想法。在五一假期期间,我也发现了一个有趣的技术提案,那就是:左侧函数;还有 Go+ 的新思路。,今天就由煎... 网站建设# go# 左侧# 提案 4年前330
面试官:请你详细说说Go的逃逸分析 我们在之前有提到堆和栈的概念,要搞清楚GO的逃逸分析一定要先搞清楚堆栈的特点:,正如我们上面提到的,内存分配既可以分配到堆中,也可以分配到栈中。,那么什么样的数据会被分配到栈中,什么样的数据又会被分配... 网站建设# go# 内存# 分配 4年前850
Go try 新提案靠谱吗?想简化错误处理了 大家好,我是煎鱼。,今天煎鱼和大家一起打开来看看,这能把 Go 错误处理机制给掀开重整不。,来自 PingCAP 的提案作者 @Greg Weber 会干这事基于两个因素,一个是在《Go Develo... 网站建设# g# go# r 4年前500
Go 语言短变量声明的“坑” 在使用 Go 语言进行项目开发时,我们经常会在定义变量时使用 Go 语言的一个语法糖 - 短变量声明,它虽然好用,但是也会有让我们不小心就会掉进的“坑”。,本文我们介绍一个 Go 语言短变量声明最容易... 网站建设# go# 作用域# 变量 4年前190
Go for 循环有时候真的很坑。。。 大家好,我是煎鱼。,不知道有多少 Go 的面试题和泄露,都和 for 循环有关。今天我在周末认真一看,发现了 redefining for loop variable semantics[1] ,看来... 网站建设# go# item# 代码 4年前550
Go开源库、大项目的公共包,是这么用建造者模式的 建造者模式,也有翻译成生成器模式的,大家看到后知道他们是一个东西,都是Builer Pattern翻译过来的就行。它是一种对象构建模式,是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建... 网站建设# coffee# go# 建造 4年前190
GO 编程:Go 应用内存占用太多,如何排查 前段时间,某同学说某服务的容器因为超出内存限制,不断地重启,问我们是不是有内存泄露,赶紧排查,然后解决掉,省得出问题。我们大为震惊,赶紧查看监控+报警系统和性能分析,发现应用指标压根就不高,不像有泄露... 网站建设# go# vsz# 内存 4年前580
Go 框架 Gin 怎么实现允许前端跨域请求? 在前后端分离的项目中,前端在请求服务端提供的接口时,往往会遇到跨域请求的问题,服务端可以通过 CORS 的方式解决,限于篇幅,关于跨域和 CORS 的详细介绍,读者朋友们可以自行查阅相关资料。,Go ... 网站建设# cors# gin# go 4年前390
Farseer-Go,一个模块化的完整基础设施框架 基于Golang模块化完整的基础设施框架,创建现代化Web应用和APIs。,使用目前最为流行的组件,并用模块化技术来提供这些组件。,框架完美支持 DDD领域驱动 的战术设计,如仓储资源库、应用层事务... 网站建设# farseer# go# 框架 4年前550
Go 语言 context 优秀实践 Go 语言在 v1.7 引入 context 包,关于它的使用方式,我们在之前的文章中已经介绍过,感兴趣的读者朋友们可以翻阅。,本文我们介绍 context 包的最佳实践,包括传值、超时和取消。,我们... 网站建设# context# func# go 4年前180
Go 语言创始人:复制亿点点代码比用别人轮子好! 大家好,我是煎鱼。,平时我们经常会进行网上冲浪,学习经验、知识以及吃瓜。在代码界,还有同学调侃我们就是 c+v (复制粘贴)工程师。,我的专用快捷键:,,在 Go 语言中,有一句谚语也指出了 ”复制... 网站建设# go# little# uuid 4年前120
彻底理解闭包实现原理 ,闭包对于一个长期写 Java 的开发者来说估计鲜有耳闻,我在写 Python 和 Go 之前也是没怎么了解,光这名字感觉就有点"神秘莫测",这篇文章的主要目的就是从编译器的角度来分析闭包,彻底搞懂闭... 网站建设# go# 函数# 变量 4年前460
结合项目解答使用Go中间件遇到的问题:中间件的概念和应用 在服务端开发中,“中间件”是大家一定会听到的名词。,初学者听起来觉得很高大上,觉得很难,其实“中间件”并不难,对我们学习Go语言来说,使用中间件也没有太多心智挑战。,“中间件”它并没有很严格的定义,但... 网站建设# go# goframe# 中间件 4年前500