Go基础篇:接口 前言✨ 前段时间忙着春招面试,现在也算告一段落,找到一家比较心仪的公司实习,开始慢慢回归状态,这后面几章我会学习go1.19版本的语言特性或者机制:类型系统、接口、断言以及反射的内容,也算是补上之前没有深入底层的内容。 一、什么是接口?Go语言中的接口(interface)是一种类型,它定义了一组方法的集合,但没有具体的实现。接口可以被任何类型实现,只要该类型实现了接口中定义的所有方法。这种设计 2023-05-17 Go基础入门 #golang #后端
Go基础篇:类型系统 前言✨ 前段时间忙着春招面试,现在也算告一段落,找到一家比较心仪的公司实习,开始慢慢回归状态,这后面几章我会学习go1.19版本的语言特性或者机制:类型系统、接口、断言以及反射的内容,也算是补上之前没有深入底层的内容。 一、什么是类型?类型的概念在不同的编程语言之间是不同的,可以用许多不同的方式来表达,但都有一些相同点。 类型是用来定义变量、常量、函数参数、函数返回值等值的属性; 在定义的变量 2023-04-28 Go基础入门 #golang #后端
Go基础:数据结构(定义和go语言实现) 前言 最近在刷leetcode的每日一题的,总会碰到一些问题,因为竞赛时用惯了c++的STL库,有数据结构的实现,可以直接使用,到现在用go总会遇到头疼的事情就是用到数据结构的时候需要自己定义结构并且实现方法,刚好这几天笔试里面也有关于数据结构的题目,所以这一篇主要来讲一下数据结构 一、数组 (Array)数组是一种线性数据结构,它由相同类型的元素组成,每个元素可以通过下标访问。在Go语言中,数 2023-04-24 Go基础入门 #学习 #golang #数据结构 #算法
Go底层原理:一起来唠唠GMP调度(一) 前言 春招开始了,作为23届的科班咸鱼学习记录一下八股文和go底层原理(GC、GMP调度、goroutine等)本文介绍 Go 语言运行时调度器的实现原理,其中包含调度器的设计与实现原理、演变过程以及与运行时调度相关的数据结构。参考几篇不错的文章:mingguangtu《深入分析Go1.18 GMP调度器底层原理》刘丹冰Aceld《Golang 调度器 GMP 原理与调度全分析》 一、进程、线程 2023-04-24 Go基础入门 #学习 #golang #后端 #GMP调度
Go基础入门:sort包 前言 切片是Go语言中引入的用于在大多数场合替代数组的语法元素。切片是长度可变的同类型元素序列,它不支持存储不同类型的元素。有序列的地方就有排序的需求。在各种排序算法都已经成熟的今天,我们完全可以针对特定元素类型的切片手写排序函数/方法,但多数情况下不推荐这么做,因为Go标准库内置了sort包可以很好地帮助我们实现原生类型元素切片以及自定义类型元素切片的排序任务。 一、sort包简介G 2023-04-24 Go基础入门 #golang #后端 #排序算法
gRPC(八)生态 grpc-gateway 应用:同一个服务端支持Rpc和Restful Api 前言 示例代码已经上传到github:点击跳转gRPC官方文档:点击跳转grpc-gateway官方文档:点击跳转源自 coreos 的一篇博客,转载到了 gRPC 官方博客 gRPC with REST and Open APIs。 一、gRPC-Gateway概述1、简述 取自官方概述:grpc-gateway is a plugin of protoc. It reads gRPC ser 2022-11-10 gRPC学习 #学习 #go #微服务 #grpc #grpc-gateway
gRPC(七)进阶:自定义身份验证 前言 示例代码已经上传到github:点击跳转gRPC官方文档:点击跳转在前面的章节中,我们介绍了两种可全局认证的方法: 基于 CA 的 TLS 证书认证 拦截器 interceptor 而在实际需求中,常常会对某些模块的 RPC 方法做特殊认证或校验,而gRPC也专门提供了这类特殊认证的接口。 一、概述gRPC为每个gRPC方法调用提供了Token认证支持,可以基于用户传入的Token判断 2022-11-08 gRPC学习 #学习 #go #微服务 #grpc
gRPC(六)进阶:拦截器 interceptor 前言 示例代码已经上传到github:点击跳转gRPC官方文档:点击跳转 一、拦截器概述1、什么是拦截器?在常规的 HTTP 服务器中,我们可以设置有一个中间件将我们的处理程序包装在服务器上。此中间件可用于在实际提供正确内容之前执行服务器想要执行的任何操作,它可以是身份验证或日志记录或任何东西。 中间件:中间件供系统软件和应用软件之间连接、便于软件各部件之间的沟通的计算机软件,相当于不同技 2022-11-07 gRPC学习 #学习 #go #微服务 #grpc
gRPC(五)进阶:通过TLS建立安全连接 前言 示例代码已经上传到github:点击跳转gRPC官方文档:点击跳转 一、明文传输先前的例子中 gRPC Client/Server 都是明文传输的,在明文通讯的情况下,你的请求就是裸奔的,有可能被第三方恶意篡改或者伪造为“非法”的数据。 我们抓个包查看一下:是明文传输,后面我们开始gRPC通过 TLS 证书建立安全连接,让数据能够加密处理,包括证书制作和CA签名校验等。 二、TL 2022-11-03 gRPC学习 #学习 #go #微服务 #grpc
gRPC(四)基础:gRPC流 前言 这章的内容需要安装好插件和protoc,建议阅读我的上一篇grpc使用篇示例代码已经上传到github:点击跳转gRPC官方文档:点击跳转 一、gRPC的请求模型gRPC 有两种类型的请求模型: 一元 - 直接的请求响应映射在 HTTP/2 请求响应之上。 简单来说一元就是一个简单的 RPC,其中客户端使用存根向服务器发送请求并等待响应返回,就像正常的函数调用一样。 1rpc Sa 2022-11-03 gRPC学习 #学习 #go #微服务 #grpc