关于 C++ 未定的行为

4 最后,不应该研究未定义行为( 对,第4点很重要!但是,cpp的未定义行为实在太多了,要提前学完也还真不容易。 给了const,又能const_cast。大家不应该经常cast,但是又没办法就是需要cast,比如派生类指针在继承树上候选类型之间的切换。开发者得一个个都经历,都思考,然后才能用好。 Bjarne Stroustrup说相信程序员都是聪明的,但是程序员很多时候并不相信自己足够聪明。我就经常在debug的时候怀疑人生。……

阅读全文

git rebase 保留提交者原始日期?

1 Preface 当使用 git cherry-pick A^..B 来 copy 一组 commits 时,会默认使用当前的系统时间; 我们想修改一组 commits 的 author和 email,但是要保留 commit-date 和 author-date, 这时候该怎么做呢? 2 解决办法 1 git -c rebase.instructionFormat='%s%nexec GIT_COMMITTER_DATE="%cD" GIT_AUTHOR_DATE="%aD" git commit --amend --no-edit --reset-author' rebase -i ${hashid} 不使用-i,改为 -f,则不显示交互会话界面,直接执行。 默认只影响 hash-id 之后的commits,如果需要从 root 开始rebase,则使用 --root to rebase all。 3 参考 1 How to update git commit author 2 更多玩法 How to preserve the committer date in git-rebase.md……

阅读全文

过敏性鼻炎用药-备忘录

本文为转载内容 以下内容来源转载: 3. 药物科普 在常规治疗中,我们提到了最重要的一点,就是在整个过敏季,要全程用药。但市面上有那么多种抗过敏药,到底有什么区别,每一种都要提前一周吃吗?也不见得,全程用药是个笼统的说法。但药物之间还是有个差异的。下面,我们就来讲一讲。 一般来说,我们能够拿到的正规的,治疗过敏性鼻炎的药物有三种: 3.1 绝对主力:口服抗组胺药物 如果你每年固定时间段过敏,那么非常建议你在过敏季提前一周开始使用口服抗组胺药物,并一直服用到过敏季结束。 代际 常见药 白话优缺点 一代抗组胺药物 扑尔敏、苯海拉明……

阅读全文

zsh 插件推荐

1 准备工作 先安装 oh-my-zsh 配置管理工具 2 zsh常用插件 命名补全:zsh-completions brew install zsh-completions 如果自动补全不生效,将以下2个目录,追加到FPATH路径中即可。 在.zshrc 文件中,添加如下内容: 1 2 3 4 5 6 if type brew &>/dev/null; then FPATH=$(brew --prefix)/share/zsh-completions:$(brew --prefix)/share/zsh/site-functions:$FPATH autoload -Uz compinit compinit fi 3 扩展 其他第三方工具,自动补全脚本(比如goup)保存在如下路径即可。 goup completion zsh > $(brew –prefix)/share/zsh/site-functions/_goup……

阅读全文

Go 新版本特性

Go 1.21.0 2023-08-08 slices、maps 泛型库:《slices、maps 泛型库终于要加入标准库。。。》 for 循环变量的语义变更:《Go 团队将修改 for 循环变量的语义,新版本即可体验!》 context 可设置取消原因和回调函数:《Context 可以设置取消原因和回调函数了,等的可太久了!》 主版本号支持第三位数字 0:《Go 改版本号规则,主版本号终于支持第三位数字 0 了。。。》 统一标准 log/slog:《Go 十年了,终于想起要统一 log 库了!》 支持自定义 go.env 文件:《支持自定义 go.env 文件,可惜还是有所残缺。。。》 增强约束 Go 程序构建:《go.mod 的……

阅读全文

什么是 CPM、CPC 和 CPA?

在线广告领域,特许人支付广告费用的方式主要有三种,CPM、CPC 和 CPA。 首先,让我们花点时间为您定义它们。 CPM(Cost Per Mille): 广告商需要为 1,000 次展示或观看支付的金额。 CPM=总消费/曝光量1000 CPC(Cost Per Click): 广告商需要为 1 次点击支付的金额。 CPA(每次操作成本): 广告商需要为 1 次操作支付的金额。例如,如果有人要填写联系表,特许人只支付广告商只支付给平台的费用。 (注意:通过将 CPM 除以 1000 可以很容易地计算出一次展示的成本。但是,由于这是行业发展的方式,因此价格几乎完全按照……

阅读全文

LogReplay 流量录制回放设计与实现

1 前言 基于拦截器,实现一个基于 trpc 协议的流量录制、回放插件。 支持回放流量验证。 常用场景: 服务重构后的流量验证,差异检测 日常需求迭代,回放验证(上线前) 2 整体方案 实现两组拦截器:录制拦截器、回放拦截器 录制拦截器:负责记录服务接口+所有下游调用数据(req、rsp、err),序列化后上报,用于回放。 回放拦截器:负责下游调用的mock(不实际发起调用),服务接口的回包上报,用于diff。 回包 diff 能力:由 LogReplay 平台提供,拦截器插件只负责上报diff所需数据。 补充一点,如何保存切面数据? 方案一: 基于trpc包头 metadata……

阅读全文

Gerrit 使用

前言 Gerrit 是一个免费的、基于网络的团队代码协作(code review)工具。 常用快捷键 快捷键 作用 ? 显示所有快捷键手册 c 快速评论 cmd+s 保存评论 [ 上一个文件 ] 下一个文件 h 显示/隐藏所有评论 f 展开cr文件列表 r 勾选/取消文件的审阅标志 📢注意:因为gerrit提供了丰富的快捷键,如果 chrome 使用了 Vimium 插件, 方法: 点击Vimium插件图标,即可对对应站点禁用 (Keys为空表示该链接下禁用)……

阅读全文

忙碌的七个层次

生活的忙碌可以分成七个层次。 大家可以对照一下,自己属于哪个层次? 第 1 级:一点不忙。 时间很自由,怎么安排都可以,没有一定要去完成的事项,周末想睡多久就多久。 第 2 级:有一些小事。 你记得有一些事要做。这些事情是合理的事项,没有截止期,但是你知道这些事迟早要做。 第 3 级:有一些重要的事。 你有必须要做的事情,需要及时跟踪,不能拖延,你会时刻提醒自己这些事情。 第 4 级:日程排满了。 你的日程排满了,不得不经常问自己"什么事情更重要?",以便决定先做哪些事,后做哪些事。 你没有计划外的时间,不过你……

阅读全文

如何做代码 CR?

一、设计问题 (ABI 原则) CR 的意图 (Intention) 首先要了解整个 CR 要解决的问题; 正确的解决方案 (Better Solution) 在了解问题的基础上,思考标准的解决方案; 架构设计(合理的分层)(Architecture Design) 包设计 类设计 接口设计 安全 (safety) 不要迫使使用方到处传递敏感信息 二、实现问题 命名规范 命名规范: 一致性 注释和代码保持一致 同一个概念,不要用多个(近似但不一样的)名称 作用域……

阅读全文

最近文章

分类

友情链接

标签

其它