自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

枫枫知道的个人博客

全网都叫枫枫知道

  • 博客(97)
  • 收藏
  • 关注

原创 又一个goweb框架——fiber框架

本文介绍了Go Fiber框架的核心特性与使用方法。作为基于fasthttp的高性能Web框架,Fiber提供比Gin更优的性能表现。主要内容包括:1) 基础路由配置与HTTP方法处理;2) 多种响应格式(JSON/HTML/文件)的实现;3) 路由分组和动态路由功能;4) 参数绑定与校验方案;5) 中间件机制及其应用场景;6) 官方提供的实用中间件(CORS/JWT/限流等);7) WebSocket支持;8) 静态文件处理优化;9)全局配置选项。文章特别对比了Fiber与Gin的关键差异,突出Fiber

2025-11-06 09:40:59 722

原创 mongodb基础教程

MongoDB是一种灵活的NoSQL数据库,支持JSON格式文档存储,适用于结构多变的数据场景。本文介绍了MongoDB的安装配置、基本操作命令(增删改查)、聚合查询等核心功能,以及Go语言操作MongoDB的示例代码。特别适合CMS、社交应用、IoT等需要快速迭代的业务场景。相比关系型数据库,MongoDB无需预先定义表结构,支持水平扩展,提供高效的文档查询能力。文中还详细讲解了索引优化、权限管理和数据导入导出等高级功能,为开发者提供全面的MongoDB使用指南。

2025-11-06 09:37:45 662

原创 go wire自动注入框架

本文介绍了在Go项目中使用依赖注入替代全局变量模式的必要性及Wire工具的具体应用。主要内容包括:1. 传统全局变量模式存在的问题:高耦合、依赖不透明;2. 手动依赖注入的实现方式;3. Wire工具的使用方法,包括wire.Build、NewSet、Struct等关键功能;4. 通过Wire自动生成依赖注入代码的优势,能有效解决依赖链变长的维护问题。文章以Gin+Gorm项目为例,详细演示了从全局变量模式迁移到依赖注入模式的具体实现过程。

2025-11-04 10:16:44 983

原创 发布go第三方包

本文介绍了如何发布Go语言第三方包:先在GitHub创建公开项目并克隆到本地,使用go mod init初始化项目。建议将代码平铺在根目录下以便调用,推送代码后通过git tag和git push origin命令打标签并发布版本(如v1.0.1)。用户可通过go get获取最新版或指定版本。文档还提供了参考链接,并鼓励用户提交issue参与改进。

2025-11-04 10:12:42 293

原创 golang24种设计模式——创建型模式

抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。它适用于需要创建一组相关产品的场景。特点每个工厂类可以创建多个相关产品。强调产品族的概念,例如 GUI 库中的不同风格组件(Windows 风格、Mac 风格)。适用场景需要创建一组相关对象的场景。// DBConnection 抽象产品:数据库连接接口// DBCommand 抽象产品:数据库命令接口// MySQLConnection 具体产品:MySQL 连接。

2025-01-10 16:47:59 876

原创 PostgreSQL入门教程

PostgreSQL是一个免费的对象-关系数据库PG号称是“开源界的Oracle”postgresql官网全球数据库排行榜国产数据库排行中国数据库排行 - 墨天轮很多都是基于PGSQL开发的,“信创”趋势学习本课程的前置知识会docker会mysql。

2025-01-10 16:46:03 998

原创 1.docker基础课程-docker安装

如今,docker的使用已是越来越广泛熟练的掌握docker的使用已经是作为后端开发工程师必不可少的技能之一了。

2024-10-18 10:57:32 1090

原创 go语言的嵌入功能 ebmed

我们都知道,go编译的程序非常适合部署我们一般编译出来的可执行二进制文件都是单个的文件,非常适合复制和部署还能通过交叉编译在windows上开发编译到linux平台使用简直不要太爽但是我们在项目中可能还会用到静态文件,这些是不会编译到二进制程序中去的例如项目的配置文件例如项目运行中需要读取的文件如果这些文件也可以被打包到二进制文件里面,那就太美妙了,编译之后直接一个可执行文件即可搞定。

2024-10-18 10:54:16 631

原创 8.gorm基础新-配置

本门课程没有在一开始就讲一大堆gorm的配置那是因为尽可能实现约定大于配置如果按照gorm的约定来是编写代码,那么就可以省去很多配置项。

2024-10-11 10:21:15 443

原创 7.gorm新-自定义数据类型

json数据用的比较多// Scan 实现 sql.Scanner 接口,Scan 将 value 扫描至 Jsonbif!ok {return err// Value 实现 driver.Valuer 接口,Value 返回 json value注意:这里千万不要自作聪明,去改指针方法或者接受者方法,Scan是指针方法,Value是接受者方法插入数据ID int64Name: "枫枫",Age: 21,Addr: "湖南长沙",

2024-10-11 10:17:48 1054

原创 6.gorm基础-多表关系(超重要)

就是用户与文章的多对多关系表结构ID int64ID int64重点是many2many:生成表的名称要和第三张表的名称要对上然后joinForeignKey对应的是本表的ID,例如用户表的joinForeignKey就是UserIDJoinReferences对应的是对方表的ID,用户表的JoinReferences就是ArticleID然后就是要添加SetupJoinTable,不然是不会走第三张表的创建钩子// 必须要加这个才会走第三张表的创建钩子然后创建,删除就和之前是一样的了。

2024-10-10 10:43:32 1380

原创 5.gorm基础新-单表高级查询

还可以使用高阶函数的特点,实现带参数的scope。take、first、last只会查主键。那么就可以把这些可能被复用的方法抽离出来。很多时候,我们会经常使用重复的查询方法。注意where的顺序,再&函数的前面。可以新建一个字段比较少的结构体。分组之后,需要特定字段的数据。或者可以直接使用Pluck。使用Row来进行查询操作。使用Exec来操作数据。

2024-10-10 10:41:16 443

原创 4.gorm基础新-单表模型和单表操作

有很多方法,Save、Update、UpdateColumn、Updates。特别注意:Create函数接收的参数是结构体的指针或者是切片。设置为当前时间,而后的一般查询方法将无法查找到此条记录。通常情况下,我们会使用Model结尾表示它是表的结构体。时,GORM并不会从数据库中删除该记录,而是将该记录的。如果在插入的钩子函数中,返回错误,则数据不会被插入。生成表结构只会新增字段,不会删除字段和更新字段。中),那么该模型将会自动获得软删除的能力。在gorm中,使用结构体表示一张表。字段(该字段也被包含在。

2024-10-09 12:19:22 898

原创 3.gorm基础新-gorm引入

gorm的引入肯定是为了我们更好的操作数据库在使用原生sql查询的时候最大的问题就是没办法映射到结构体上我们不难发现,数据库里面的记录就很想一个结构体,数据库的一列对应一个字段所以数据库到结构体的映射就是orm的一个最大特点所有的orm都是如此使用一个类或者一个结构体表示一张表然后使用一个实例化对象表示一条记录字段表示列你品,你细品所以,知道这个关系之后,我们再来看看gorm的用法安装视频里面的版本是 v1.25.12。

2024-10-09 12:17:46 294

原创 2.gorm基础新-通过go去操作sql的增删改查

安装驱动。

2024-10-08 17:51:21 426

原创 1. gorm基础新——传统sql的增删改查

mysql里面的建库,建表,删库,删表添加记录,查询,删除记录,更新记录这些命令是一定要会的就算我们脱离orm这些,也能直接连上数据库进行操作。

2024-10-08 17:49:11 358

原创 使用docker部署项目核心心法

使用docker部署go项目有一个通用的范式那就是分阶段构建。

2024-10-02 12:54:39 980

原创 正则表达式零基础入门

正则表达式(Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。各个编程语言中都支持正则表达式。

2024-10-02 12:51:58 785

原创 logrus go语言第三方日志库

如果我们想要在控制中显示颜色,一般的做法都是使用ANSI 控制码,用于设置文本颜色。\033 是控制码的开始,是八进制数字,[31m 表示将文本设置为红色。ANSI 控制码是用于在终端和控制台中控制文本格式和颜色的一种标准。它们通常用于在命令行界面 (CLI) 程序中输出彩色文本或者在文本模式下的图形界面 (GUI) 中输出文本。// 前景色fmt.Println("\033[30m 黑色 \033[0m")fmt.Println("\033[31m 红色 \033[0m")

2024-09-30 09:17:44 1152

原创 ts基础-5.interface

name: "张三"

2024-09-29 09:37:17 261

原创 ts基础-4.数组类型

一般来说,数组里面的元素都应该是同类型的。

2024-09-29 09:36:24 281

原创 ts基础-3.联合类型与类型断言

就是认为将某一种不确定的类型断言为确定的类型。只是在编辑器层面进行的欺骗行为。

2024-09-29 09:35:36 267

原创 ts基础-2.基本类型

ts的类型,核心就是同一个类型只能给同一个类型赋值避免了不同类型之间赋值。

2024-09-29 09:34:33 312

原创 ts基础-1.ts介绍与安装

我们都知道,JavaScript是一门弱类型动态语言在开发大型项目的时候,虽然开发速度快,但是对于后期的维护,那简直是火葬场特别是有些逻辑,开发者自己写的,过了一个月自己都忘了这些变量都是写什么特别是前后端对接口的时候,这个接口响应什么数据,该传什么参数,只有开发的时候才知道了针对这些痛点,ts横空出世。

2024-09-29 09:33:37 272

原创 casbin访问控制框架

Casbin是一个强大的,高效的开源访问控制框架,其权限管理机制支持多种访问控制模型,各个编程语言都对casbin有支持目前我的所有项目,都是基于简单的角色管理来的分为了三类,未登录能访问的,普通用户能访问的,管理员能访问的后续做rbac系统,那就会把角色和访问控制结合起来,casbin就可以更好的帮助我去做这个事情网上关于casbin的文档其实还挺多的,但是他们的案例很多都不太适合,新手第一次看很容易看懵这个文档就结合实际的web中的访问控制来进行讲解。

2024-09-28 10:59:25 917

原创 es基础操作,看这篇就够了

本节课讲解es的基本操作ElasticSearch 简称es,开源的分布式的全文搜索引擎,可以近乎实时的存储检索数据。

2024-09-27 09:16:41 801

原创 supervisor好用的进程管理工具

supervisor是一款特别好用的进程管理工具。

2024-09-26 10:51:35 847

原创 redis入门指南 万字超全解析

Redis是一种流行的内存键值数据库,被广泛用于构建高性能的缓存和消息队列应用如果你的网站访问很卡顿,那么接入redis缓存热点数据,将会使你的网站访问体验得到质的飞跃redis的体系很庞大,本课程就简单的带着大家入个门。

2024-09-26 10:48:22 2294

原创 git零基础-5.远程仓库

在实际的工作中,我们需要一个可靠的、安全的、高速的Git服务器非常重要。那么,这个Git服务器我们可以自己搭建,也可以使用别人搭建好的仓库托管服务,以下是常见的几个代码托管服务平台。最常用的代码托管平台就是github了建议大家都去注册一个账号本课程练习使用gitee,可以简单了解为github的国内版,是国内最大的代码托管平台,又称码云还有一个就是gitlab,一般是企业内部的代码库。

2024-09-26 10:42:55 208

原创 git零基础-4.分支

HEAD指的是当前所在的分支,下面的是合并过来的分支。两个人改了同一个文件的同一行代码。develop(开发)分支。feature(特性)分支。hotfix(bug)分支。在合并的时候就会发生冲突。master(生产)分支。

2024-09-26 10:42:20 150

原创 git零基础-3.git忽略文件

gitignore.idea前端常用gitignorego常用python常用。

2024-09-26 10:41:39 219

原创 git零基础-2.git三大区域

工作区,暂存区,本地版本库工作区 → 暂存区 git add暂存区 → 本地库 git commit查看状态git status。

2024-09-26 10:41:02 177

原创 git零基础-1.为什么要版本控制

于是Torvalds,就是那个发明linux的老哥,因为不满那个时代的版本控制工具,例如CVS,SYN,所以就自己花了10天发明了git,一个月之内,linux的源码就由git来管理了。并且,它不应该只有记录的功能,而是能够记录每次提交,此时的文件与之前文件的差异,将这些差异存储起来。如果这个时候你比较年轻,你可能会在原文件的基础上进行修改,然后发给领导,领导又说要改,然后你再改。然后发给领导,领导说,这个方案大体上已经没问题了,你再改一改其中的一些地方,再发给我就好了。这个时候,git闪亮登场。

2024-09-26 10:40:30 366

原创 linux基础-11.网络相关

如果ping ip半天出不来数据 那就是主机不在线,看看是不是没开机,或者网卡掉了。这个一般是在目标主机上使用的,一个端口没开,先看看这个主机上是不是开了这个端口。不仅是用于web的端口检测,22,3306,6379这些端口同样可以检测。如果是ping域名没反应,可能是域名写错了,也可能是dns的问题。以上的修改都不会立即生效,需要ctrl+d退出,重新登陆一下。大家细心观察就能发现,端口开了和没开响应是不一样的。再高级一点的就是使用网络抓包工具,抓流量数据去看。使用ping可以很直观的发现目标是否可达。

2024-09-25 14:11:55 218

原创 linux基础-10.软件安装和环境变量

YUM是“Yellow dog Updater, Modified”的缩写,是一个软件包管理器,YUM从指定的地方(相关网站的rpm包地址或本地的rpm路径)自动下载RPM包并且安装,能够很好的解决依赖关系问题。当用户登录时以及每次打开新的Shell时该文件都将被读取,不推荐在里面配置用户专用的环境变量,因为每开一个Shell,该文件都会被读取一次,效率肯定受影响。在用户的主目录,有几个特别的文件,用ls是看不见的,用ls .bash_*可以看见。系统环境变量对全部的用户生效,设置系统环境变量有三种方法。

2024-09-25 14:11:09 853

原创 linux基础-9.重定向、管道

grep是一个可以利用”正则表达式”进行”全局搜索”的工具,grep会在文本文件中按照指定的正则进行全局搜索,并将搜索出的行打印出来。连续使用管道意味着第一个命令的输 出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。比如: 搜索/etc目录下的所有".conf"结尾的文件信息,然后以详细列表形式显示。注:以上只能将标准输出重定向到文件中,标准出错是不能通过此方式输出到文件。选项即可只统计符合条件的总行数,而不会打印出行。管道符左边命令的输出就会作为管道符右边命令的输入。

2024-09-25 14:10:12 462

原创 linux基础-8.打包和压缩

归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和压缩是指利用算法将文件进行处理,已达到保留最大文件信息,而让文件体积变小的目的。其基本原理为,通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示。

2024-09-25 14:08:40 308

原创 linux基础-7.用户与用户组管理

Linux基于用户身份对资源访问进行控制。

2024-09-25 14:08:04 398

原创 linux基础-6.进程管理

在Linux中,进程(Process)是指正在运行的程序实例。一个进程可以看做是系统中的一个任务,它可以执行各种操作,例如打开文件、发送网络请求、计算数据等。每个进程都有自己独立的内存空间和资源使用情况每个进程都有一个唯一的进程ID( PID ),它是一个非负整数,用于标识进程。除了PID外,每个进程还有其他属性,如父进程ID、进程状态、进程优先级、内存使用情况等。Linux系统中有许多命令和工具可以用来管理和监视进程,例如ps、top、kill等其中,ps。

2024-09-25 14:07:08 1022

原创 linux基础-5.vim

在Linux系统下经常使用编辑一些文本或者代码。

2024-09-25 14:06:19 369

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除