2025年10月个人工作生活总结
本文为 2025年10月工作生活总结。
研发编码
一种文档模板设计方法
个人文档模板设置(WPS):
1、含封面、修改记录和目录、正文三部分,分别做成不同的节。
2、封面无页码和页眉。
3、修改记录和目录添加页眉和页码,页码为罗马数字,如i、ii。页眉为文档名称,居中或右对齐。
4、正文添加页眉和页码,页码为阿拉伯数字,如“第1页 共10页”。页眉为文档名称,居中或右对齐。
5、页码总数为正文总数,设置方法如下:
双击页脚位置,输入“第 页 共 页”(注:2个空格),居中。
光标定位到“第 页”,点击“插入”->“文档部件”->“域”,选“当前页码”(PAGE)。
光标定位到“共 页”,点击“插入”->“文档部件”->“域”,选“本节总页数”(SECTIONPAGES )。
完成。
浏览器强制加载js文件
目前我的前端工程没有使用框架,就是纯粹的html+js。其中部分共用代码放到js文件,在调试时经常没有重新加载,导致没看到效果或出错。在网上查了些资料,发现可以通过在js文件后面添加文字解决此问题。
原引入文件方式:
<script src="utils.js"></script>
新的方式:
<script src="utils.js?v=1"></script>
当该文件修改后,再添加新的文字(版本号),如:
<script src="utils.js?v=2"></script>
如果使用的是服务器端模板(如JSP、ASP.NET、EJS等),则可以使用时间戳,如:
<script src="utils.js?v=<%= new Date().getTime() %>"></script>
golang字符串分割
需求:字符串分割符的格式有多种,分割后的内容可能还会带有空格。比如: show a , show b , cat c 、 show a |show b| cat c ,等,可以看到这2个字符串使用了逗号,和竖线|间隔,且分割后的子字符串前后有空格,需要正确分割且能过滤空格,但是,show a为一个完整字符串,中间的空格不能删除。
对原实现的分割函数进行改造,具体如下:
当前实现如下:
func SplitTrim(s string, sep string) []string {if s == "" {return []string{}}items := strings.Split(s, sep)for i := 0; i < len(items); i++ {items[i] = strings.TrimSpace(items[i])}return items
}
优化如下:
func SplitTrim(s string, sep string) []string {if s == "" {return []string{}}tmpitems := strings.Split(s, sep)items := make([]string, 0, len(tmpitems))for i := 0; i < len(tmpitems); i++ {tmp := strings.TrimSpace(tmpitems[i])if tmp != "" {items = append(items, tmp)}}return items
}
上述函数统一使用指定的sep分割,为方便处理,需将不同分割符的替换成相同的格式,示例如下:
param = strings.ReplaceAll(param, "|", "|")
param = strings.ReplaceAll(param, ",", "|")
param = strings.ReplaceAll(param, "、", "|")
arr := com.SplitTrim(param, "|")
c语言整数类型的问题
最近在看代码,又遇到整数类型的问题。
以一个表示32位符号整数的类型定义为例,定义的代码片段如下:
#ifdef __amd64
typedef unsigned int UINT4;
#else
typedef unsigned long int UINT4;
#endif
上述代码在32位系统和64位系统均可适用。但只定义了__amd64宏,如果是其它的,则统一用unsigned long int,其实这是不严谨的,其实不必要这样做,其实可以直接使用uint32_t,其在stdint.h有定义,是C99标准 中引入的。使用这个类型,避免了与系统位数绑定,即不管系统是32位还是64位,uint32_t定义的变量都能保证是32位符号整数。
这样就不必要加宏定义了,如果一定用宏定义,就需要考虑完整的宏,如#if defined __amd64 || defined __aarch64__ || defined __loongarch64,否则遇到跨CPU架构平台的情况时,就会出现问题。(注:因此字节数不同,问题可能是某些数据错误不完整,或计算出错)
行业信息
Redis 资源管理错误漏洞
编号:CNNVD-202510-401、CVE-2025-49844
简单概述:该漏洞源于特制Lua脚本可操纵垃圾收集器,触发释放后重用,可能导致远程代码执行。
受影响版本:Redis 8.2.1及之前版本受到影响。
较复杂的描述:Redis 8.0.4 -8.2.1版本、Redis 7.4.6-8.0.3版本、Redis 7.2.11-7.4.5版本、Redis 6.2.20-7.2.10版本均受此漏洞影响。
修正版本:8.2.2。内容:
- (CVE-2025-49844) A Lua script may lead to remote code execution
- (CVE-2025-46817) A Lua script may lead to integer overflow and potential RCE
- (CVE-2025-46818) A Lua script can be executed in the context of another user
- (CVE-2025-46819) LUA out-of-bound read
下载地址:https://github.com/redis/redis/releases/tag/8.2.2
来源参考:https://www.cnnvd.org.cn/home/globalSearch?keyword=CNNVD-202510-401
某里云容器镜像服务无法切换地域问题的解决
我从2018年就一直在使用某里云容器镜像服务了。一直能work,去年其策略变更了,限于经济情况,只能用个人版本先前。但是,还没有遇到什么问题。由于众所周知的原因,无法直接从官方镜像仓库下载,于是用了折中的方法同步到该镜像仓库。但是本月中旬想更新redis版本(原因见上),发现无法找到一些公开的镜像了,当年年少不懂事,使用默认的华东地域,开通后立马想到我应该用华南区的,于是我的很多镜像放到华南区了,但现在在同一页面发现无法切换了。

折腾半天,还问了在线客服。最终发现是在容器镜像服务首页进行切换的操作,如下图。起初没留意,是没想到其改版的底层逻辑在哪里,这里得赞一下客服,我文字没表达清楚,还打电话给我详解。虽然这个服务我是免费使用,不过每年投入的主机和域名的费用,还是不少的。

面试
这个月又被安排面试,都是应届生,有的在面试时,侃侃而谈,谈吐得体,简历漂亮,履历丰富,如任某某部书记、部长,参与某某比赛,获得某某获,负责过若干大项目。熟悉某某语言,熟悉某某系统,英语水平高。
不过,作为写代码的具体的人,我主要以实际工作技能的切合度为考量点。术语再高大上,做的项目再多,如果是Linux C++岗位,但连Makefile没用过,线程没用过,STL也不熟悉,只能pass,转而考虑其它岗位了。
生活记录
辅导作业
这个月开始,给2小孩都报名了午托和晚辅导,洋洋洒洒差不多2K。经过9月的验证,大锤不愿意做作业,不愿在家写,也不愿我辅导。网上常见的家长辅导作业的场面,我也免不了会遇到,因此只能花钱让其他人辅导了。
买车票
今年中秋比较特殊,中秋当天上南宁。因为实在买不到合适日期的票,回家之前和老爸老妈做了几次解释,先是计划回家,想着能不能候补到票,不过未能如愿。
