- 博客(5)
- 资源 (28)
- 收藏
- 关注
原创 Google C++ Coding Style:引用参数
Google C++ Coding Style定义输入参数以值或者const引用形式传入,输出参数使用指针。 所有以引用形式输入参数必须加上const,即const T&的形式。即如下形式:void Foo(const string &in, string *out);在如下情况下, 可以使用const T*的形式: * 需要进行指针的判空 (即空指针是合理的)。 * 需要使用到输入参数的指针或引用形式
2015-07-29 00:43:55 2847 1
原创 大型项目开发: 隔离 (《大规模C++程序设计》书摘)
书中第六章 隔离。 主要在撰述什么需要定义在头文件?什么应当移到编译单元中? 核心仍然是先区分接口定义与实现细节。实现细节的改变会导致客户代码的重新编译,从逻辑上也表示与客户代码间可能存在着强耦合。实现细节与隔离主要考察以下实现细节,它们会在接口中引入实现细节,也是需要考虑进行隔离的内容:继承分层 简单的说就是类的成员中有另一个类的实例时,如Foo mFoo. 这个类就会依赖于Foo的定义。
2015-07-20 00:47:06 3012
原创 大型项目开发:谨慎使用智能指针
智能指针使用上的问题智能指针的使用太普遍了,它让程序员摆脱了内存管理的恶梦,但实际上智能指针本身也可能引入另一个恶梦。主要包括两个问题点:1.性能问题。因为需要引入一些变量(bookkeeping),甚至在多线程下的一些互斥操作,它所带来的性能开销往往比想像的要高。2. 对象释放的时机不明确。比如std::auto_ptr,总让人感觉不明不白,从而引入一些隐晦的问题。
2015-07-13 00:30:37 6708
原创 大型项目开发: 头文件顺序
经验告诉我们,某些编码实践虽然在C++中完全合法,但是绝对不能应用于大型项目环境中。 大型项目环境下必须有适当的约束,否则很容易变得难以控制并很难维护(摘自<<大规模C++程序设计>>)。下面以Chromium中运用的两个Coding Style中定义的头文件顺序为例说明。
2015-07-09 00:25:17 4699 2
原创 技术债务管理以及Firefox/Chromium的债务评价
现在的软件开发是在遍地敏捷,人人讲唯快不破的时代,哪有人有时间思考代码质量,设计的质量? 哪个又不是从一堆代码中杀出血路来实现另一个功能?一个产品都存活不了几年,何必考虑什么可维护性?我们追求进度的时候,总是要牺牲些东西,或是破坏了一些东西等着后面补。这就是技术债! 管理不好,债台高筑,即使不破产,也是要拆东墙,补西墙的玩平衡。现实是残酷的,但不影响我们抬头看看这个世界。技术债务技术债务(Techn
2015-07-04 01:12:41 2638 2
Google Chrome中的高性能网络
2013-09-03
High Performance Browser Networking
2013-08-13
面向 HTML5 的图形加速和面向移动设备的 JAVASCRIPT 引擎 JIT 优化
2013-06-09
主动自我优化的编译器
2013-06-09
LLDB查看数据类型的示例脚本
2013-01-14
Lenovo LJ2000打印机驱动
2010-12-06
STL Documents from SIG.com
2009-09-20
实战KDevelop进行Linux软件开发
2009-03-11
实战KDevelop进行Linux软件开发
2009-03-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人