C++杂谈003. 聊聊TDD

TDD(Test-Driven Development)是一种敏捷开发方式,主张:先写测试,再实现功能。 TDD的核心流程可以总结为:红绿重构,感兴趣的话可以去看Kent Beck的《测试驱动开发》,这里仅记录几点对TDD的思考。 思考1、测试驱动开发 vs 测试先于开发 TDD真的只是“先写测试,再写开发”吗?如果只是这样的话,为啥不叫测试先于开发,或者先测试后开发? 这里的关键是如何...

发布于 C++杂谈

C++杂谈002. 接口与智能指针的结合

类(对象)是C++的第一公民,类的接口继承(通过基类指针调用具体类的重载方法)是实现模块解耦的常用方法,而 比如,一个经典的继承例子,Student和Teacher都继承自Person,拥有GetName()方法。 class Person {public: virtual std::string GetName() const = 0;}class Teacher: p...

发布于 C++杂谈

C++杂谈001. exit()时的对象析构

当调用exit()函数终止进程时,会触发C++静态和全局对象的析构,但局部对象不会被析构。 一个简单的demo程序如下: class Foo { public: Foo(const std::string &desc) : desc_(desc) { cout << "call Foo ctor of " << ...

发布于 C++杂谈