vicent_uuid4
码龄4年
关注
提问 私信
  • 博客:71,524
    社区:4
    71,528
    总访问量
  • 48
    原创
  • 951,775
    排名
  • 18
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2020-06-25
博客简介:

weixin_48943299的博客

查看详细资料
个人成就
  • 获得50次点赞
  • 内容获得10次评论
  • 获得190次收藏
  • 代码片获得507次分享
创作历程
  • 16篇
    2023年
  • 21篇
    2022年
  • 11篇
    2021年
成就勋章
TA的专栏
  • 缓存工具以及方案
  • go 实战开发
    26篇
  • go语言基础
    14篇
  • mysql实战45讲笔记
  • python开发基础
    5篇
  • 日常开发问题
    5篇
  • 操作系统
    2篇
  • 设计模式
    9篇
兴趣领域 设置
  • 人工智能
    深度学习神经网络数据分析
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

175人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Protobuf 和代码生成辅助方法

怎么修改 protobuf 生成的代码?生成好的代码从实践上来说是不应该修改的,而很不幸的 是,protobuf 对应不同插件生成的目标代码,只能改插件的源码;怎么为 protobuf 的字段添加额外的属性?可以通过 field option 来增加额外的属性,但是 这种新的属性需要你自己写代码解析;代码生成的常用场景?一般来说,样板代码都可以考虑使用代码生成来替换掉,比如典型 的利用代码生成来生成数据库查询(如ENT),生成增删改查的代码,生成前端代码;
原创
发布博客 2023.04.08 ·
982 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

SELECT SubQuery (子查询)

子查询可以用在很多地方,需要考虑的语法特性也非常多,这是一个比较复杂的功能。
原创
发布博客 2023.04.08 ·
2055 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

SELECT JOIN

* JOIN 语法有两种形态 **JOIN … ONJOIN … USING:USING 后面使用的是列** JOIN 本身有:**也就是说 JOIN 的结构大概可以描述成下面这几种,而且还可以嵌套。表 JOIN 表(表 JOIN 表) JOIN 表表 JOIN 子查询子查询 JOIN 子查询JoinBuilder 里面的 On 和 Using 是终结方法,也就是 直接返回了 Join , 这种设计可以避免用户同时调用 On 或者 Using。
原创
发布博客 2023.04.03 ·
1053 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AOP 方案

优点分查询类型:对增删改查有不同的 Hook;分时机:在查询执行前,或者在查询执行后。这种顺序是预定义好的;修改上下文:每一个 Hook 内部都是可以修改执行上下文的。例如可以利用 这个特性实现一个简单的分库分表中间件;用户用起来还是比较简单的,例如使用 AfterUpdate 的时 候,可以很清楚确定这个会在 Update 语句的时候被调用。缺点也很明显缺乏扩展性,用户指定不了顺序BeforeSave 和 AfterSave 有点令人困惑。
原创
发布博客 2023.04.03 ·
729 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

RawQuerier 原生查询

就 MySQL SELECT 语句来说,ORM 框架能支持全部 语法吗?显然不能,也不愿意支持全部 , 也不仅仅是 ORM 框架,大多数框架设计的时候,都要考 虑提供兜底的措施,或者提供绕开你的框架的机制。在 ORM 这里,就是要允许用户手写 SQL,直接绕开 ORM 的各种机制。
原创
发布博客 2023.04.03 ·
390 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

事务 API

事务的核心 APIBegin:开始一个事务Commit:提交一个事务Rollback:回滚一个事务需要定义一个新的结构体来表达事务的含义 , 这里本文引入全新的 Tx 来表达事务,和 GORM 的设计是很不一样的。这意味着 DB 在创建好之后,就是一个不可变的对象。这种设计也暗含了一个限制,即一个事务无法开启另 外一个事务,也就是我们的事务都是单独一个个的。如何使用 Tx 呢?原本的 Selector 接收的是 DB 作为参数,现在需要利用 Tx 来创建 Selector,怎么办?
原创
发布博客 2023.04.03 ·
522 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

DELETE Statement

DELETE 应该是增删改查里最简单的语句了。
原创
发布博客 2023.04.03 ·
410 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

UPDATE Statement

UPDATE 如实现复杂的表达式?首先需要一个 二元表达式,其实现了 Expression 接口,与 WHERE 条件类似,然后利用 column 为起点,构造方法;UPDATE 如何实现 SET 方法?与 Insert 一样,待修改的列沿用 Assignable 抽象,然后利用 relfect 或者 unsafe 将目标值取出。
原创
发布博客 2023.04.03 ·
710 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SELECT 分组、排序与分页

常用的简单 SELECT 语句无疑包括了分组语法 GROUP BY 以及 分组后的条件过滤 HAVING,HAVING 的执行 由于在 WHERE、GROUP BY 和 聚合函数之后,所以 HAVING 也是支持聚合函数的 (;
原创
发布博客 2023.04.03 ·
949 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

INSERT Statement

Dialect 多定义了一个 quoter 方法,是因为希望能够一并解决掉引号的问题。MySQL 引号是 ` ,而 Oracle 是双引 "// quoter 返回一个引号,引用列名,表名的引号 quoter() byte // buildUpsert 构造插入冲突部分 buildUpsert(b * builder , odk * Upsert) error } type standardSQL struct {ORM 框架是如何支持不同的数据库的?
原创
发布博客 2023.04.03 ·
692 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SELECT 列和聚合函数

为什么 WHERE 里面不能使用聚合函数?从 DB 实现的角度来说,是因为聚合函数必须要在数据筛选出来 之后才能计算,也因此,HAVING 是可以使用聚合函数的。简单概括就是,在DB中, 处理顺序是 WHERE - GROUP BY - 聚合函数 - HAVING;WHERE 和 HAVING 的区别:最重要的就是能不能使用聚合函数作为查询条件,以及两者的执行顺序;聚合函数有哪些?常用的就是 Max、Min、Count、Sum、Avg。另外一个类似的问题是,DISTINCT 是不 是聚合函数?
原创
发布博客 2023.04.03 ·
305 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go Web 框架 Iris

(1) 优点是社区驱动的Go语言Web 框架,支持http2,MVC。有着较高的社区活跃度和文档支持(2) 缺点不够稳定使用数量和国内开源贡献数量目前仍然不如Gin和Echo。
原创
发布博客 2023.04.03 ·
499 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

SELECT 结果集处理

ORM 框架怎么处理数据库返回的数据?要点在于,将列映射过去字段(借助于元数据),然后将每一列 的数据解析为字段的类型(这个过程在 Go 里面是由 sql 包完成的),利用反射将转化后的数据塞到结构 体里。unsafe 的过程则类似,不同在于,unsafe 是先在目标地址创建了字段的零值,后面 sql 包把数 据注入到这些地方使用 unsafe 有什么优点?性能更好ORM 的性能瓶颈在哪里,以及怎么解决?两个:构造 SQL 的过程,和处理结果集。前者主要通过 buffer pool 能够极大缓解;
原创
发布博客 2023.01.31 ·
264 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

简单 SELECT 的构造

使用Builder 模式,不同的语句的具体实现不同;作为构建 SQL 这一个单独 步骤的顶级抽象使用泛型做约束,这样这样约束目标模型的类型, 以免参数直接定义为接口后,传入未知的类型而报错;Querier 泛型约束接口,发起结果集查询的抽象Executor对于 Update、Insect、Dlete 语句的抽象SELECT 语句规范以MySQL 语法规范为例SELECT:代表这是一个查询语句;FROM:普通表、子查询、JOIN 查询;WHERE。
原创
发布博客 2023.01.31 ·
353 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

元数据的构建

orm 框架一般需要定义表的模型,然后模型与表生成映射关系,那么就一定少不了解析模型然后找到与之映射的数据库表,所以,元数据是解析模型获得的,这些元数据将被用于构建 SQL、执行校验,以及用 于处理结果集。模型:一般是指对应到数据库表的 Go 结构体定 义,也被称为 Schema、Table、Meta 等ORM 框架是怎么将一个结构体映射为一张表的(或者反过来)?核心就是依赖于元数据,元数据描述 了两者之间的映射关系。ORM 的元数据有什么用?在构造 SQL 的时候,用来将 Go 类型映射为表;
原创
发布博客 2023.01.31 ·
1419 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

ORM 框架

对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。ORM框架是连接数据库的桥梁,只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。ORM 框架的核心是什么?SQL 构造和处理结果集。在别的语言里面,因为底层库可能不够强大, ORM 框架还要解决连接和会话管理的问题,Go 是不需要的。ORM 是什么?ORM 是指对象关系映射,一般是。
原创
发布博客 2023.01.04 ·
9407 阅读 ·
5 点赞 ·
0 评论 ·
33 收藏

Go web框架 Echo

优点路由性能高更轻量级的web开发框架缺点调试不方便,报错信息不友好路由性能虽高,但是路由实现的算法底层不支持路由排序,会引起路由冲突。
原创
发布博客 2022.11.11 ·
1386 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Go Web框架 Gin

优点支持路由分组运行速度快更好的支持 middleware 和 json灵活性更好(封装程度不如 beego 高), 也可以说是更轻量的框架缺点相比于 beego 更轻量,那么也就没有像 beege 那样提供更多的 api。
原创
发布博客 2022.11.11 ·
404 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Go web框架 Beego

ControllerInterface 可以看做核心接口,因为它直接体现了Beego 的设计初衷:MVC 模式。同时它也是用户核心接入点。但是如果从功能特性上来说,HttpServer 和 ControllerRegister 才是核心。HttpServer 作为服务器抽象,用于管理应用生命周期和资源隔离单位。ControllerRegister 解决了路由注册和路由匹配问题。Context 和 Controller 为用户提供了丰富 API,用于辅助构建系统。简单。
原创
发布博客 2022.11.11 ·
204 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go AST 编程

AST,即抽象语法树。它是源代码语法结构的一 种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。并发、反射和 AST 三者是构建复杂系统(中间 件)的基石,真正的高级工具。
原创
发布博客 2022.11.01 ·
1008 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏
加载更多