经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 Go语言
go-admin在线开发平台学习-4[细节解析]

go-admin在线开发平台学习-4[细节解析]

紧接着上一期的内容,继续对go-admin的一些细节进行解析。 通用的增删改查方法 在go-admin/common/actions下封装了通用的增删改查方法。在对这些方法进行说明前,先移步到另一个文件夹下go-admin/common/dto/generate.go&type...[2021/2/22]

源码读起来,Go源码共读计划

由来 随着云原生的越来越成熟,Go语言也顺其自然的被各大公司采用。 相信越来越多的人,或多或少的都了解或接触都一点点的GO。 同时,也有越多越多的应用,从其他的语言转到了Go语言的怀抱。 Go语法及其的精炼。 如果,你是有一定编程经验,那么上手Go,并开始用Go做一个简单的应用,...[2021/2/22]

golang的强制类型转换实现

golang是一种强类型语言,虽然在代码中经常看到这种写法,i:=10这其实这是编译器自动做了类型推断在编译期间。编译器会对数据进行类型检查。不同类型的数据不能赋值,不能在函数中传参。强类型语言有一些优势,很多的错误会在编译期间被检查出来,不想php和python等弱类型语言,很多错误只有运行到才...[2021/2/22]

golang 字符串比较是否相等的方法示例

golang字符串比较的三种常见方法 fmt.Println("go"=="go") fmt.Println("GO"=="go") fmt.Println(strings.Compare("GO","go")) fmt.Println(strings.Compare("go...[2021/2/22]

Golang使用WebSocket通信的实现

使用Golang能够创建WebSocket通信,只需要使用golang.org/x/net/websocket包即可,该包有可能被墙,无法使用go get下载,但是我们可以从golang中国提供的地址下载,然后将包放在对应的路径下。 WebSocket是一种通信协议,旨在改善HTTP作为无状态...[2021/2/22]

Golang 之区分类型别名与类型定义的方法

一、类型别名(Type Alias)、类型定义是什么? 类型别名 是 Go 1.9 版本添加的新功能。主要应用于代码升级、工程重构、迁移中类型的兼容性问题。C/C++ 语言中,代码的重构升级可以使用宏快速定义新的代码。Go 语言中并未选择通过宏,而是选择通过类型别名解决重构中最复杂的类型名变...[2021/2/22]

golang 中string和int类型相互转换

golang 中string和int类型相互转换

总结了golang中字符串和各种int类型之间的相互转换方式: string转成int: int, err := strconv.Atoi(string) string转成int64: int64, err := strconv.ParseInt(st...[2021/2/22]

Golang中的自定义类型之间的转换的实现(type conversion)

这里不讨论数值与字符串之间、或者整型与浮点型之间的转换。这里要讨论的是自定义类型之间的转换,这个转换与其他语言都不一样,而且在go的源码中也被大量使用。 这里列举两个实用的例子。 转换成实现了某个(些)接口的自定义类型 比如:sort包里面的IntSlice,是一个[]int的自定义...[2021/2/22]

[GO]使用go-smtp发送邮件通知

直接使用go-smtp包  ,为了防止乱码 , 主题subject进行了base64编码 import ( "encoding/base64" "github.com/emersion/go-sasl" "github.com/emersion/go...[2021/2/19]

go好用的类型转换第三方组件

Cast介绍 开源地址 https: github.com pf13/cast Cast是什么? Cast是一个库,以一致和简单的方式在不同的go类型之间转换。 Cast提供了简单的函数,可以轻松地将数字转换为字符串,将接口转换为bool类型等等。当一个明显的转换是可能的时,Cast...[2021/2/19]

golang官方嵌入文件到可执行程序

golang官方嵌入文件到可执行程序

目录前言示例程序嵌入文件直接访问嵌入文件列表总结 前言 在go官方出嵌入文件的方法前我在网上找过,并且自己还研究过,虽然没有问题,但是既然官方支持还是用起来吧。 看了下go源码embed/embed.go很简单,并且看embed/internal/embedtest/embed_...[2021/2/18]

go-admin在线开发平台学习-3[细节解析]

本章节主要的内容是对go-admin中的一些有趣编码进行分析,为自己以后提供一些借鉴 使用cli方式启动项目 使用cobra[眼镜蛇]完成强壮cli的工具,确保稳定。 使用cli的方式启动项目的好处显而易见,可以在进行配置的自定义化,而不是固定的使用某个配置文件中的信息。在一些需要频...[2021/2/18]

Go并发处理

写了一个web接口,想高并发的请求这个接口,进行压力测试,所以服务端就实现了一个线程池。 代码从网上理解了之后写的。代码实例 简单的介绍:   首先实现一个Job接口,只要有方法实现了Do方法即可   定义个分发器结构体,主要是WorkPool线程池,用于存储Worker的Job...[2021/2/18]

Go - 实现项目内链路追踪

Go - 实现项目内链路追踪

为什么项目内需要链路追踪?当一个请求中,请求了多个服务单元,如果请求出现了错误或异常,很难去定位是哪个服务出了问题,这时就需要链路追踪。 从图中可以清晰的看出他们之间的调用关系,通过一个例子说明下链路的重要性,比如对方调我们一个接口,反馈在某个时间段这接口太慢了,在排查代码发现逻辑...[2021/2/18]

模块一 GO语言基础知识-程序实体的那些事(上)

模块一 GO语言基础知识-程序实体的那些事(上)

我已经为你打开了 Go 语言编程之门,并向你展示了“程序从初建到拆分,再到模块化”的基本演化路径。 一个编程老手让程序完成基本演化,可能也就需要几十分钟甚至十几分钟,因为他们一开始就会把车开到模块化编程的道路上。我相信,等你真正理解了这个过程之后,也会驾轻就熟的。 上述套路是通用的,...[2021/2/18]

go-zero解读与最佳实践(上)

本文有『Go开源说』第三期 go-zero 直播内容修改整理而成,视频内容较长,拆分成上下篇,本文内容有所删减和重构。 大家好,很高兴来到“GO开源说” 跟大家分享开源项目背后的一些故事、设计思想以及使用方法,今天分享的项目是 go-zero,一个集成了各种工程实践的 web 和 ...[2021/2/18]

缓存设计的好,服务基本不会倒

本文由『Go开源说』第四期 go-zero 直播内容修改整理而成,视频内容较长,拆分成上下篇,本文内容有所删减和重构。 大家好,很高兴来到“GO开源说” 跟大家分享开源项目背后的一些故事、设计思想以及使用方法,今天分享的项目是 go-zero,一个集成了各种工程实践的 web 和 ...[2021/2/18]

graphql请求中的数据保护(illuminant)

graphql请求中的数据保护(illuminant)

概述 通过 graphql 请求数据时, where条件是自己写在graphql请求字符串中的, 所以获取多少数据后端无法控制, 比如 { blogs(where: {user_id: {_eq: "xxxxxx"}}){ id title content ...[2021/2/18]

go-admin在线开发平台学习-1[安装、配置、启动]

项目介绍 go-admin 是一个中后台管理系统,基于(gin, gorm, Casbin, Vue, Element UI)实现。主要目的是为了让开发者更专注业务,减少重复代码的编写,节省时间,提升人效,缩短项目周期,提升软件的开发效率以及质量。 下载项目 git clone h...[2021/2/18]

Go - 实现项目内链路追踪(二)

Go - 实现项目内链路追踪(二)

上篇文章 Go - 实现项目内链路追踪 分享了,通过 链路 ID 可以将 请求信息、响应信息、调用第三方接口的信息、调试信息、执行的 SQL 信息、执行的 Redis 信息 串起来,记录的具体参数在文件中都有介绍。 这篇文章在上面的基础上,新增 2 个功能点: 新增将 调用 gRPC...[2021/2/18]

Go string 一清二楚

前言 字符串(string) 作为 go 语言的基本数据类型,在开发中必不可少,我们务必深入学习一下,做到一清二楚。 本文假设读者已经知道切片(slice)的使用,如不了解,可阅读 Go 切片 基本知识点 为了更好的理解后文,推荐先阅读 Unicode 字符集,UTF-8 编码 ...[2021/2/18]

golang1.16新特性速览

今天是假期最后一天,明天起大家也要陆续复工了。golang1.16也在今天正式发布了。 原定计划是2月1号年前发布的,不过迟到也是golang的老传统了,正好也趁着最后的假期快速预览一下golang1.16的新特性吧。 本文索引 语言內建的资源嵌入支持 支持...[2021/2/18]

go-admin在线开发平台学习-2[程序结构分析]

go-admin在线开发平台学习-2[程序结构分析]

紧接着上一篇,本文我们对go-admin下载后的源码进行分析。 首先对项目所使用的第三方库进行分析,了解作者使用的库是否是通用的官方库可以有助于我们更快地阅读程序。接着对项目的main()方法进行分析,因为程序使用cli的方式启动,对cli不同的命令进行分析。基于此俩点开始工作。 go...[2021/2/18]

Go - httpclient 常用操作

httpclient 模块介绍 httpclient 是基于 net/http  封装的 Go HTTP 客户端请求包,支持常用的请求方式、常用设置,比如: 支持设置 Mock 信息 支持设置失败时告警 支持设置失败时重试 支持设置项目内部的 Trace 支持设置超时时间、H...[2021/2/1]

模块一 Go语言基础知识-命令源码文件

我们已经知道,环境变量 GOPATH 指向的是一个或多个工作区,每个工作区中都会有以代码包为基本组织形式的源码文件。 这里的源码文件又分为三种,即:命令源码文件、库源码文件和测试源码文件,它们都有着不同的用途和编写规则。     今天,我们就沿着命令源码文...[2021/2/1]

模块一 GO语言基础知识-库源码文件

你已经使用过 Go 语言编写了小命令(或者说微型程序)吗? 当你在编写“Hello, world”的时候,一个源码文件就足够了,虽然这种小玩意儿没什么用,最多能给你一点点莫名的成就感。如果你对这一点点并不满足,别着急,跟着学,我肯定你也可以写出很厉害的程序。 我们在上一篇的文章中学到...[2021/2/1]

Go遍历struct,map,slice

原文链接:http: www.zhoubotong.site/post/23.html 遍历结构体 如何实现遍历结构体字段? 好吧,言归正传!举个例子: demo1: package main import ( "fmt" "reflect" ) type Stud...[2021/2/1]

GO 语言入门(一)

GO 语言入门(一) 本文写于 2020 年 1 月 18 日 Go 由 Google 工程师 Robert Griesemer,Rob Pike 和 Ken Thompson 设计的一门编程语言,第一个版本于 2012 年 3 月作为开源发布。 它是一种静态类型的并发型编译语言,并...[2021/2/1]

在Golang中如何正确地使用database/sql包访问数据库

在Golang中如何正确地使用database/sql包访问数据库

本文记录了我在实际工作中关于数据库操作上一些小经验,也是新手入门golang时我认为一定会碰到问题,没有什么高大上的东西,所以希望能抛砖引玉,也算是对这个问题的一次总结。 其实我也是一个新手,机缘巧合几个月前开始做golang开发,以前一直是以.NET技术栈为主,文章如有错误不吝指正...[2021/2/1]

Go map定义的几种方式以及修改技巧

Go map定义的几种方式以及修改技巧

原文链接:http: www.zhoubotong.site/post/24.html 直入正题,我们看下以下代码: package main import ( "encoding/json" "fmt" ) func main() { 第一种声明 va...[2021/2/1]

微服务实践之分布式定时任务

承接上篇:上篇文章讲到改造 go-zero 生成的 app module 中的 gateway & RPC 。本篇讲讲如何接入 异步任务 以及 log的使用。 Delay Job 日常任务开放中,我们会有很多异步、批量、定时、延迟任务要处理,go-zero中有 go-queue...[2021/2/1]

Go基础及语法(四)

目录结构体匿名结构体构造函数方法和接收者结构体的值结构体的嵌套和匿名字段JSON序列化与反序列化 结构体 package main import "fmt" 定义结构体 type person struct { name string age int } func ma...[2021/1/25]

企业项目迁移go-zero全攻略(一)

作者:Mikael 最近发现 golang 社区里出了一个新兴的微服务框架。看了一下官方提供的工具真的很好用,只需要定义好 .api 文件模版代码都可以一键生成,只需要关心业务;同时 core 中的工具极大减少了开发成本。 废话不多说,来看看这个微服务框架:go-zero 起源 聊聊...[2021/1/25]

创建并使用https证书

创建并使用https证书

目录前言产生证书测试https服务器用tls加密tcp连接总结 前言 https要比http更安全些,因此可以配置Nginx服务器使用证书,客户端就会去第三方平台校验证书。 但是我们自己的服务器和客户端只是想要加个密而已,也没必要跑去第三方平台校验证书,省钱方便。 因此研究了一...[2021/1/25]

[系列] Go - 基于 GORM 获取当前请求所执行的 SQL 信息

前言 为了便于精准排查问题,需要将当前的请求信息与当前执行的 SQL 信息设置对应关系记录下来,记录的 SQL 信息包括: 执行 SQL 的当前时间; 执行 SQL 的文件地址和行号; 执行 SQL 的花费时长; 执行 SQL 的影响行数; 执行的 SQL 语句; 数据库组件使用的...[2021/1/25]

别再问我们用什么画图的了!问就是excalidraw

每次发 https: github.com/tal-tech/go-zero 相关文章时,都会有读者问我们用什么画图的。 这图什么工具画的呀?好看! 这个手绘风格真好看,用啥工具画的呀? 可不可以介绍下这个画图的工具? 诸如此类的问题,所以我决定写篇短文介绍下我们最常用的画图...[2021/1/25]

隐藏进程命令行参数,例如输入密码等高危操作

目录前言复写argv参数获取标准输入总结 前言 启动程序很多时候用命令行参数可以很方便,做到简化一些配置,但是输入用户名密码等操作,如果通过进程查看工具直接看到密码就太不安全了。 因此很有必要研究如何隐藏命令行参数中的某些字段,当然做成配置文件也是极好的,但是无疑给运行程序增加额...[2021/1/25]

深入理解原子操作的本质

原文地址:https: blog.fanscore.cn/p/34/ 引言 本文以go1.14 darwin/amd64中的原子操作为例,探究原子操作的汇编实现,引出LOCK指令前缀、可见性、MESI协议、Store Buffer、Invalid Queue、内存屏障,通过对CPU体系...[2021/1/25]

文件下载上传小工具

目录前言源码鉴赏食用方法 前言 虽然现在文件上传下载工具多如牛毛,比如http、ftp、sftp、scp等方案都可以用于文件传输,但都是需要安装服务器甚至客户端。 有一种场景是我只需要临时上传或下载一个文件,完了就不用服务器运行了,如果使用那些文件传输工具,不光安装麻烦,开启关闭...[2021/1/25]

模块一 Go语言基础知识-工作区和GOPATH

我们学习 Go 语言时,要做的第一件事,都是根据自己电脑的计算架构(比如,是 32 位的计算机还是 64 位的计算机)以及操作系统(比如,是 Windows 还是 Linux),从Go 语言官网下载对应的二进制包,也就是可以拿来即用的安装包。 随后,我们会解压缩安装包、放置到某个目录、...[2021/1/25]

企业项目迁移go-zero全攻略(二)

承接上篇:上篇文章讲到 go-zero 架构设计和项目设计。本篇文章接着这个项目设计,将生成的 app 模块 中 gateway 和 RPC 进行改造。废话不多说,让我们开始! gateway service gateway 中我做了一些自定义,在端请求我们后台接口情况下,虽然多数情况...[2021/1/25]

【Go从学会到学废】(一) 下载、安装、配置

【Go从学会到学废】(一) 下载、安装、配置

一、下载 Go语言官方网站地址https: golang.google.cn/ Go语言中文网下载地址https: tudygolang.com/dl 二、安装 双击安装包,一直下一步就行 安装完成 三、配置 1.配置Go运行目录 2.配置GoP...[2021/1/18]

【Go从学会到学废】(零) Golang简介

Go 语言简介 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Ru Cox等人,并最终于2009年...[2021/1/18]

[labuladong算法小抄]如何k个一组反转链表

[labuladong算法小抄]如何k个一组反转链表

摘自labuladong算法小抄,使用go语言重新描述 之前的文章「递归反转链表的一部分」讲了如何递归地反转一部分链表,有读者就问如何迭代地反转链表,这篇文章解决的问题也需要反转链表的函数,我们不妨就用迭代方式来解决。 本文要解决「K 个一组反转链表」,不难理解:  ...[2021/1/18]

Windows下如何玩转火热的go-zero

作者:阿啄debugIT 前言 go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。 go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 api 文件一键生成 Go, iOS...[2021/1/18]

GO 语言 error handing

GO 语言 error handing

Error handling and Go https: blog.golang.org/error-handling-and-go     文章来源:刘俊涛的博客 欢迎关注公众号、留言、评论,一起学习。 _______________...[2021/1/18]

深入理解Go Context

在Go语言并发编程中,用一个goroutine来处理一个任务,而它又会创建多个goroutine来负责不同子任务的场景非常常见。如下图 这些场景中,往往会需要在API边界之间以及过程之间传递截止时间、取消信号或与其它请求相关的数据 谁是性能卡点呢?得通知它们任务取消了。 这...[2021/1/18]

我为什么要做开源项目 -- illuminant

在做 illuminant 这个开源项目之前, 一直在寻找一种能够满足以下要求的Web接口开发方式: 能够避免编写各种繁琐的业务接口 能够避免编写业务接口的测试代码 业务变化时, 能够方便的调整数据库(不用为了兼容之前的接口而各种hack, 弄的数据库字段乱七八槽) 尽量避免写各种数据...[2021/1/18]

golang遍历时修改被遍历对象

目录前言遍历切片遍历map总结 前言 很多时候需要将遍历对象中去掉某些元素,或者往遍历对象中添加元素,这时候就需要小心操作了。 对于go语言中的一些注意事项我做了总结和示例,留下点笔记。 遍历切片 遍历切片时去掉元素,错误示例: func main() { arr...[2021/1/18]

[Go] golang中接口值(interface)的比较

当写项目的过程中 , 有时候进行逻辑判断 , 如果没注意对两个interface类型的变量进行比较 , 会造成混乱问题 接口比较的时候 , 只有当这两个变量的动态类型 , 动态值都相等的时候 , 才是相等的 一个nil的interface类型 , 是包含下面俩的 , 动态类型和动态值...[2021/1/18]

347
2
记录数:724 页数:1/1512345678910下一页尾页
加载更多
 友情链接: NPS