当前位置: 首页 > news >正文

2024年5月个人工作生活总结

本文为 2024年5月工作生活总结。

研发编码

golang 多个defer函数执行顺序

golang 函数中如有多个defer,倒序执行。示例代码:

func foo() {defer func() {fmt.Println("111")}()defer func() {fmt.Println("2222")}()defer func() {fmt.Println("3333")}()
}

执行结果:

3333
2222
111

同理,如有多个函数,亦是倒序执行。

docker-compose使用环境变量文件

在与docker-compose.yaml文件同一目录下创建.env环境变量文件,示例如下:

$ cat .env 
MY_VERSION=1.0
MY_NAME=latelee

可以在docker-compose.yaml文件中使用环境变量,示例如下:

  ll-name:image: latelee/busybox:${MY_VERSION:-latest}container_name: ll-namehostname: ll-namerestart: alwaysvolumes:- ./config/config.yaml:/work/config/config.yamlenvironment:- MY_NEW_NAME=${MY_NAME}

latelee/busybox:${MY_VERSION:-latest}指定了镜像版本,如果.env文件定义了MY_VERSION则用之,否则用默认的latest版本。同时,通过environment指令将.env文件的环境变量传递到容器中,重新设置为MY_NEW_NAME。启动并进入容器,查看:

[root@ll-name /]# env
HOSTNAME=ll-name
MY_NEW_NAME=latelee

如果有多个环境变量,用上述方法稍显麻烦,可以直接将环境变量文件传递至容器中,使用env_file指令即可。示例如下:

  ll-name:image: latelee/busybox:${MY_VERSION:-latest}container_name: ll-namehostname: ll-namerestart: alwaysvolumes:- ./config/config.yaml:/work/config/config.yamlenvironment:- MY_NEW_NAME=${MY_NAME}env_file:- .env- other_file

可指定多个环境变量文件。另外,environment作用范围优先级高于env_file的范围。如果2者环境变量相同,则只保留前者定义的。

经测试,修改docker-compose.yaml、修改env_file指定的文件,执行docker-compose up -d 可以重启创建容器。

用faketime修改容器时间

容器可用faketime调整时间。但必须用LD_PRELOAD=./libfaketime.so.1 FAKETIME="@2024-06-19 00:30:00" xxx方式执行。经测试,对如C++、Java等应用层程序有效,对于golang程序不适用,对于底层动态库不适用。faketime编译方法:

git clone https://github.com/wolfcw/libfaketime
cd libfaketime
make
make install

生成文件为src/libfaketime.so.1。

生活记录

差不多896了

因为时间紧,任务重,人员少,从中旬开始,要求开发团队晚上8点半下班,周末要上一天班。由于我是按以前的时间作息,早上6点半就得起来了,因此上班打卡时间基本在8点左右,而晚上一般9点才下班,这半个月来,比996还猛一些。由于之前经常在家加班,所以在公司加班后,回家后非必要不加班。

育儿记录

这个月技术方面没有研究,不工作时,又不想动脑。下班回到家,就听到2个小朋友在打闹,直到晚上11点才停止。大锤他妈妈看不惯我辅导作业,让我给200块钱补贴辅导费用。我纠正个别发音又引来讽刺。当年我刚到大学时,别人很难听懂我说的话。因此我才严格要求小孩的发音,原先已经没口音了,现在发音又差了很多,不知是故意为之,还是其它原因。

大锤作业依然多,老师都是在群里布置,包括听写和组词。但查看去年至今的记录,小程序里的状态是“待批改”状态。老师后来说,作业是自愿写的,这下又把问题抛回给家长了。

http://www.lryc.cn/news/359365.html

相关文章:

  • Kafka Java API
  • pushd: not found
  • 【第十三节】C++控制台版本坦克大战小游戏
  • 酷得单片机方案 2.4G儿童遥控漂移车
  • 【为什么 Google Chrome 打开网页有时极慢?尤其是国内网站,如知网等】
  • FastAPI - 数据库操作5
  • HTML静态网页成品作业(HTML+CSS)—— 冶金工程专业展望与介绍介绍网页(2个页面)
  • Flutter基础 -- Dart 语言 -- 注释函数表达式
  • “仿RabbitMQ实现消息队列”---整体架构与模块说明
  • springboot如何快速接入minio对象存储
  • 第六届“智能设计+运维”国产工业软件研讨会暨2024年天洑软件用户大会圆满召开
  • 05.k8s弹性伸缩
  • 【数据结构】详解二叉树
  • MapDB:轻量级、高性能的Java嵌入式数据库引擎
  • Rye: 一个革新的Python包管理工具
  • 如何在C#代码中判断当前C#的版本和dotnet版本
  • Linux 36.3@Jetson Orin Nano之系统安装
  • 案例实践 | 基于长安链的首钢供应链金融科技服务平台
  • Vue3实战笔记(55)—Vue3.4新特性揭秘:defineModel重塑v-model,拥抱高效双向数据流!
  • C++ | Leetcode C++题解之第123题买卖股票的最佳时机III
  • 微信小程序中Button组件的属性值和用法详解
  • 等保测评 | 等保测评简介及流程具体是什么?
  • CompassArena 司南大模型测评--代码编写
  • 叉积和法向量学习笔记
  • YZW900规格书
  • 9岁学生学什么编程好一些:探索编程启蒙的奥秘
  • Java反射实战指南:反射机制的终极指南
  • 高效训练超越LoRA,北航发布MoRA
  • 【Spring】Spring之依赖注入源码解析(上)
  • HBase 常用 shell 操作