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

推荐 google samples for android-architecture

在 Android 正式支持 data binding & MVVM 之前,MVP 可以算是最好的 android app 架构模式。

但是直到前不久,Google 才在 github 上提供了推荐的 android-mvp 做法。

Read More

让 Path 更自然

虽然 C++ 17 终于加入了对文件系统的支持,并且主流编译器的标准库也大都提供了一个 experimental implementation,但是就实际的反馈而言,当前的标准和实现都有点莫名其妙。

对,说的就是 filesystem::path

Read More