随笔分类 - lang
go设计逻辑: 显示优于隐式
摘要:显示优于隐式map类型: make(map[int]int),再没有声明长度的情况下,是可以执行的。slice类型: make([]int),在没有生命长度的情况下,则是不可以执行的。因为分配的数据结构底层逻辑不同,map是作为hash结构,支持动态扩展,有懒加载的逻辑支撑。而slice,功能上属于
阅读全文
goWeb框架中ctx的canceled动作及避免形容
摘要:在web框架中,每个请求都会产生一个新的ctx,在ctx的生命周期内:如果第三方服务接到了 context canceled的错误。 那么这个错误将ctx剩余的生命周期,产生一定污染,导致无关重要的一个动作,导致整个生命周期整体失败。 所以可以在对应的动作中(不影响主流程的动作),生命一个新的ctx
阅读全文
vegeta
摘要:go压测工具 地址: https://github.com/tsenart/vegeta 1. 使用 1 echo "GET http://example.com" | vegeta attack -duration=10s -rate=50 > results.bin 2 cat results.
阅读全文
kratos相关错误汇总
摘要:1.版本问题: tr.reqHeader kratos版本不一致 tr.reqHeader 报错 · Issue #45 · tx7do/kratos-transport (github.com)
阅读全文
正则对cpu的消耗
摘要:背景: 正则对于cpu的消耗,其中的资源占比较高。如果数据量庞大且正则复杂的时候,那么idle会消耗殆尽。 以下为正文 正则表达式 (regex) 是一种强大且灵活的模式匹配工具,广泛用于文本处理。然而,正则表达式的处理可以对 CPU 造成显著的消耗,尤其在处理复杂的模式或大型输入时。以下是正则表达
阅读全文
gorm忽略报错: record not found
摘要:在配置gorm的时候,往往会同步设置日志句柄的赋值,但是如果不忽略一些报错的话,它会将所有报错悉数打出,造成一点的日志分析干扰。 简单配置的话,内容如下: 1 zapLog := gormlog.NewGormLog(log.NewHelper(logger), "mysql") 2 //忽略找不到
阅读全文
go正则相关使用
摘要:目前go官方提供regexp库,来实现相关正则操作,但是在兼容perl上面,相对较弱。 一些正则语法无法支持,比如: 正向前瞻/负向前瞻。 基于此,出于对正则能力上的需要,需要重新选择正则库。 1 github.com/glenn-brown/golang-pkg-pcre/src/pkg/pcre
阅读全文
rust安装
摘要:unix安装教程 1. 终端安装 1 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 2. 安装目录 安装之后,需要注意安装目录的问题,笔者遇到的情况是安装后,需要自己自行配置环境变量,才能正常全局使用。 通常是安装在家目
阅读全文
执行a包时,怎么调度b包init函数
摘要:在 Go 中,当一个包被导入时,该包中的 init 函数会在程序执行开始时自动被调用。但是,直接导入 a 包时无法保证 b 包的 init 函数被调用。如果你希望在导入 a 包时同时调用 b 包的 init 函数,你可以在 a 包中手动导入 b 包,这样在 a 包被导入时,b 包的 init 函数也
阅读全文
php的strpos-mb_strpos
摘要:php版本如下 PHP 7.3.10 PHP 8.3.0 当版本来到8.3.0之后,strpos和mb_strpos功效基本一致。 但是在 7.3.10这个版本,strpos无法接受非字符串查询类型,去按照预定查找对应的字符串。 举例如下: 1 var_dump(strpos("123456", 1
阅读全文
ci框架
摘要:1. ci背景 ci在这里是一个php框架,官网地址: https://codeigniter.org.cn/ https://codeigniter.org.cn/ 2. 特点 2.1 键值对object管理 load_class管理对象加载,负责jd生成加载快的对象,存入在键值对中,方便复用。
阅读全文
键值对象的设计
摘要:键值对对象与工厂、与组合复用等关系 键值对对象(Key-Value Pair Objects,简称KV Pairs)是一种数据结构,在许多编程语言中广泛应用,如JavaScript中的对象、Python中的字典等。键值对对象可以看作是映射关系的集合,每个键关联一个唯一的值。 与工厂模式的关系: 在设
阅读全文
go耗时函数
摘要:本质上依旧为记录时间,进行相减操作的思路。 func CostStaticDemo() { // 开始计时 start := time.Now() // 执行函数 sum := sum(1000000) // 结束计时 end := time.Now() // 计算耗时 duration := en
阅读全文
mac安装php-kafka
摘要:首先,安装文档在: 如何使用PHPSDK接入消息队列Kafka版并收发消息_云消息队列 Kafka 版(ApsaraMQ for Kafka)-阿里云帮助中心 (aliyun.com) 但是按照这个文档,存在一个问题,一直报错: 1 ... 2 checking for rdkafka suppor
阅读全文
goENV环境变量
摘要:GO111MODULE="" // 是否使用mod包管理 当前推荐设置值为 on GOARCH="arm64" // 当前芯片架构 某些老包限制支持cpu的架构种类 可以通过修改芯片类型来曲线救国 GOBIN="/Users/test/go/bin" // go 一些安装软件的bin路径 比如: d
阅读全文
go:fnv与idGenerator
摘要:fnv 属于hash生成算法的一个方向。 具体参考git地址: FNV-1a/fnv1a.go at master · romain-jacotin/FNV-1a (github.com) 这是一个包含多种长度生成hash值的算法。 idGenerator 类似一个基础插件,or 中间件的服务。 字
阅读全文
php:对象运行时新增成员变量
摘要:简单到无以复加... 1 class A_test { 2 3 } 4 5 $obj = new A_test(); 6 $objSupplyProp = "abc"; 7 $obj->$objSupplyProp = 123; 8 9 var_dump($obj->$abc); 但是动态声明添加成
阅读全文
php:重载
摘要:PHP: 重载 - Manual 使用框架: ci。。。 参考官网信息 参考官网示例代码即可 1 <?php 2 class PropertyTest { 3 /** 被重载的数据保存在此 */ 4 private $data = array(); 5 6 7 /** 重载不能被用在已经定义的属性
阅读全文
浙公网安备 33010602011771号