自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

求索

Make Something Different

  • 博客(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中的高性能网络

内容是"The Performance of Open Source Applications" (POSA)的草稿, 也是The Architecture of Open Source Applications的后继者. POSA囊括了一批针对性能的优化和设计,以及开发过程中的性能管理等内容的论文

2013-09-03

High Performance Browser Networking

Ilya Grigorik写的强文。 What every web developer should know about networking and web performance

2013-08-13

WebKit中两个小设计(以小见大)

通过介结WebKit中使用的两个小的技术点,来展示一些设计概念。

2013-07-26

Java虚拟机即时编译器的一种实现原理

讲述了JIT中的Trampoline的实现,对于了解JIT很有帮助.

2013-06-09

面向 HTML5 的图形加速和面向移动设备的 JAVASCRIPT 引擎 JIT 优化

本文将首先介绍 HTML5 带来的性能挑战。由于渲染引擎和 JavaScript 引擎 是 Web 运行时两个重要的基本构造模块,本文随后将讨论图形加速技术和 即时 (JIT) 优化技术应用于英特尔® 凌动TM [2] 处理器平台的解决方案,以显 著提升这两大组件的性能。文中评估了我们的解决方案对典型 HTML5 和 JavaScript 基准测试的影响,同时展望了未来工作的走向。

2013-06-09

主动自我优化的编译器

ADAPTIVE OPTIMIZATION FOR SELF - RECONCILING HIGH PERFORMANCE WITH EXPLORATORY PROGRAMMING 关于编译器优化的好文章,包括Inline Cache, Type feedback, Adaptive Recompilation, Performance Evaluation, Self Improving compiler...

2013-06-09

LLDB查看数据类型的示例脚本

不知道大家都没有遇到过在gdb和lldb里输出一个类时困扰,常常要一个个属性展开下去,或者调用提供函数来检查。我分享一个使用LLDB脚本来简化变量输出的方法。

2013-01-14

软件维护计划示例

软件维护计划的例子. 涉及范围、成本、风险等内容。

2013-01-07

McCabe的复杂度论文

McCabe关于软件复杂度的论文,全面而细节。反观现在许多关于McCabe复杂度的介绍却没能这么详细透彻。

2013-01-07

LLDB的Python扩展脚本

在LLDB下可以使用Python编写脚本扩展指令。 可以参考http://blog.csdn.net/horkychen

2012-12-20

Trace-based JIT简介(对Method JIT的改进)

IBM的一份对Method JIT和Trace JIT说明的文档。

2012-08-22

二维条码的插件(Chrome)

做了一个二维条码的插件,默认将当前网页地址转为二维条码。

2012-07-20

二维条码生成插件

二维条码生成插件,重构后。支持右击菜单,简化JS.

2012-07-20

二维条码生成插件 (Chrome)

做了一个二维条码的插件,默认将当前网页地址转为二维条码。

2012-07-14

Extreme Programming Explained英文版 第2版

XP的专业名词翻译得五花八门。这本书是正统之作,有个英文版,可以对照看看一些专业名词。

2012-06-28

Delphi数据库开发入门

2004年左右为同学写的Delphi数据库开发的入门教程,有一些纪念意义。

2011-11-23

代码优化的三个阶段

很久以前写的一个PPT,讨论了算法、流程及编码技巧三个层次的代码优化。

2011-11-23

<<突破思维障碍>>的思维导图 (Freemind)

<<突破思维障碍>>的思维导图 (Freemind)

2011-10-18

使用Cocoa开发的二十四点计算程序

使用Cocoa写了一个小的二十四点计算程序,可供初学者学习Cocoa使用。中间有一个递归调用的示例。 *XCode 3.2

2011-05-21

Lenovo LJ2000打印机驱动

以前自己分析了LJ2000数据所写的驱动程序,可以支持Mac OS及Linux,原来放在MacLinux.cn上,后来网站关掉了。偶然发现竟然有人在引用它,觉得它可能还有点用,就放上来分享.里面包含三个包: Linux:2 (DEB&RPM) Mac OS:1

2010-12-06

代码大全之编程基本功

小组内对代码大全学习的资料,包含的是程序撰写的基本概念!

2010-10-03

PMBOK 3思维导图(第3&4章)

利用MindManager绘制的PMP第3及4章的思维导图,有助于组织记忆!

2010-05-23

The book of Wireless

比较系统的介绍Wireless的资料! 涉及Wireless的基础知识和技术背景!很值得参考,唯一不足是英文书!

2010-03-20

UPnP Device Architecture

UPnP 参考资料! UPnP是实现DLNA的核心,所以读一读会有一些基本概念!

2010-03-18

STL Documents from SIG.com

将SIG上的STL Documents下载后转为CHM文件,方便查询! 本来cnheying已经做了,可惜下载不了,我重做了一下跟大家分享!

2009-09-20

实战KDevelop进行Linux软件开发

很多高手在Linux下很喜欢使用Makefile进行开发,但事实上并不是所有人都适合使用Makefile,尤其是初入Linux世界的人。 许多年来,Linux很难得以普及,就是因为使用及开发的难度被无端地夸大了,许多高手都以能运用复杂的指令为荣,而不愿意轻意妥协于那些更易于掌握的工具。而我认为不要在意用什么开发,只要关注你要开发什么!所以至于工具,自然由你决定。KDevelop也是一个选择,至少它可以使开发者摆脱Makefile体系的困扰! 软件开发要以产品论英雄,任何工具都是熟能生巧罢了,结果也都是殊途同归,没什么复杂的。

2009-03-11

实战KDevelop进行Linux软件开发

很多高手在Linux下很喜欢使用Makefile进行开发,但事实上并不是所有人都适合使用Makefile,尤其是初入Linux世界的人。 许多年来,Linux很难得以普及,就是因为使用及开发的难度被无端地夸大了,许多高手都以能运用复杂的指令为荣,而不愿意轻意妥协于那些更易于掌握的工具。而我认为不要在意用什么开发,只要关注你要开发什么!所以至于工具,自然由你决定。KDevelop也是一个选择,至少它可以使开发者摆脱Makefile体系的困扰! 软件开发要以产品论英雄,任何工具都是熟能生巧罢了,结果也都是殊途同归,没什么复杂的。

2009-03-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除