Post c++ build-system

搞了个 C++ 构建系统

我平时的工作内容是开发在服务端上运行的网络程序,主要语言是 C++,并且几乎全部跑在统一的机器环境上。所以我们一直以来都在使用一套简单从 blade-build 魔改来的编译系统。这个系统的本质是一个 Unix Makefile 的生成器,这个生成器使用 Python2 编写,代码有点难以维护。(毕竟使用动态语言的东西就是这样,出活还是很快的,但是时间一长了,代码就变的很难维护。因为后来的人,很难完全理解其中每个变量的类型,这对于我这种长期写静态强类型语言的人来说,是很痛苦的。)

READ MORE +
Post engineering

软件设计哲学(NOTE)

RED FLAGS

Shallow Module

A shallow module is one whose interface is complicated relative to the functionality it provides. Shallow modules don’t help much in the battle against complexity, because the benefit they provide (not having to learn about how they work internally) is negated by the cost of learning and using their interfaces. Small modules tend to be shallow.

READ MORE +

Paxos Note

Symbols And Structure

  • 表决 $B$
    struct Ballot {
      dec: Decree,      // 表决的内容
      vot: Set<Node>,   // 表决投票通过的节点
      qrm: Set<Node>,   // 表决参与的节点
      bal: u64,         // 表决编号
    }
    
    A ballot is said to be successful, if every quorum member voted. In math: $$ B_{qrm} \subseteq B_{vot} $$
  • 投票 $v$
    struct Vote {
      pst: Node,        // 本投票的节点
      bal: u64,         // 本投票的表决编号
      dec: Decree,      // 本投票表决的内容
    }
    
  • 表决的集合 $\beta$
READ MORE +

关于 cpp 可见性的黑魔法后门

这个点子是我最初在网上其他地方看到的,感觉很好玩。就记录一下啦。


Reference:

  1. http://cpp.kjx.cz/private_backdoor.html
READ MORE +
c++ sfinae Post

一个关于 private member function detect 的 SFINAE 模板

问题的开始

问题起源于,我要搞一个模板,来检查一个类,是不是有一个特定的回调接口 OnAlarm()。我显然希望在我的模板类里面,直接调用这个 OnAlarm 回调的。但是问题,就这么出现了。我需要一个模板,来检查一个传给构造函数的指针指向的类型,是不是有我需要的 OnAlarm 方法。如果没有的话,我需要使用另一套回调的机制。 问题就出在了这个检查上面。

READ MORE +

Previous | 1 / 8 | Next