Posts

Posts

CSV 格式说明和应用

问题 我们常常将多个字符串item使用逗号拼接成一个字符串,用来表示数组,使用时再用逗号切割成为数组。比如安卓机型列表: ALN-AL10,ALN-AL10,BRA-AL00,ALN-AL00/ALN-AL80 直到有一天,苹果设备也要用到这个机型列表,而它的每个机型都带着逗号,那我们使用逗号切割就得到了错误的数据。 iPhone15: iPhone15,4 iPhone15Plus: iPhone15,5 iPhone15Pro: iPhone16,1 iPhone15Pro_Max: iPhone16,2 为了解决这个问题,首先想到了换一个分隔符,比如 | ,再比如用一些不可见字符 : 0x01。 但我们不能保证这些字符串 item 一定不包含这些特殊字符,也许还有更好的方法。 既然是逗号分隔,首先想到的就是 CSV格式,毕竟 CSV 的全称就是Comma-Separated Values逗号分隔值。它是如何解决这个问题的? CSV格式 CSV 的RFC说明文档:https://datatracker.ietf.

By brian
Git hook 开发和实践,提升自动化效率

Git

Git hook 开发和实践,提升自动化效率

我们使用 git 进行版本控制,期间会触发很多事件,这些利用好这些事件做好自动化,能帮我提升效率。git hook 就是一个这样的工具,在特定的事件中执行特定的钩子。 ╰─➤ ls .git/hooks applypatch-msg.sample post-update.sample pre-merge-commit.sample pre-receive.sample update.sample commit-msg.sample pre-applypatch.sample pre-push.sample prepare-commit-msg.sample fsmonitor-watchman.sample pre-commit.sample pre-rebase.sample push-to-checkout.sample 设置钩子路径 git 仓库的钩子存放路径由 core.hooksPath 控制,默认是在项目的 .git/hooks。它不能使用版本控制

By brian
飞书集成平台 x Grafana:打造监控告警系统全攻略

Posts

飞书集成平台 x Grafana:打造监控告警系统全攻略

Grafana告警内容设置 告警内容分为:告警标题、告警说明、告警详情。告警标题和告警说明用来描述告警的规则。告警详情,描述告警的规则和具体的值。 告警详情 Description 设置 1. 打印所有的标签 {{ $labels }} alertname=High CPU usage, grafana_folder=CPU alerts, instance=server1 2. 自定义格式化打印所有的标签 {{ range $k, $v := $labels -}} {{ $k }}={{ $v }} {{ end }} alertname=High CPU usage grafana_folder=CPU alerts instance=server1 3. 打印单个标签 The host {{ index $labels

By brian
Makefile 看这一篇就够

Posts

Makefile 看这一篇就够

makefile 是一个文本文件,以下是一个子命令,包含: * 名称:支持英文、数字、连字符"-"和下划线 " _" * 注释:使用 "#" 表示注释,不支持 /*...*/。推荐写在名称的上一行 * 命令:任何可在 shell 执行的命令行语句。必须是\t 开头,否则报错 make: Nothing to be done for 'build'. * .PHONY:可选,命令声明了 .PHONY,执行时将不会输出具体命令到终端。在一些 CI 工具中可以起到过滤敏感信息的作用。 .PHONY: build # 编译构建 build:

By brian
一个服务端故障应急响应处理案例|演绎

Posts

一个服务端故障应急响应处理案例|演绎

Chapter 1 发现告警 2023年3月11日,上午11点,这是一个周末,大壮正在刷七猫免费小说,一条告警赫然出现在飞书监控告警群里。大壮点开看一下,虽然平常也会有一些 5xx 出现,但是10%这么高占比的有点离谱。大壮顺手就在飞书群@了值班人员阿新。但是阿新一直未读,过了一分钟,新的告警又来了,5xx占比来到了15%。 Chapter 2 接警启动 大壮意识到问题比较严重,立即将最新的告警消息创建了话题,@了Teamleader 阿茂。同时根据《业务线负责人和值班文档》多维表格文档,确定了业务线 owner 小美为【快恢负责人】,在话题中@了他。值班人员阿新同时也是项目的专职【通讯员】之一,也在话题群里@了阿新。接着发起了和小美、阿茂、阿新4人的视频会议。 视频会议: 小美、阿茂上线,阿新依然不在线。大壮反馈了问题;Teamleader

By brian

Posts

文档自动化|apifox分享

大家都知道接口文档的收益很高,但是编写接口文档可能被认为是耗时且繁琐的任务,而且开发人员可能更愿意专注于实际的编码工作。 文档有时候也有它的主要问题,一般是不准确,并且往往是因为过时了。如果不能一直保持百分百正确的文档是不能被信任的。 文档界诞生了一个活文档的概念,并且有以下四个原则: * 可靠:无论何时,文档都是准确的,并且与所交付的软件保持同步。 * 省力:最大限度的减少文档的工作量,即使软件发生了变更、删减或者添加,也仅需少量的额外工作。 * 协作:活文档可以促进所有参与者之间的对话和知识共享。 * 有见地:活文档会将人们的注意力引导到工作的各方面,从而提供反馈机会并鼓励深入思考。 今天我想和大家探讨前两点:可靠和省力。 接口文档自动化 protobuffer + protoc 插件 + openapi ,我认为是这一个“银弹”。 我们可以使用 proto 原型文件 + 插件 protoc-gen-gin-http 生成接入层的接口路由代码。还可以使用 proto 原型文件 + 插件 protoc-gen-openapi 生成 openapi 文件。 P

By brian
沪ICP备2022013452号-1