- 1 简介本文分析 Trie 树 和 Radix 树,并实现示例,在 Web 框架(如 Gin、Fiber 等)的路由匹配中,Trie 树 和 Radix 树 都是常用的数据结构。它们都可以高效存储和匹配字符串路径,但在实现和性能上存在显著区别。Trie 树(前缀树)Trie 树是一种多叉树,用于快速查找字符串。它的每个节点代表一个字符,路径表示字符串。Trie 树可以高效地执行字符串匹配操... 1 简介本文分析 Trie 树 和 Radix 树,并实现示例,在 Web 框架(如 Gin、Fiber 等)的路由匹配中,Trie 树 和 Radix 树 都是常用的数据结构。它们都可以高效存储和匹配字符串路径,但在实现和性能上存在显著区别。Trie 树(前缀树)Trie 树是一种多叉树,用于快速查找字符串。它的每个节点代表一个字符,路径表示字符串。Trie 树可以高效地执行字符串匹配操...
- 1 简介从头设计一个Web 框架,需要关注以下核心要点。设计高性能的路由系统比如使用了 Radix 树(紧凑前缀树) 来匹配路由,类似于 Trie 树:静态路由(/user/profile)参数路由(/user/:id)通配符路由(/static/*filepath)实现一个高效路由: type node struct { path string ... 1 简介从头设计一个Web 框架,需要关注以下核心要点。设计高性能的路由系统比如使用了 Radix 树(紧凑前缀树) 来匹配路由,类似于 Trie 树:静态路由(/user/profile)参数路由(/user/:id)通配符路由(/static/*filepath)实现一个高效路由: type node struct { path string ...
- 1 简介让 f 是某个 group作(具有恒等元素和逆元素的集合的二进制关联函数)和 A 是长度为 N。表示 f 美元的中缀表示法为 * ;那是 f(x,y) = x*y 对于任意整数 x,y. (由于这是结合的,我们将省略括号以执行 f 当使用中缀表示法时。Fenwick 树是一种数据结构,它:计算 function 的值 ,f在给定范围内 [l, r](即 A_l * A_{l+1} ... 1 简介让 f 是某个 group作(具有恒等元素和逆元素的集合的二进制关联函数)和 A 是长度为 N。表示 f 美元的中缀表示法为 * ;那是 f(x,y) = x*y 对于任意整数 x,y. (由于这是结合的,我们将省略括号以执行 f 当使用中缀表示法时。Fenwick 树是一种数据结构,它:计算 function 的值 ,f在给定范围内 [l, r](即 A_l * A_{l+1} ...
- 1 简介在Go语言中流行的Web框架的 MVC 架构中,常用的组件主要包括: Controller(控制器) Service(服务层,业务逻辑) Model(数据模型层) Middleware(中间件) Router(路由) Context(上下文对象) Dependency(依赖,比如数据库连接池、缓存等)下面对这些组件从几个方面进行深入分析,并判断它们是否是有状态的组件。... 1 简介在Go语言中流行的Web框架的 MVC 架构中,常用的组件主要包括: Controller(控制器) Service(服务层,业务逻辑) Model(数据模型层) Middleware(中间件) Router(路由) Context(上下文对象) Dependency(依赖,比如数据库连接池、缓存等)下面对这些组件从几个方面进行深入分析,并判断它们是否是有状态的组件。...
- 1 简介Radix 树是一种压缩版本的 Trie 树。它将公共前缀合并到一个节点,从而减少节点数量并提高查询效率。许多web框架使用Radix 树(紧凑前缀树) 来匹配路由,类似于 Trie 树: 静态路由(/user/profile) 参数路由(/user/:id) 通配符路由(/static/*filepath)实现一个高效路由: type node struc... 1 简介Radix 树是一种压缩版本的 Trie 树。它将公共前缀合并到一个节点,从而减少节点数量并提高查询效率。许多web框架使用Radix 树(紧凑前缀树) 来匹配路由,类似于 Trie 树: 静态路由(/user/profile) 参数路由(/user/:id) 通配符路由(/static/*filepath)实现一个高效路由: type node struc...
- 1 跨请求保存数据服务状态的判定标准.判断一个 结构体 或 组件 是否有状态,可以依据以下几个关键标准和角度:是否保存跨请求的状态或数据有状态:如果组件/结构体在一个请求完成后,仍然保存状态或数据,供后续请求访问和使用。无状态:如果组件/结构体仅在单次请求中处理数据,且请求完成后其状态不被保留。有状态:一个缓存系统保存用户登录状态或会话信息。数据库连接池维护的连接列表,跨多个请求使用。无状... 1 跨请求保存数据服务状态的判定标准.判断一个 结构体 或 组件 是否有状态,可以依据以下几个关键标准和角度:是否保存跨请求的状态或数据有状态:如果组件/结构体在一个请求完成后,仍然保存状态或数据,供后续请求访问和使用。无状态:如果组件/结构体仅在单次请求中处理数据,且请求完成后其状态不被保留。有状态:一个缓存系统保存用户登录状态或会话信息。数据库连接池维护的连接列表,跨多个请求使用。无状...
- 1 组件状态简介本文介绍在web服务中各组件的状态分析,在框架实现的管理系统中,各组件的 有状态性 和 无状态性 可根据其是否持有用户会话、业务状态或持久数据来判断。1 有状态组件有状态组件是指组件会保存数据或状态,供后续操作或请求访问。它们通常维护一定的上下文或依赖,能够影响其后续行为。有状态组件分析实体类(Expense)状态性:有状态。每个 Expense 对象持有业务数据(如金额、... 1 组件状态简介本文介绍在web服务中各组件的状态分析,在框架实现的管理系统中,各组件的 有状态性 和 无状态性 可根据其是否持有用户会话、业务状态或持久数据来判断。1 有状态组件有状态组件是指组件会保存数据或状态,供后续操作或请求访问。它们通常维护一定的上下文或依赖,能够影响其后续行为。有状态组件分析实体类(Expense)状态性:有状态。每个 Expense 对象持有业务数据(如金额、...
- 1 简介现代分层架构中MVC 架构是最常见的形式,本文介绍其中包含哪三种元素,它们的作用分别是什么,如何在go语言中应用?如何使用该架构在gin中将 JavaEE 中JSP、Serlet、Senice、JavaBean、DAO 五种构件对应的使用了 2 像javaEE一样使用分层MVC 架构的三种元素及其作用Model(模型)作用:负责处理应用程序的数据逻辑和业务规则。模型直接与数据库交互... 1 简介现代分层架构中MVC 架构是最常见的形式,本文介绍其中包含哪三种元素,它们的作用分别是什么,如何在go语言中应用?如何使用该架构在gin中将 JavaEE 中JSP、Serlet、Senice、JavaBean、DAO 五种构件对应的使用了 2 像javaEE一样使用分层MVC 架构的三种元素及其作用Model(模型)作用:负责处理应用程序的数据逻辑和业务规则。模型直接与数据库交互...
- 翻译自https://go101.org/article/pointer.html尽管Go吸收了很多其他语言的特性,但Go总体来说是一个C家族语言。其中一个证据就是Go也支持指针。Go指针和C指针在许多方面非常相似,但其中也有一些不同。本文将会列举Go指针的概念和细节。 Memory Address 内存地址内存地址指的是整个系统管理(通常由操作系统管理)的内存空间中的偏移量(byte的个... 翻译自https://go101.org/article/pointer.html尽管Go吸收了很多其他语言的特性,但Go总体来说是一个C家族语言。其中一个证据就是Go也支持指针。Go指针和C指针在许多方面非常相似,但其中也有一些不同。本文将会列举Go指针的概念和细节。 Memory Address 内存地址内存地址指的是整个系统管理(通常由操作系统管理)的内存空间中的偏移量(byte的个...
- 本篇介绍 Go 语言的基本数据类型 本篇介绍 Go 语言的基本数据类型
- 本篇文章对 fmt 标准库的常用输入函数进行了介绍。输入函数分三类介绍,第一类是从文件获取输入的内容,第二类是从标准输入获取输入的内容,第三类是从字符串里获取输入的内容。并给出简单的示例代码。 本篇文章对 fmt 标准库的常用输入函数进行了介绍。输入函数分三类介绍,第一类是从文件获取输入的内容,第二类是从标准输入获取输入的内容,第三类是从字符串里获取输入的内容。并给出简单的示例代码。
- IPFS在鲲鹏云服务器中的安装与编译过程记录,希望本文能降低新手的门槛。 IPFS在鲲鹏云服务器中的安装与编译过程记录,希望本文能降低新手的门槛。
- 其实从2009年开始到现在,区块链的技术火热程度一直是处于逐年增加的状态,其他各大行业的巨头也正疯狂的布局之中,一定要赶上一场商业大战,至于这场战争什么时候打响,有些人认为或许在今年,或许在将来的两三年里,所以目前为止,我们还没有办法去做出准确的判断。但是咱们可以先做好准备,下面给大家整理了四种关于区块链技术比较主要的一些开发言语,希望会对大家有一些帮助。JAVA开发语言(未来币)定义:这是... 其实从2009年开始到现在,区块链的技术火热程度一直是处于逐年增加的状态,其他各大行业的巨头也正疯狂的布局之中,一定要赶上一场商业大战,至于这场战争什么时候打响,有些人认为或许在今年,或许在将来的两三年里,所以目前为止,我们还没有办法去做出准确的判断。但是咱们可以先做好准备,下面给大家整理了四种关于区块链技术比较主要的一些开发言语,希望会对大家有一些帮助。JAVA开发语言(未来币)定义:这是...
- 资源准备:点击下载Day11-demo-homeword.zipGoLandMinGWGO语言环境一、IDE安装1.下载GoLand后,运行安装,基本是一路next,我选择的是64位,并关联了.go文件。2.(可选)使用补丁或者注册码完成激活,建议支持正版,free试用的话功能少了一点。3.GO语言环境安装安装包下载地址为:https://golang.org/dl/。如果打不开可以使用这个... 资源准备:点击下载Day11-demo-homeword.zipGoLandMinGWGO语言环境一、IDE安装1.下载GoLand后,运行安装,基本是一路next,我选择的是64位,并关联了.go文件。2.(可选)使用补丁或者注册码完成激活,建议支持正版,free试用的话功能少了一点。3.GO语言环境安装安装包下载地址为:https://golang.org/dl/。如果打不开可以使用这个...
- go的下载网址为https://studygolang.com/dl/ wget https://studygolang.com/dl/golang/go1.11.linux-amd64.tar.gz tar -zxvf go1.11.linux-amd64.tar.gz设置了一下shell的命令行显示情况(也可以不设置)PS1='\w$ 'vi ~/.bashrc (添加以下内容)expo... go的下载网址为https://studygolang.com/dl/ wget https://studygolang.com/dl/golang/go1.11.linux-amd64.tar.gz tar -zxvf go1.11.linux-amd64.tar.gz设置了一下shell的命令行显示情况(也可以不设置)PS1='\w$ 'vi ~/.bashrc (添加以下内容)expo...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
回顾中
热门标签