- 博客(19)
- 收藏
- 关注
原创 go设计模式教程之:单例模式
单例模式(Singleton Pattern)是一种设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个唯一的实例。单例模式在很多情况下都是有用的,特别是当一个对象需要跨系统共享数据时,或者当创建对象需要消耗大量资源时(如访问数据库的连接对象)。单例模式的关键是私有化其构造函数,以防止外部通过new操作符创建类的实例,同时提供一个公共的静态方法用来获取这个唯一实例。
2024-01-31 21:42:34
1035
4
原创 go设计模式教程之:观察值模式
观察者模式(Observer Pattern),也称为发布-订阅(Publish-Subscribe)模式,是一种常用的设计模式,属于行为型模式。这种模式用于建立对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。主题(Subject):主题是观察者模式中的核心。它维护一系列观察者,提供用于增加或删除观察者的方法,并在其内部状态发生变化时通知所有观察者。观察者(Observer):观察者订阅主题的状态变化。
2024-01-31 21:35:21
841
1
原创 go泛型介绍
在 Go 1.18 版本中,Go 语言引入了对泛型的支持,这是一种在类型之间共享代码的方式。泛型是一种编程语言特性,允许开发者在多种类型之间共享代码。这意味着开发者可以创建一个函数或类型,而不必指定所有可能的输入类型。相反,这些类型可以在函数或类型被实际使用时指定。这允许更高的代码重用性和类型安全性。
2023-11-09 21:30:08
127
1
原创 数据库的列索引有什么作用,怎么设置,有哪些要求
创建索引:在表的列上创建索引,可以使用数据库管理系统提供的命令或者图形界面工具来完成。一般来说,可以通过指定要创建索引的列名和索引类型来创建索引。修改索引:可以修改索引的定义,例如修改索引的列、索引类型等。需要注意的是,过多或不必要的索引可能会导致性能下降和额外的存储开销。选择性越高,索引的效果越好。删除索引:如果不再需要某个索引,可以使用数据库管理系统提供的命令或者图形界面工具来删除索引。频繁修改索引列的值会导致索引的维护成本增加。唯一性:索引的值必须是唯一的,即每个索引值只能对应一个数据行。
2023-08-29 22:10:30
270
1
原创 服务端开发时,数据库记录删除为什么采用逻辑删除不用物理删除
在某些情境中,逻辑删除是最佳选择,而在其他情境中,物理删除可能更为合适。: 新的开发人员可能不知道逻辑删除的概念或如何正确处理逻辑删除的记录,这可能导致数据的不一致或其他问题。: 通过先进行逻辑删除,然后在低流量时段批量进行物理删除,可以确保应用的性能不会在高峰时段受到影响。: 物理删除是永久性的,而逻辑删除为开发者和数据库管理员提供了一个安全网,以防止不正确的删除操作。: 在关系型数据库中,如果一个表的记录作为其他表的外键存在,那么物理删除可能会引发外键约束问题。
2023-08-29 21:50:16
626
1
原创 gorm学习笔记01
(3) 定义结构体(参考gorm.io文档的预览tab页内容),使用AutoMigrate将go结构体同步到数据库表结构,注意在定义结构体时,默认需要添加一个参数。是一个用于快速同步数据模型与数据库表结构的工具,但在部署到生产环境之前,建议仔细检查和测试迁移。go mod初始化 go mod init gostudy2023。结构体,并确保数据库中存在相应的表和列。(1) 配置全局logger。
2023-08-28 23:17:30
166
1
原创 mysql如何查询数据库里的表
要在MySQL中查询数据库里的所有表,你可以使用。使用命令行工具登录到MySQL数据库。来选择你要查询的数据库。来查看该数据库中的所有表。
2023-08-28 23:08:33
6079
2
转载 golang package教程
Go语言中支持模块化的开发理念,在Go语言中使用包(package)来支持代码模块化和代码复用。一个包是由一个或多个Go源码文件(.go结尾的文件)组成,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmtosio等。例如,在之前的章节中我们频繁使用了fmt这个内置包。") }上面短短的几行代码就涉及到了如何定义包以及如何引入其它包两个内容,接下来我们依次介绍一下它们。我们可以根据自己的需要创建自定义包。一个包可以简单理解为一个存放.go文件的文件夹。该文件夹下面的所有.go。
2023-04-08 20:00:13
465
1
原创 grpc的四种数据流
grpc 中的 stream,srteam 顾名思义 就是 一种 流,可以源源不断的 推送 数据,很适合 传输一些大数据,或者 服务端 和 客户端 长时间 数据交互,比如 客户端 可以向 服务端 订阅 一个数据,服务端 就 可以利用 stream ,源源不断地 推送数据。
2023-03-28 22:08:27
281
原创 go gRPC入门
先安装protoc链接下载后将bin目录添加到pathprotoc本身并不支持Golang,需要额外安装对应的插件方法1,使用go install @latest安装方法2,在一个已经包含go.mod文件的项目里使用安装成功后,会在$GOPATH/bin目录下生成两个2进制文件参考 https://blog.csdn.net/weixin_42216109/article/details/125273585proto文件。
2023-03-27 23:44:20
100
1
转载 Go语言基础之map
Go语言中map其中,KeyType:表示键的类型。ValueType:表示键对应的值的类型。map类型的变量默认初始值为nil,需要使用make()函数来分配内存。其中cap表示map的容量,该参数虽然不是必须的,但是我们应该在初始化map的时候就为其指定一个合适的容量。
2022-11-07 16:16:16
196
转载 Go语言基础之切片
其中,name:表示变量名T:表示切片中的元素类型// 声明切片类型 var a [ ] string //声明一个字符串切片 var b = [ ] int {} //声明一个整型切片并初始化 var c = [ ] bool {false , true } //声明一个布尔切片并初始化 var d = [ ] bool {
2022-11-07 15:37:56
226
原创 go数组用法
go支持数组类型,数组是同一种数据类型元素的集合。使用时可以修改数组成员,但是数组大小不可变化。数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变。数组可以通过下标进行访问,下标是从0开始,最后一个元素下标是:len-1,访问越界(下标在合法范围之外),则触发访问越界,会panic。
2022-11-07 12:34:18
362
转载 go语言基础之基本数据类型
Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。Go 语言的基本类型和其他语言大同小异。
2022-11-07 10:42:02
73
原创 go开发环境安装
Go 语言是由谷歌公司在 2007 年开始开发的一门语言,目的是能在多核心时代高效编写网络应用程序。Go 语言的创始人 Robert Griesemer、Rob Pike 和 Ken Thompson 都是在计算机发展过程中作出过重要贡献的人。自从 2009 年 11 月正式公开发布后,Go 语言迅速席卷了整个互联网后端开发领域,其社区里不断涌现出类似 vitess、Docker、etcd、Consul 等重量级的开源项目。
2022-11-04 13:12:39
1480
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人