闲扯 KAdBlockEngine

几天前给 KAdBlockEngine 加上了 README 之后,这个 repo 算是正式的结了。

对别人来说,这只是一个很普通的 repo;但是对我而言,却意义重大。

Read More

避免在类设计上混合 Owner 及 View 语义

这个论断来自于前段时间重构 pickle 时的想法。

The Big Picture

Pickle 是一个二进制序列化设施,内部维护一块 buffer 用以保存被序列化的二进制数据,语义上看,一个 Pickle 对象对内部 buffer 具有无争议的 resource owner 语义。

Read More

Wicked Data Type Promotion

昨天在给 KAdBlockEngineAdFilter 加上序列化/反序列化的支持时,意外的又一次被 data type promotion 坑了,导致一晚上的时间都在 debug…

Read More

Template Type Constraints And Type Traits

模板参数类型约束在 C++ 中一直以来大概得算不上不下的一个处境。

因为非运行时(编译期)的优势,对于参数类型约束的需求不像 C# 那样紧迫;但是同时又因为实例化完成的时期过早,编译器对于模板代码的处理并不能上升到一个精确的语义层次,导致的后果就是模板相关的代码的出错信息一直在井喷,而且相当一部分的错误信息完全没有卵用。

Read More

为什么我反对使用 git flow

如果论知名度,git flow 绝对是现在数一数二的 git 协作模型。甚至直到不久之前,我也在用这个模型作为我在 github 上的几个项目的工作流。

Read More

记一次被 Android 进程复用坑的经历

因为需求需要,把某个功能拆分成一个独立的服务,并由一个全局的 service manager 去控制这个服务;服务对客户端暴露的实现也是通过 service manager

因为服务不需要运行在一个独立进程,manager 和 service 直接通过一个包含服务对象的 local binder 相互通信,看上去大概就这样:

Read More

自己轮的 string_view 和它的小伙伴 tokenizer

String View

string_view 是 C++ 17 引入的一个基础设施,和 array_view 类似,表示一种 non-owning object

Read More