李迟2022年12月工作生活总结

70 阅读6分钟

本文为 2022 年 12 月工作生活总结。

研发编码

Go

一个Golang的编译脚本mybuild.sh

#!/bin/bash
​
Version="v0.0.1"
​
VER=""if [ $# = 1 ] ; then
    VER=$1
    Version=""$VER
else
    echo "not set version, using " $Version
    echo "pls confirm(press enter)"
    read
fiecho "build version" $Version# 版本和编译时间 TODO:找一个好的方法:
​
BuildTime=`date +'%Y-%m-%d %H:%M:%S'`
​
GO111MODULE=on go build -mod vendor -ldflags "-X 'webdemo/cmd.BuildTime=${BuildTime}' -X 'webdemo/cmd.Version=${Version}'" -o webdemo main.go
​

脚本中有默认版本号,在运行时,可指定版本号,如没有指定,则提示之,按回车可直接使用默认的。

Docker

构建镜像时,需要打不同的标签,——甚至需要使用不同的内网仓库 IP 地址,为方便一次性构建多个版本,使用如下脚本:

#!/bin/bash
​
VER=""if [ $# = 1 ] ; then
    VER=$1
else
    echo "usage: " $0 "version"
    echo "eg " $0 0.1.1
    exit 
fiecho "building docker image for version" $VER
​
docker build -t latelee/webdemo:$VER -f Dockerfile .
docker tag latelee/webdemo:$VER latelee/webdemo

注1:在脚本执行中指定版本号,无须每次修改脚本文件。

注2:使用dock-compose部署时,为了不用每次版本更新都要改镜像的版本号,将最新的版本号打标签为最新的。如最新的版本是0.3,也是标签为0.3的镜像,也是标签为latest的镜像。

SQL

因工作需求,在 oracle 中添加新的列(当然,在生产环境中是有专人操作的)。在本地测试时,发现读取不了数据,后来才知道,原来 oracle 的字段名称必须是大写。否则提示标识符无效。示例:

select a.phoneNum from UserInfo a
> ORA-00904: "A"."phoneNum": 标识符无效

如果把表名改为全大写的phoneNum,则上述查询语句正常执行。注意,执行的SQL语句中,a.phoneNum可以不用全大写。

删除语句示例:

delete from UserInfo where name='latelee'
delete from UserInfo where name='latelee' and id=3

根据测试,如果涉及删除,一定要加上所有的主键字段,否则会误删其它数据。

云原生开发

云原生开发并不简单,现在发现,之前的程序很难适应于容器化部署及集群的环境。比如,多副本是很常用的方式,但程序写日志时,并没有区分不同的容器,另外没有解决如何指定主机名的问题(用 docker-compose的 deploy 的话,方便部署,但不方便查日志)。比如,有些程序用 socket 连接本地进程时,直接使用127.0.0.1的固定IP,在容器下无法正常运行。 有个程序初始化时需要连接数据库,成功后方可进行业务处理,起初设计时,当连续连接约1分钟数据不成功时,会退出程序,在容器环境中,会自动重启,因此没问题。但后来,需要在另外的非容器的环境变量使用相同的程序,一旦连不上就无法重启了,于是改成连接数据直至成功。从中可知,在开发时,考虑的事还是比较多的。 因为自己懂点 docker,把那套系统涉及的若干个程序全部容器化,起初安排了2天时间,但工作量很多,前后花了近一周时间。包括找基础镜像,改基础镜像,搭建镜像仓库,构建镜像,测试镜像,解决依赖库,部署,各应用服务运行,等等,一来那些程序本身就复杂,二来很多不是自己负责的程序,业务配置方面都不熟悉,三来在整体部署时,还在对自己的程序进行修改,一会改代码,一会升级部署,切换频繁。

工作记录

这个月比较忙,因为有项目月底上线,已经派出了大量人员,办公室就剩下几个人了。虽然我不用出差去现场调试,但也要远程协助,自己负责的模块出问题,要及时改。

这个月请假了一周,是今年2月份至今唯一的一次请长假。那天周四,因故搞到半夜2点半,周五早下班,周六又搞到半夜12点多,回去就觉得不舒服,头晕。周日发冷,虽然穿着2件外套,虽然晒着太阳,还是觉得冷。下午醒来若干个未接电话,到6点时,出发加班,叫了个外卖,搞到9点,实在顶不住了,明显感觉到已经发烧。幸好车少人少,平安回家,立马上床,一夜未能安睡,周一早上请假两天,到周二还是头晕,继续请假。周三已经感觉好了很多,可以正常办公,居家期间感觉比上班还忙,随时可能有电话来,修正了不少问题。

月底事多,时间急,自认办事还算细心,但忙中还是出错了,有些不影响上线,有些是现场发现需马上查问题改问题。事情一旦多了,难免出错,即使被呛了,也不敢说其它话,只描述事情、bug和方法。年底了,该加班就得加班,该积极还是要积极,一年过去了,兜里还是空的,需要对年终奖抱一定希望,明年要还一部分外债了。

生活记录

大锤拔牙了。当我发现时,新牙齿已经长出来了,一开始想着大锤自己能动手,但过了几天还是不行,自己又不敢强拔,去诊所找人,其实就是拿钳子大力拔,然后收费5块。

小区群里隔几天就吵一次,各种阴谋论,扯到最高法,扯到公平公正,人太复杂了,分不谁是谁非。其实我不关注哪个物业管,因为我知道,不管是什么名称,凡是带“物业”的,不会脱离物业的一般属性。我只关心物业费有没有提价,水电是否正常供应,目前小区断电是常事,前几个月发生严重的停事故,幸好我在停电后才回到小区,后来来了3车消防车,大锤大妞近距离观看,很是兴奋。

其它人的想法管不了,但家里面,凡是有点不好的事,都住严重方面说,所以像“病毒”、“细菌”、“毒 株”、“发烧”、“上火”、“火灾”、“捡垃圾”这些都是常用词。

思想方面

那次发烧,我不确定是不是被感染了,因为2天就退烧了,但前后咳嗽有十几天时间。对于生病,我从来是等闲视之,不到最后关头是不会吃药的。也不想让这个事占据自己太多时间。

业余阅读

这个月终于下决心买了本古代汉语词典,还买了些小说散文集。不过看的少。偶尔看点词典,利用分散时间记一下古文。

买了本漫画版的西游记给大锤,如果晚上不忙时,讲几回给他听,顺便认一些字。对于认字,我实施的计划是拿常用字、背过的诗词、经典的古文来教。认字过程中,组的字词或句子,都是从诗词文中来的。

业余研究