Brook's Blog

Recent Posts

  • 2020-06-11

    bufio的源码阅读

    介绍这个package提供带有缓冲的io。Reader// Reader implements buffering for an io.Reader object.type Reader struct { buf []byte rd io.Reader // reader provided by the client r, w int // buf read and write positions e...

  • 2020-06-11

    failure的源码学习

    源码来自这里,其给error提供了一种错误码的方式来表示错误,并且与golang中的error能够兼容。具体的API可以见下面的测试用例测试用例// 创建错误码// 内置StringCodevar NotFound failure.StringCode = "NotFound"// 根据错误码来创建errorerr := failure.New(NotFound)// 判断是否为相关错误码if failure.Is(err, NotFound) { // true r.Wri...

  • 2019-07-31

    effective cpp笔记

    const 与 #define的区别 编译器处理方式不同:define宏是在预处理阶段展开,const常量是要在编译运行阶段使用 类型和安全检查不同:define宏没有类型,不做任何类型检查,仅仅是展开。const常量有具体的类型,在编译阶段会执行类型检查 存储方式不同:define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。const常量会在内存中分配(可以是堆中也可以是栈中。尽可能的使用const 将某些东西声明为const,可以帮助编译器检查错误。const可以...

  • 2019-07-31

    paxos算法总结

    资料 http://www.leviathan.vip/2018/05/24/Paxos%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/ https://www.the-paper-trail.org/post/2009-02-03-consensus-protocols-paxos/ http://rystsov.info/2015/09/16/how-paxos-works.htmlpaxos作用paxos帮助系统在出现网络错误(partition-to...

  • 2015-04-01

    C++ FAQ Reading之构造函数

    类的设计应该考虑属于这个类的每个对象的真正属性,这称为不变性.意识是属于这个类真正本质的东西.构造函数的工作就是建立起这种不变性.每个成员函数都应该维护这种不变性. 有多种方式来表达多态的语义,可以在运行期间(通过基类对象的指针和引用),也可以是在编译期间 分层次的设计类,是为了表达类之间的层次关系,这样是为了简化代码 coding standards需要具有一致性的philosophy of design and implementa...