“Rust难学”只是一个谎言 近年来Rust的存在感日渐升高,但是其陡峭的学习曲线似乎总是令人望而生畏。不过谷歌的一项内部调查表明,关于Rust的“难学”或许只是一种谣传。,Rust到底难不难学?谷歌有了Go,为何还要支持Rust... 网站建设# c# go# rust 2年前2690
「Go开源包」requests:一个比net/http包更简洁、高效的开源包 大家好,这里是Go学堂。,今天给大家推荐一个高效的HTTP的请求包:carlmjohnson/requests。项目地址是:https://github.com/carlmjohnson/reques... 网站建设# go# http# net 2年前2340
Go 1.18 的那些事——工作区、模糊测试、泛型 作者 | 张闻阗,2022 年 3 月 15 日,Google 发布了万众瞩目的 Golang 1.18,带来了好几个重大的新特性,包括:,本文将简单讲述这三个特性的相关内容。,在实际的开发工作中,我... 网站建设# common# go# service 3年前1650
为什么说 Go 语言字符串是不可变的? 这个问题本身并不困难,但对于新手来说确实容易产生困惑,今天就来回答一下。 首先来看看它的底层结构: type stringStruct struct { str unsafe.Pointer len ... 网站建设# go# 代码# 前端 2年前1310
从Go log库到Zap,怎么打造出好用又实用的Logger 日志无论对于程序还是程序员都非常重要,有多重要呢,想要长期在公司健健康康的干下去就得学会阶段性划水,阶段性划水的一大关键的就是干活快过预期但是装作。。。不对,这个开头不对劲,下面重来。,日志无论对于程... 网站建设# go# logger# 日志 3年前1040
Python和Go,谁才是编程语言的“王者”? 技术迭代的速度越来越快,这一点在编程语言的更新变化中尤为明显。前不久,Python开发商Anaconda发布了PyScript,让Python应用可以在浏览器中运行。而在近日,开发者采用相同的思路让G... 网站建设# go# python# 浏览器 4年前870
先聊聊「内存分配」,再聊聊Go的「逃逸分析」 要搞清楚GO的逃逸分析一定要先搞清楚内存分配和堆栈:,内存分配既可以分配到堆中,也可以分配到栈中。,什么样的数据会被分配到栈中,什么样的数据又会被分配到堆中呢?,GO语言是如何进行内存分配的呢?其设计... 网站建设# go# 内存# 函数 4年前860
面试官:请你详细说说Go的逃逸分析 我们在之前有提到堆和栈的概念,要搞清楚GO的逃逸分析一定要先搞清楚堆栈的特点:,正如我们上面提到的,内存分配既可以分配到堆中,也可以分配到栈中。,那么什么样的数据会被分配到栈中,什么样的数据又会被分配... 网站建设# go# 内存# 分配 4年前850
Go语言负责人离职后,一门国产语言诞生了 上周,谷歌Go语言项目负责人Steve Francia宣布辞去职务,而他给出理由是:Go项目的工作停滞不前,让他感到难受。有意思的是,部分国内的Gopher(Go语言爱好者的自称)对Go语言也产生了... 网站建设# go# gopher# wago 4年前820
Go:Map 和 内存泄露 大家好,我是程序员幽鬼。分享一篇关于 map 和“内存泄露”的文章。,摘要:map 总是可以在内存中增长;它从不收缩。因此,如果它导致一些内存问题,你可以尝试不同的选项,例如强制 Go 重新创建 ma... 网站建设# go# map# 内存 5年前820
我敢打赌你一定没用过 Java 中的这个类! ,在 Java 中有这样的一个类,平时可能都用不到,但是需要的时候还是会很方便的,它就是 Java 中的javafx.util.Pair。在介绍 Pair 的使用之前我们先看看下面的例子。,如果对 P... 网站建设# go# java# pair 3年前760
Go 团队将修改 for 循环变量的语义,Go1.21 新版本即可体验! 大家好,我是煎鱼。,之前有提到 Go for 循环变量的问题,许多面试题和泄露与此有关。,Russ Cox(下称:rsc)甚至一度表示他一直在研究这个问题,认为当前语义的代价是很大的,想看看能不能进行... 网站建设# go# item# 变量 2年前740
谷歌官方正式发布了Go1.20稳定版「八千字详解」 Go1.20 变化不少,该版本依然保持 Go1 兼容性,我们可以升级到 Go1.20,而不需要做任何代码改动。,,可以使用你任何喜欢的方式升级:,比如:go install golang.org/d... 网站建设# go# 兼容性# 版本 4年前740
如何快速学一门新语言? 我花了半个月时间学习Go,就开发了商业项目,抗住了并发考验,并且成功被Go圈粉。,2022年初,入职新公司后,花了3天时间,学习GoFrame框架,提前完成了开发任务,在项目复盘会上成了同事口中的... 网站建设# go# 动手# 教程 3年前730
我们一起 Go Modules知识点,你学会了吗? 起初Go语言在1.5之前没有依赖管理工具,若想引入依赖库,需要执行go get命令将代码拉取放入GOPATH/src目录下,作为GOPATH下的全局依赖,这也就意味着没有版本控制及隔离项目的包依赖... 网站建设# go# gopath# vendor 4年前710
函数式编程在 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 数组和切片的介绍 了解使用数组和切片在 Go 中存储数据的优缺点,以及为什么其中一个更好。,在本文中,我将解释 Go 数组和切片,包括如何使用它们,以及为什么你通常要选择其中一个而不是另一个。,数组是编程语言中最流行的... 网站建设# go# 切片# 存储 3年前670
Go Gin框架请求自动验证和数据绑定,看完这篇就会用了 之前做项目基本上公司是用 gRPC 和 echo 这两个框架的组合,后来 Gin 框架在Go圈越来越流行,陆续我在公司接触到的项目也开始有人用 Gin 框架开发了。,因为我也是偶尔开发,像Gin框架里... 网站建设# gin# go# 参数 3年前670
Dubbo-go v3.0 正式发布-打造国内一流开源 Go 服务框架 Go 语言作为最流行的云原生语言,近些年拥有很高的热度,一度备受国内开源生态的关注,据笔者了解,众多企业也在近年来从自身传统技术栈转型 Go 语言技术栈。Go 以其开发敏捷、易用性高、入门较为容易... 网站建设# go# 开发# 开发工具 2年前660
搞清楚 Go Mod的版本和伪版本,下次别乱用了 今天再跟大家唠一下 Go Module 中软件包的版本和伪版本的内容,因为这是一个理想很丰满、现实很骨感的故事。,关于 Go Module 依赖包的软件版本,这块知识就很中规中矩啦,大部分资料里也都有... 网站建设# go# mod# module 4年前650
Go版本大于1.13,程序里这样做错误处理才地道 大家好,这里是每周都在陪你进步的网管。,之前写过几篇关于 Go 错误处理的文章,发现文章里不少知识点都有点落伍了,比如Go在1.13后对错误处理增加了一些支持,最大的变化就是支持了错误包装(Error... 网站建设# go# 包装# 知识点 4年前620
一文读懂 Go Http Server 原理 俗话说万事开头难,但用 Go 实现一个 Http Server 真不难,简单到什么程度?起一个 Server,并且能响应请求,算上包名、导入的依赖,甚至空行,也就只要 15 行代码:,这么简单,能与之... 网站建设# go# http# server 3年前600
深入理解 Go 语言的一等函数及其应用 任何一门编程语言都离不开函数,无论是命令式语言 C、多范式编程语言 C++,还是面向对象编程语言 Java、Ruby,动态语言 Python、JavaScript,函数这一语法元素都是当仁不让的核心... 网站建设# go# 一等# 函数 4年前600
Go编程语言的真正优点是什么? 在其十多年的发展历程中,Google 的Go 语言(又名Golang )已经从极客的好奇心发展成为一些重要云中心项目背后久经考验的编程语言。,,为什么Docker和Kubernetes等项目的开发者会... 网站建设# go# 编程语言# 语言 4年前590
GO 编程:Go 应用内存占用太多,如何排查 前段时间,某同学说某服务的容器因为超出内存限制,不断地重启,问我们是不是有内存泄露,赶紧排查,然后解决掉,省得出问题。我们大为震惊,赶紧查看监控+报警系统和性能分析,发现应用指标压根就不高,不像有泄露... 网站建设# go# vsz# 内存 4年前580
Go 语言为什么建议 append 追加新元素使用原切片变量接收返回值? 在 Go 语言中,切片类型比较常用,将新元素追加到切片也比较常见,因此 Go 语言提供一个内置函数 append,该函数可以非常方便实现此功能。,虽然 Go 语言内置函数 append 使用非常方便... 网站建设# append# go# 内置 4年前570
聊聊B-Tree的Golang实现 这次准备出一个关于B树的合集。在第一部分,先来介绍下B树的基本概念。,B树与bst等二叉树不同,B树是多叉树,而且B树是自平衡树。B树的Search、Insert、Remove算法时间复杂度都是O(l... 网站建设# a# b# ee 4年前560
PHP vs Go,为什么 Go 不支持命名参数调用函数? 大家好,我是煎鱼。,之前在《Go 语言设计哲学[1]》电子书中分享了《为什么 Go 不支持函数重载和缺省参数?》的思考和原因。最近有一位从其他编程语言转型 Go 的同学提出了如下灵魂拷问... 网站建设# go# php# 参数 5年前560
Go 语言内存逃逸案例 在「Go 语言逃逸分析」中,我们了解到内存分配的相关知识,栈空间分配开销小,堆空间分配开销大。,Go 语言编译器可以通过逃逸分析决定内存分配到栈空间或堆空间。但是,分配到栈空间的对象在某些情况中会逃逸... 网站建设# go# 内存# 分配 4年前550
Go for 循环有时候真的很坑。。。 大家好,我是煎鱼。,不知道有多少 Go 的面试题和泄露,都和 for 循环有关。今天我在周末认真一看,发现了 redefining for loop variable semantics[1] ,看来... 网站建设# go# item# 代码 4年前550
Farseer-Go,一个模块化的完整基础设施框架 基于Golang模块化完整的基础设施框架,创建现代化Web应用和APIs。,使用目前最为流行的组件,并用模块化技术来提供这些组件。,框架完美支持 DDD领域驱动 的战术设计,如仓储资源库、应用层事务... 网站建设# farseer# go# 框架 4年前550
Go语言开发者的Apache Arrow使用指南:高级数据结构 经过对前面两篇文章《Arrow数据类型》[1]和《Arrow Go实现的内存管理》[2]的学习,我们知道了各种Arrow array type以及它们在内存中的layout,我们了解了Go arrow... 网站建设# array# arrow# go 2年前540
Google 公布 2022 年度最热门 Chrome 扩展 Google 从去年开始一直在大力推行 Manifest V3 扩展,虽然遭到了不少外部阻力,但这并没有影响 Chrome 扩展程序生态的繁荣。那么在过去一年,有哪些扩展脱颖而出,获得了 Google... 网站建设# c# chrome# g 3年前540
简单易懂的 Go 泛型使用和实现原理介绍 本文是对泛型的基本思想及其在 Go 中的实现的一个比较容易理解的介绍,同时也是对围绕泛型的各种性能讨论的简单总结。首先,我们来看看泛型所解决的核心问题。,假设我们想实现一个简单的 tree 数据结构... 网站建设# go# 实现# 泛型 3年前540
一款好用的 Go 调用链可视化工具 在接手他人代码或调研一些开源项目时,如果能够理清其中的代码调用链路,这将加速我们对实现的理解。,本文介绍一款工具 go-callvis,它能够将 Go 代码的调用关系可视化出来,并提供了可交互式的 w... 网站建设# callvis# go# 代码 4年前530
从Go程序第一行代码,到在 K8s 上运行,要经历多少步? 大家好,我是网管。咱们的 K8s 入门和实践,在经历了三篇理论知识的后,相信各位都已经期待许久(可能的吧),就差私信我:“你整着理论整半天有啥用,本大人写的程序怎么能放到 K8s 上运行”。,别急,今... 网站建设# go# ks# 代码 4年前520
Go语言中的数据竞争模式 近年来,Uber已经开始采用Golang(简称Go)作为开发微服务的主要编程语言。目前,其Go monorepo(译者注:包含多个不同项目的单个仓库)包含了大约5,000万行代码,以及大约2,100个... 网站建设# go# goroutine# 共享内存 4年前520
如何使用jsFinder快速全面地获取目标应用的JavaScript文件 jsFinder是一款针对JavaScript文件的数据收集工具,该工具基于Go语言开发,是一个命令行工具,在该工具的帮助下,广大研究人员可以快速扫描目标网页以查找HTML源代码中链接的JavaScr... 网站建设# go# javascript# jsfinder 2年前510
PHP转Go,框架选什么? 这是一期会引起广泛讨论的内容,不亚于“PHP是世界上最好的语言”。,不管我们是否基于框架去开发,不管使用什么框架去开发。,6个字的内功心法一定要牢记:高内聚,低耦合。,不管是单体项目还是微服务,不管是... 网站建设# go# goframe# php 3年前500
在 Go 中生成随机的安全密码 你可以使用 Go 编程语言 提供的随机数生成器来生成由 ASCII 字符组成的难以猜测的密码。尽管本文中提供的代码很容易阅读,但是你仍需要了解 Go 的基础知识,才能更好地理解它。如果你是对 Go ... 网站建设# ascii# go# 字符 3年前500
记一次线上服务的内存泄露排查 ,在风和日丽的一天,本人正看着需求、敲着代码,展望美好的未来。突然收到一条内存使用率过高的告警。,告警的这个项目,老代码是python的,最近一直在go化。随着go化率不断上升,发现内存的RSS使用率... 网站建设# go# rss# 内存 3年前500
Go内存分配和逃逸分析-实践总结篇 大家好,我是阳哥。,上期内容给大家分享了:Go内存分配和逃逸分析-理论篇,这期内容带大家理论联系实践,详解Go逃逸分析的场景,我还找到了一个非常好用的在线协作工具,大家可以直接在线调试:ht... 网站建设# go# 内存# 分配 4年前500
现在还值得学 Go 编程语言吗? Golang,或简称“Go”,是一种较新的编程语言,最初于 2012 年发布。追溯到谷歌,许多人认为它是谷歌的内部语言。,曾经考虑过作为新程序员学习 Golang 吗?也许您是现有的开发人员,并希望将... 网站建设# go# golang# 值得 4年前500
Go try 新提案靠谱吗?想简化错误处理了 大家好,我是煎鱼。,今天煎鱼和大家一起打开来看看,这能把 Go 错误处理机制给掀开重整不。,来自 PingCAP 的提案作者 @Greg Weber 会干这事基于两个因素,一个是在《Go Develo... 网站建设# g# go# r 4年前500
结合项目解答使用Go中间件遇到的问题:中间件的概念和应用 在服务端开发中,“中间件”是大家一定会听到的名词。,初学者听起来觉得很高大上,觉得很难,其实“中间件”并不难,对我们学习Go语言来说,使用中间件也没有太多心智挑战。,“中间件”它并没有很严格的定义,但... 网站建设# go# goframe# 中间件 4年前500
微服务配置中心, 这个方案 Go 里用起来不输 SpringCloud 微服务架构设计模式里有一条讲到,要设计可配置的服务。把服务从单体架构细分成微服务后,所有配置属性都集中存储在一个位置,更易于管理。这个集中存储管理配置的地方,就是配置中心。,使用配置中心还有一个好处就... 网站建设# go# 中心# 方案 4年前490
Go原生插件使用问题全解析 本人在设计和落地基于Go原生插件机制的扩展开发产品时踩到了很多坑,由于这方面相关资料很少,因而借此机会做一个非常粗浅的总结,希望能对大家有所帮助。,本文只说问题和解决方案,不读代码。,通常而言,在计算... 网站建设# go# java# 插件 5年前490
Go中“哨兵错误”说法的由来及使用建议 大家好,我是渔夫子。,前些天有网友问我,在golang的错误处理中,“哨兵错误(sentinel error)”这个词的出处。之前我也只是在一些书籍和资料中见到过,也没深究。当这个网友问了我之后,就深... 网站建设# go# golang# 哨兵 2年前480
面试官:哥们,Go语言互斥锁了解到什么程度了? 哈喽,大家好,我是asong。,当提到并发编程、多线程编程时,都会在第一时间想到锁,锁是并发编程中的同步原语,他可以保证多线程在访问同一片内存时不会出现竞争来保证并发安全;在Go语言中更推崇由chan... 网站建设# go# 互斥# 并发 4年前470
几个提升Go语言开发效率的技巧,你学会几个? 哈喽,大家好,我是asong。,每门语言都有自己的语法糖,像java的语法糖就有方法变长参数、拆箱与装箱、枚举、for-each等等,Go语言也不例外,其也有自己的语法糖,掌握这些语法糖可以助我们提高... 网站建设# go# 参数# 语法 5年前470
彻底理解闭包实现原理 ,闭包对于一个长期写 Java 的开发者来说估计鲜有耳闻,我在写 Python 和 Go 之前也是没怎么了解,光这名字感觉就有点"神秘莫测",这篇文章的主要目的就是从编译器的角度来分析闭包,彻底搞懂闭... 网站建设# go# 函数# 变量 4年前460
Go 语言代码风格规范-指南篇 每门开发语言都会有其特有的风格规范(亦或指南),开发者遵循规范能带来显著收益,有效促进团队协作、减少 bug 错误、降低维护成本等。,Google 开源的 Google Style Guides ... 网站建设# go# google# 指南 4年前460
为什么我觉得GoFrame的Garray比PHP的Array还好用? 写过PHP的同学都知道 PHP的数组Array非常好用,特别灵活。,我在写PHP之前使用Java做安卓开发,在接触PHP的数组Array之后,直呼太香了!,而在学习Go基础知识的时候了解到Go的数组和... 网站建设# array# go# goframe 4年前460
Go语言将引入新型排序算法:Pdqsort 哈喽,大家好,我是asong。最近在逛Go仓库时看到了一个commit是关于排序算法的,即pdqsort排序算法,Go计划将在下一个版本中支持该排序算法,下面我们就具体来看一看这个事情;,commit... 网站建设# commit# go# pdqsort 3年前450
对 Go2 错误处理提案的批判 在 2018 年 8 月,官方正式公布了 Go 2 Draft Designs[2],其中包含泛型和错误处理机制改进的初步草案:,,Go 2 Draft Designs,下面是关键的 Go2 错误处理... 网站建设# check# draft# go 4年前450
技巧:如何在 Go 中编写准确的基准测试? 大家好,我是程序员幽鬼。,今天给大家带来一篇关于基准测试的文章。,一般来说,我们永远不应该猜测性能。在编写优化时,可能会有很多因素发挥作用,即使我们对结果有强烈的看法,测试它们也不是一个坏主意。然而... 网站建设# go# 准确# 基准 4年前450
Swift 与 Go:苹果与谷歌的较量 ,译者 | 布加迪,Go与Swift可谓是彼此的劲敌。这两种编程语言都由科技巨头开发。Swift由苹果开发,而Go由谷歌开发。这就是为什么这些编程语言的比较又可以称为苹果与谷歌之间的较量。我们知道,这... 网站建设# go# swift# 开发 5年前450
Goscript:Rust 实现的 Go 语言规范 Anaconda 开发商最近发布了 PyScript,这是一个可以让开发者在 HTML 中混写 Python 代码的框架,有人将其称为 “Python 版 JSP”。事实上,PyScript 底层采用... 网站建设# go# goscript# pyscript 3年前440
Go 语言开源项目使用的函数选项模式 在阅读 Go 语言开源项目的源码时,我们可以发现有很多使用 “函数选项模式” 的代码,“函数选项模式” 是 Rob Pike 在 2014 年提出的一种模式,它使用 Go 语言的两大特性,变长参数和... 网站建设# go# 代码# 函数 4年前440
如何用Go实现一个ORM 为了提高开发效率和质量,我们常常需要ORM来帮助我们快速实现持久层增删改查API,目前go语言实现的ORM有很多种,他们都有自己的优劣点,有的实现简单,有的功能复杂,有的API十分优雅。在使用了多个类... 网站建设# api# database# go 3年前430
照猫画虎把SpringBoot搬到K8s,居然翻船咧,体验到了Go在云原生的两个优势 这是我们K8s快速入门与实践的最后一篇啦,上一个实践篇里我们讲了怎么从写第一行代码开始到把 Go 服务部署到 K8s 上都有哪些步骤,每一步该怎么做。,今天这篇我们再更新一个怎么把 SpringBoo... 网站建设# go# ks# springboot 3年前430
分析了 700 万份工作需求,市场需求最高的八种编程语言是这些 ,在过去的 8 个月时间里(从 2021 年 10 月到 2022 年 6 月),DevJobsScanner 分析了超过 700 万份开发者工作需求,得出了目前行业需求量最高的 8 种编程语言。,需... 网站建设# devjobsscanner# go# 万份 4年前430
站在开发者的角度理解框架的设计思想 最近有好多读者私信我,为什么选择GoFrame做电商项目的开发?,原因很简单:,因为我司是用GoFrame做电商业务开发的,而且我司同事基本都是PHP转Go的。GoFrame可以说是非常适合PHPer... 网站建设# go# goframe# 开发 4年前430
【Go微服务】一文带你玩转ProtoBuf 在网络通信和通用数据交换等应用场景中经常使用的技术是 JSON 或 XML,在微服务架构中通常使用另外一个数据交换的协议的工具ProtoBuf。,ProtoBuf也是我们做微服务开发,进行Go进阶实战... 网站建设# go# json# protobuf 5年前430
这不会又是一个Go的BUG吧? hello,大家好呀,我是小楼。,最近我又双叒叕写了个BUG,一个线上服务死锁了,不过幸亏是个新服务,没有什么大影响。,出问题的是Go的读写锁,如果你是写Java的,不必划走,更要看看本文,本文的重点... 网站建设# bug# client# go 3年前420
在位6年,谷歌GO语言负责人突然宣布离职!曾带领MongoDB、Docker走向辉煌 失去了他,谷歌GO处境又将如何?,,,2016年9月15号,是Steve Francia加入谷歌GO团队的第一天。,,他在博客中写道,GO是他过去十年间的热爱,GO让他再次爱上了编程。,接下来就是一顿... 网站建设# go# 团队# 目标 4年前420
一篇学会 Go 的 TryLock 实现 在并发编程中,为了避免多线程同时读写共享资源,我们需要互斥。Go 标准库提供了互斥锁 sync.Mutex ,通过加锁 Lock() 方法和解锁 Unlock() 方法达到对共享资源的并发控制。,在之... 网站建设# go# trylock# 互斥 4年前420
Go 微服务框架 go-micro 使用客户端 RPC 调用服务端方法返回 408 怎么解决? 本文我们使用 go-micro 构建微服务的服务端和客户端,并使用 gin 集成客户端构建 HTTP Api,在代码中模拟客户端 RPC 调用服务端方法返回 408 的问题,以及怎么解决?,客户端输出... 网站建设# go# micro# 代码 5年前410
Go1.19 那些事:国产芯片、内存模型等新特性,你知道多少? 大家好,我是煎鱼。,感觉时间过得很快,Go1.18 发布没太久,泛型还在风风火火,看了看上次的投票结果,绝大部分同学还没有在生产环境应用泛型。,这不,Go1.19 Beta1 已经正式发布了。今天就由... 网站建设# atomic# go# 内存 3年前400
Go 语言官方依赖注入工具 Wire 使用指北 接触 Golang 有一段时间了,发现 Golang 同样需要类似 Java 中 Spring 一样的依赖注入框架。如果项目规模比较小,是否有依赖注入框架问题不大,但当项目变大之后,有一个合适的依赖注... 网站建设# go# golang# wire 4年前400
在项目里怎么给 GORM 做单元测试 真实的开发场景下我们的项目一般都会使用 ORM ,而不是原生的database/sql来完成数据库操作。在很多使用ORM工具的场景下,也可以使用go-sqlmock库 Mock数据库操作进行测试,今天... 网站建设# dao# go# gorm 4年前400
Go 框架 Gin 怎么实现允许前端跨域请求? 在前后端分离的项目中,前端在请求服务端提供的接口时,往往会遇到跨域请求的问题,服务端可以通过 CORS 的方式解决,限于篇幅,关于跨域和 CORS 的详细介绍,读者朋友们可以自行查阅相关资料。,Go ... 网站建设# cors# gin# go 4年前390
Go 程序里 if else 分支太多?试着用策略模式治理一下吧! 大家好,我是每周在这里陪你一起进步的网管。,上篇文章我给大家分享了设计模式中的模版模式,给大家讲了用模版模式在项目开发时提炼流程、减少重复开发的技巧。同时,在上一篇文章我也分享了我总结的一个暴论,那就... 网站建设# go# 模式# 策略 4年前380
Go1.20 那些事:PGO、编译速度、错误处理等新特性,你知道多少? 大家好,我是煎鱼。,最近 Go1.20 在 2 月初已经正式发布,来的挺早的,以往都是拖到月底的,我翻了好几篇,发现最后还是做了不少功能取舍,被迫放了某些新特性(例如:arena 等)的鸽子!,怀疑 ... 网站建设# go# 泛型# 特性 3年前370
Go1.20 将禁止匿名接口循环导入!这是一次打破 Go1 兼容性承诺的真实案例 大家好,我是煎鱼。,最近因为临近新版本发布节点,我在看 Go1.20 的新特性《spec: disallow anonymous interface cycles[1]》,发现了一个比较骚的操作... 网站建设# go# interface# 接口 4年前370
Go 十年了,终于想起要统一 log 库了! 大家好,我是煎鱼。,在日常工作中,打日志是很常见的动作。毕竟不打日志,从内部来讲,一旦出问题,定位、排查都会变的非常困难。谁也不想大半夜在那靠猜解决问题。,在其他方面,对日志的存储的内容、时长、安全均... 网站建设# go# log# 场景 5年前370
在 Go 里用 CGO?这 7 个问题你要关注! 大家好,我是煎鱼。,今天给大家分享的是 Go 谚语中的 Cgo is not Go[1],原文章同名,略有修改,原文作者是 @Dave Cheney。以下的 “我” 均指代原作者。,借用 JWZ 的一... 网站建设# cgo# go# 使用 5年前370
为什么 Go 不支持 []T 转换为 []interface 在 Go 中,如果 interface{} 作为函数参数的话,是可以传任意参数的,然后通过类型断言来转换。,举个例子:,不管是传 int 还是 string,最终都能输出正确结果。,那么,既然是这样... 网站建设# go# interface# 代码 5年前370
学会 Go 中的时间处理 作为程序员,我们经常需要对时间进行处理。在 Go 中,标准库 time 提供了对应的能力。,本文将介绍 time 库中一些重要的函数和方法,希望能帮助到那些一遇到 Go 时间处理问题就需要百度的童鞋... 网站建设# gmt# go# time 3年前360
Go 1.18 新增三大功能之一“工作区模式”介绍 Go 官方在 Go v1.11 新增 Go Modules 模式,并一直持续到 Go v1.16,每个版本的 Go Modules 模式都会有一些变化。但是,我们的项目使用 Go Modules 模式... 网站建设# git# go# modules 3年前340
你信吗?Go 泛型竟然已经被迅速采用 ,9 月 8 日,Go 语言社区发布 2022 年第二季度开发者调查报告,本次调研覆盖 5752 位受访开发者,主题涉及他们在使用 Go 1.18 全新功能特性(包括泛型、安全工具和工作区)时的真实感... 网站建设# go# 受访者# 图标 4年前340
Go 学习:那些不一样的知识点(上) ,在学习 Go 语言的过程中,会涉及到语法、数据结构、和一些 Go 特有的东西,其中有不少现在还印象深刻,本文就说说 Go 语言中那些不一样的地方。,上面示例是变量的声明方式,可以看到跟 C# 不同的... 网站建设# c# go# 代码 4年前340
Go 错误处理新思路?用左侧函数和表达式 大家好,我是煎鱼。,错误处理一直是 Go 一个很有争议的地方,大家在该类提案上贡献了各种各样的想法。在五一假期期间,我也发现了一个有趣的技术提案,那就是:左侧函数;还有 Go+ 的新思路。,今天就由煎... 网站建设# go# 左侧# 提案 4年前330
Go语言如何自定义linter(静态检查工具) 哈喽,大家好,我是asong;,通常我们在业务项目中会借助使用静态代码检查工具来保证代码质量,通过静态代码检查工具我们可以提前发现一些问题,比如变量未定义、类型不匹配、变量作用域问题、数组下标越界、内... 网站建设# go# 代码# 工具 3年前320
Go语言实现的可读性更高的并发神库 哈喽,大家好,我是asong;前几天逛github发现了一个有趣的并发库-conc,其目标是:,从简介上看主要封装功能如下:,接下来就区分模块来介绍一下这个库;,仓库地址:https://github... 网站建设# conc# go# 代码 4年前320
GoFrame的gmap相比Go原生的map,天然支持排序和有序遍历!? 有好多初学GO的小伙伴都被Go语言中map的无序性“坑过”。尤其是PHP转Go的小伙伴~,这篇文章会为大家介绍:,GoFrame的gmap相比于Go原生的map有什么优势?为什么天然支持排序和有序遍历... 网站建设# gmap# go# goframe 5年前320
网络工程师的Golang之路-布尔值、比较运算符、逻辑运算符 同Python一样,Go中布尔值(Boolean)分为true和false,用来判断条件是否成立,唯一的区别是Python中布尔值的首字母为大写(True和False),而Go中则为小写的true和f... 网站建设# go# python# true 5年前320
Go 学习:并发编程 ,Go 语言在创建之初,CPU 多核发展正猛,Go 语言的创始人果断将面向多核、原生支持并发作为了 Go 语言的设计目标之一,所以在 Go 语言中使用并发有得天独厚的优势。,那么,什么是并发呢?,聊到... 网站建设# go# 并发# 并行执行 4年前310
Go 学习:从环境搭建到写一个 Web 服务 ,最近学习了 Go 语言,做下记录。,和 C、C++ 相比, Go 是一门很年轻的语言。2007 年,在 Google 的内部,有三位大佬因为 C++ 的复杂性、构建编译速度很慢和对并发支持不好等原因... 网站建设# c# go# google 4年前310
【Go必知必会】错误和异常、CGO、fallthrough 这篇文章将详解「Go必知必会」的知识点:,错误指的是可能出现问题的地方出现了问题,比如打开一个文件时失败,这种情况在人们的意料之中,异常指的是不应该出现问题的地方出现了问题,比如引用了空指针,这种情... 网站建设# error# go# 壁纸 4年前310
Go1.21 速览:支持自定义 go.env 文件,可惜还是有所残缺 大家好,我是煎鱼。,不知道大家平时在调整 Go 环境变量是怎么设置的呢,还是说都用默认配置,又或是直接走 IDE 设置?,像以前最早时,有的同学是打开 ~/.zshrc,一番 vim 操作,设置好 e... 网站建设# env# go# 环境变量 2年前300
Go 语言源码级调试器 Delve Delve 是一个简单、强大和易用的 Go 语言源代码层级的调试器,也是 Go 官方推荐使用的调试器。,Delve 安装非常简单,如果读者朋友使用的是 Go 1.16 或更高版本,可以直接使用 go ... 网站建设# delve# go# 使用 3年前300
为什么 Go 用起来会难受?这六个坑你知道吗 在做新的应用选型时,我们会进行应用编程语言的选择,这时会纠结 Java、PHP、Go...各种,会思考有没有致命的问题,不能用?,可以明确的是,Go 没有非常致命的问题,否则你我他都不会在这里相遇,也... 网站建设# go# 泛型# 要不得 3年前300
Go 1.18 新增三大功能之一“模糊测试”使用方式 在 Go 1.18 之前,Go 语言支持功能测试、基准测试和示例测试,在 Go 项目开发中,使用最多的是功能测试,读者朋友们应该都比较熟悉功能测试的使用方式了。,在 Go 1.18 中,Go 语言新增... 网站建设# go# 功能测试# 模糊 3年前300
Go Scheduler 的 GMP 模型 ,Go 为了自身 goroutine 执行和调度的效率,自身在 runtime 中实现了一套 goroutine 的调度器,下面通过一段简单的代码展示一下 Go 应用程序在运行时的 goroutine... 网站建设# go# goroutine# 内核 4年前300
为什么说Go字符串不能修改 在接触Go这么语言,可能你经常会听到这样一句话。对于字符串不能修改,可能你很纳闷,日常开发中我们对字符串进行修改也是很正常的,为什么又说Go中的字符串不能进行修改呢?,本文就来通过实际案例给大家演示... 网站建设# go# 修改# 字符 4年前300
向 Swift 学习?Go 考虑简单字符串插值特性 大家好,我是煎鱼。,在日常开发 Go 工程中,我们经常会用 fmt.Printf 或 fmt.Sprintf 去写类似的拼装字符串的业务。,如下代码:,这业务迭代迭代着,日积月累的,有一部分常变的拼... 网站建设# fmt# go# 代码 4年前300
简化 Go 中对 JSON 的处理 我的第一个 Go 工程需要处理一堆 JSON 测试固件并把 JSON 数据作为参数传给我们搭建的 API 处理。另一个团队为了给 API 提供语言无关的、可预期的输入和输出,创建了这些测试固件。,在强... 网站建设# api# go# json 4年前300
Go进阶面试题详解 逃逸分析是Go语言中的一项重要优化技术,可以帮助程序减少内存分配和垃圾回收的开销,从而提高程序的性能。下面是一道涉及逃逸分析的面试题及其详解。,有如下Go代码:,请问上面的代码中,变量x是否会发生逃逸... 网站建设# go# 函数# 分配内存 2年前290