自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

THINK . DESIGN . CODE

易旭昕的个人博客,关注Android,Qt,WebKit

  • 博客(73)
  • 资源 (4)
  • 收藏
  • 关注

原创 管理还是技术,这是一个问题

管理还是技术,一个资深工程师在工作了7,8年,做到了一线主管或者开发组长的位置后,再继续往上走,多多少少都会面临这样的困惑吧。 以华人文化,甚至亚洲文化来说,一般来说都是重管理而轻技术,即使在公司,部门里面是技术骨干,想要做到更高的位置,拿到更好的报酬,承担越来越多的管理工作是必然的结果。但是对于技术人员来说,位于管理的世界,可能会有一种失衡的感觉吧,这个世界不再有什么确定性的

2009-09-12 03:17:00 1264

原创 回字的4种写法

不得不感叹计算机科学这个领域真是术语满天飞,借用的,自创的,华丽的,生僻的,或者频频出现在新技术的宣传文章中,或者出在方法学家的长篇大论中。更让人郁闷的是,同样的术语在不同的上下文或者不同的技术派别中还常常有相似但微妙区别的解释。下面是面向对象编程中常出现的术语:functionproceduremethodoperationmemberfeaturepropertyattributefield恐

2008-06-24 16:23:00 2423

原创 事件,委托,处理器 Event, Delegate, Handler

在C#或者说.Net的事件处理机制中,有三个关键的概念 - 事件(Event),委托(Delegate)和处理器(Handler),另外在面向对象的背景中,还有另外两个概念 - 发送者(Sender),接收者(Receiver)。后面两者,Sender和Receiver比较容易理解,而前面3者则容易让人混淆,下面的内容试图对它们进行解释和澄清。事件(Event)通常是类实例的属性,它可以被

2008-06-18 09:56:00 2292

原创 福尔摩斯式的推理和软件构造

隐喻(Metaphor)的力量是强大的,在计算机的世界里面,我们已经习惯使用各种各样真实世界的事情来和软件开发中的概念进行比对。比如,软件构造过程的建筑隐喻,植物生长隐喻。Meyer的契约式设计(Design by Contract)使用客户与供应商之间的合同、契约来比喻软件系统中类的使用与实现之间的关系,从而验证类的正确性在于类的实现需要满足契约,系统的正确性在于类的使用同时也满足契约,而契

2008-06-17 11:23:00 1249

原创 部分类 partial class

最近接触了一些C#,认识了C#中部分类的概念。 用partial修饰符修饰的类,被允许放在不同的源代码文件(.cs)里面,编译时,编译器会自动把分布在多个源代码文件中的类定义合并成一个完整的类,而从使用者的观点来看,完全跟非部分类一样。仅仅是提供给类的编写者一种更好的代码物理组织的方式。 部分类最常见的用途应该有两种: 1, 区分自动生成的代码和手写的代码,像UI设计器生成的UI布局

2008-06-16 16:16:00 1256

原创 易用性是需要代价的

正在看《.Net设计规范》这本书,书中给出了各式各样的规范和原则, 解释了这些规范和原则如何帮助.Net开发组达成它的目标 - 设计出强大且易用的框架。 微软提供了大量的开发平台给开发者,从最简单的VBA宏编程, 到基于窗体的可视化VB编程,再到提供MFC类库包装API,再到直接使用Windows API,还有基于COM规范设计二进制可重用组件等。而.Net平台设计的目标很大程度就是为了统一这

2008-06-14 09:31:00 1262

原创 QT Graphics View 框架介绍

我在一个鼠标可用性测试的项目里面用到了QT的Graphics View框架(使用Python+PyQt),这是一篇简单的介绍文章,Graphics View框架为2D绘图提供一个简单,容易使用,功能强大的解决方案,如果你正在开发需要复杂2D绘图功能的软件,可以考虑使用它。QT的2D绘图系统结构QT的2D绘图系统可以分作为两层,包括底层的绘图引擎和上层的图元绘制框架。基础的绘图引擎主要包括QPain

2008-06-10 13:23:00 7165 2

原创 硬件还是软件

现在的猎头还真是好玩,还会假冒身份。昨天收到一个奇怪的电话,说是北京分部的同事,开口就问我是不是做硬件的,我说是做软件的,对方然后就问能不能告知搞PCB Layout的同事的电话。我当时还没醒悟过来,心里奇怪说你名字都不知道就随便乱找吗?就问对方是那个部门的。对方支支吾吾半天不回答,还是坚持我能不能随便告诉她几个硬件开发的同事的号码。这时我大概就已经猜到了,就直接告知她去问自己的同事或者主管,号码

2008-06-07 11:45:00 1334

原创 Python + PyQt

今年起使用Python也有一段时间了,从一开始对无静态类型系统的不适应,到对Python的语言的灵活性,强大的语法表达能力和丰富的库资源感到越来越羡慕。要是C++标准库也有Python库里面的功能.....要是C++的String,List,Map也是内置数据类型.......,呵,我想,大概C++的程序员做梦都会笑吧 ^_^无论如何,现在在桌面系统开发上拥有了两套基础的技术方案:1, C++ +

2008-06-03 05:38:00 1291

原创 Parnas 的经典论文 – “系统模块分解的标准” 简介

Roger.Yi ([email protected]) Parnas被视为软件设计中关于信息隐藏和变化封装等概念的首要提出者,源于他70年代的一系列经典论文,其中71年的“系统模块分解的标准”最广为人知。 论文中Parnas用一个小的案例,通过两种不同的系统分解方法来进行对比。 前一种方法是当前所常常被使用的,按照流程图式的功能分解的办法,通常会把一个系统划分为,输入模

2007-12-05 11:55:00 2766 2

原创 C++中的作用域解析

C++中的作用域解析 Roger.Yi ([email protected]) C++到底有多少作用域,它们的作用是什么,又是如何相互影响的。   上图显示了C++中所有的作用域,也试图图形化它们之间粗略关系,这里当然无法表达的

2007-12-04 12:28:00 3203

原创 管理中“南辕北辙”的故事

Roger.Yi ([email protected])昨天跟经理聊天的时候,经理向我抱怨一位同事自视过高,不愿意与人合作,如果他能力超群,一个人全部搞定那也就罢了,偏偏又能力一般,最后把事情搞的一团糟。责备他吧,他又的确是在很努力的工作,但是明显他的努力缺乏建设性,反而不少破坏性。工程师自然有他自己的责任,但是仔细往深处想想,管理者是不是也有责任呢?首先,管理者招募到正确的职员吗?其次,管理者

2007-10-11 09:45:00 2132 1

原创 错误处理基础指南

Roger.Yi ([email protected])这篇文章是应经理的要求写的,旨在给部门的软件工程师提供一些关于错误处理方面的知识,帮助他们写出更高质量的代码。文章主要参考了C++编程规范(差不多算半抄了 -_-),还有其它一些C++和软件工程方面的书籍。我发布之前刚好看到刘未鹏老师写的同样关于错误处理的文章:http://blog.csdn.net/pongba/archive/2007

2007-10-10 17:19:00 1055

原创 LCMS色彩转换代码分析

Roger.Yi ([email protected])文章主要对LCMS库中色彩转换部分的代码作分析,涉及到色彩管理基础和怎么使用ICC Profile进行色彩管理等知识。PDF下载: http://d.download.csdn.net/filedown/aHR0cDovL2RsMi5jc2RuLm5ldC9kb3duNC8yMDA3MTAxMC8xMDE2MjcxNjQxNC5wZGY=!

2007-10-10 17:05:00 1737

原创 LCMS介绍

Roger.Yi ([email protected])LCMS库包含色彩管理所需要的所有功能,符合ICC Profile v4标准。 我们可以在我们自己的色彩管理软件中使用LCMS,实际上不少Linux系统都使用LCMS作为色彩管理的引擎,作用类似于Windows的ICM,Mac的Color Sync,和Adobe的ACE。PDF档下载:http://d.download.csdn.net/f

2007-10-10 16:32:00 2160

原创 非局部变量初始化议题讨论

 非局部变量初始化议题讨论 Roger ([email protected]) 这篇文章集中讨论了非局部变量的一些初始化议题,包括非局部变量的定义;非局部变量初始化规则和现实中跨编译单元的初始化顺序依赖的几种解决方案。 文中的内容都源自一些C++书籍(BS的TCPL,Sutter的Exceptional系列),库的源代码和MSDN。 1.非局部变量的定义 

2007-02-21 11:03:00 2193

原创 shared_ptr 两种常见的使用方式 (1)

Roger([email protected])1. 当作类对象的“共享句柄”来使用2. 在类内部提供资源管理服务 —— “为类提供资源的共享拷贝语义(或称为浅拷贝shadow copy),并在正确的时间回收资源” 上述的两种方式一种是在类外部使用,一种是在类内部使用,然而这两种方式并不是非此即彼的关系,很多情况下我们都可以选择任意一种,选择其中一种理由通常是遵循“更容易

2007-01-22 11:23:00 2777

原创 VC 2005 解决方案的目录结构设置和管理

VC 2005 解决方案的目录结构设置和管理 Roger ([email protected]) 一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于单元测试,还有的产出最终的应用程序执行档。除此以外,根据项目的需求,还会使用一些第三方的库。 所以为解决方案设置一个合理的目录结构,不但可以使得代码管理更井井有条,项目成员之间也更容易

2007-01-13 13:13:00 17565 25

原创 Argument Dependent Lookup (ADL, a.k.a. Koenig Lookup) 解析 (3)

Argument Dependent Lookup (ADL, a.k.a. Koenig Lookup) 解析 (1)Argument Dependent Lookup (ADL, a.k.a. Koenig Lookup) 解析 (2)Roger([email protected])在前一篇文章的最后讲到Koenig查找会带来些副作用,其实之所以写这系列文章,起源是来自于我在看Boos

2006-12-20 11:21:00 3005 1

原创 Argument Dependent Lookup (ADL, a.k.a. Koenig Lookup) 解析 (2)

Argument Dependent Lookup (ADL, a.k.a. Koenig Lookup) 解析 (1)Roger([email protected])在说明顺序查找和Koenig查找如何共同作用的之前,先解释一下顺序查找,所谓顺序查找,就是从函数调用所处的域开始(如果函数调用处于一个成员函数中,初始域就是类域,如果处于自由函数中,初始域就是名字空间域或者全局域),依次由内

2006-12-19 17:29:00 2159

原创 Argument Dependent Lookup (ADL, a.k.a. Koenig Lookup) 解析 (1)

Roger([email protected]) ADL,参数相关查找,也称作为Koenig查找(以Andrew Koenig的名字命名,有兴趣可以看Scott Meyer的文章The Most Important C++ People...Ever),是指在编译器对无限定域的函数调用进行名字查找时,所应用的一种查找规则。f(x, y, z); // unqualif

2006-12-19 10:34:00 2988 2

原创 auto_ptr与shared_ptr --- shared_ptr (2)

Roger ([email protected])auto_ptr与shared_ptr --- auto_ptr (1)shared_ptrshared_ptr是Boost库所提供的一个智能指针的实现,正如其名字所蕴意的一样: An important goal of shared_ptr is to provide a standard shared-ownership po

2006-12-15 18:20:00 5434 1

原创 auto_ptr与shared_ptr --- auto_ptr (1)

Roger ([email protected]) 这篇文章试图说明如何使用auto_ptr和shared_ptr,从而使得动态分配对象的使用和管理更安全,方便。除了一般的使用说明外,更主要是说明它们之间的异同 —— 满足需求的不同和开销上的差异。 文章的多数知识都来源于: 1. Exceptional C++(Herb)Item 37 auto_ptr2. Exce

2006-12-14 13:54:00 5601 2

原创 如何使用前置声明取代包括头文件

这篇文章很大程度是受到Exceptional C++ (Hurb99)书中第四章 Compiler  Firewalls and the Pimpl Idiom  (编译器防火墙和Pimpl惯用法) 的启发,这一章讲述了减少编译时依赖的意义和一些惯用法,其实最为常用又无任何副作用的是使用前置声明来取代包括头文件。Item 26 的Guideline - "Never #include a head

2006-12-12 12:09:00 11219 5

原创 QT - QODBC数据库编程 --- Access 中二进制大对象的存取 (2)

 Access中并没有BLOB或者CLOB类型字段,要将文件的二进制数据存放在Access中,需要使用的是Access的OLE对象字段,让人觉得不爽的是Access软件没有MySQL Query Broswer那样直接查看二进制数据,导出文件,甚至作为图像文件直接打开的功能,除非是将二进制大对象包装成OLE对象 。(这是题外话,但是的确给工作带来不便)回到Qt,Qt中要进行二进制大对象的数据库操作

2006-12-11 09:44:00 5484 1

原创 Heroes 天骄里面的人物及能力

更新到第11集 Fallout CLAIRE BENNET高中学生,学校球队的拉拉队员,能力是不死身,身体具备超强的自我恢复能力。 HIRO NAKAMURA一个小职员,能力是穿越时间和空间。PETER PETRELLI护士,可以在梦中看到未来发生在自己身上的事情,并且在靠近别的具备超能力的人的时候能够模仿别人的超能力。ISAAC MENDEZ画家,在翻白眼的时候能够画出未来的景象,但是作画的内容

2006-12-07 13:43:00 6396

原创 Java 为什么没有操作符重载

最近一直在看Herb 的 Exceptional C++ 系列书籍 ,Scott Meyer 在书的序中写到,Exceptional C++是一本常常会"make me surprise" 的书,的确,即使使用了C++ 已经很多年,但看这样的书仍然让自己觉得对C++的理解还十分浅薄。但是正如不断有人提出来的这个问题 - “是系统设计的复杂程度本身需要那么多的知识,经验和技巧还是C++ 自己本身太过

2006-12-07 10:40:00 7871 2

原创 QT - QODBC数据库编程 --- 连接 MS Access (1)

QT为数据库编程提供了一个类似JDBC的统一操作模型,它的底层是具体数据库或数据库接口的插件,由它们负责完成真正的数据库操作。QT自带有QODBC Driver,在Windows平台上通过系统提供的ODBC Driver可以访问支持ODBC的数据库,如Ms Access、SQL Server等 (Windows XP 自带有Access和SQL Server的ODBC Driver)。QT数据库模

2006-12-01 17:13:00 14325 1

原创 一个用于分步计时的计时器

通常我们在测试程序效能的时候,都需要一些计时的操作,计时的API调用林林总总,我自己比较喜欢使用的是boost库里面的timer,方便实用。不过对于需要分步计时的状况(比如一个完整的处理过程要分成4步,我们希望得到每一步花费的时间和总共花费的时间),还需要写满多额外的代码,而一个优秀的程序员应该遵循DRY - Dont repeat yourself 的原则 ^_^,所以自己写了一个可用于分步计

2006-11-27 11:07:00 1589

原创 一个Java Enum的C++实现

Java 1.5提供了一个新的类型 - Enum,区别于传统C/C++的整型语义的枚举,Java的Enum为使用多态分支来取代 if/else 和 switch 这样的类型码相依逻辑的选择代码块提供了一个轻量级的实现,并同时具备传统的整型枚举语义与额外的便利的字符串语义 (可以获得枚举量对应的整型序号值与字符串值 oridinal toString,或通过字符串值获得对应的枚举量 valueOf)

2006-11-25 23:46:00 3081

原创 转换指南 —— 从 ISO-C++ 到 C++/CLI v1.0

转换指南 —— 从 ISO-C++ 到 C++/CLI  v1.01.    CLI关键字... 12.   内存模型的变化... 43.    新的指针 —— 跟踪句柄,内部指针,图钉指针... 74.   CLI类型... 125.   CLI运行时的类型操纵 —— 反射和特性... 276.   与ISO-C++之间的互操作... 317.   参考资料... 33 1.       CLI

2006-01-09 09:49:00 3151 1

原创 DLU?Pixel?关于控件的长度单位。

因为以前很少用VC做UI方面的工作,当开始用VC做UI的时候,碰到了一些很让人费解的问题。在对话框编辑器里,我初始以为所有的控件长度单位都是以象素为单位,后来才发现不大对劲,控件Show出来的大小明显要比相应的象素大小要大,查询资料才发现,这些长度是以DLU为单位的。何谓DLU,DLU是Dialog Unit的缩写,字面的意思自然是对话框单位,DLU是怎么定义的,这又关系到了另外一个单位Dialo

2005-04-19 15:59:00 4362

原创 一个用于Debug的小函数

虽然VC 7 (.Net 2003)的调试器做的已经很好了,但是仍然有些不足的地方。我们通常会使用一些标准库里面的容器来存储数据,如vector,在调试程序的过程中我们希望能够看到容器里面数据,从而找出程序那些地方有Bug。但是调试器仍然没有智能到可以在调试的时候查看标准库容器里的数据,当然这个需要调试器额外对标准库的数据结构进行识别,这样的要求似乎也是比较过分,况且某些时候我们还会使用其它库或者

2005-04-18 13:04:00 1460

错误处理的基础指南

错误处理的基础指南,介绍错误处理

2007-10-10

错误处理的基础指南

错误处理的基础指南,介绍了错误处理相关的知识

2007-10-10

LCMS色彩转换分析

LCMS色彩转换分析

2007-10-10

LCMS Introduction

LCMS Introduction

2007-10-10

空空如也

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

TA关注的人

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