随笔分类 -  编程

程序设计,代码,架构等方面知识
利用 RUP达到 CMM2和3级
摘要:摘自:http://www.ltesting.net/html/29/n-141629.html摘要软件工程协会 (SEI) 的能力成熟度模型 (CMM) 提供了一种著名的软件流程成熟度基准。CMM 已经成为了许多领域内的流行工具,用于评估一个组织的软件流程的成熟程度。本白皮书说明了 Rational Unified Process 如何支持正在努力达到 CMM 级别 2 (可重复的)和级别 3(已定义的)的组织。简介软件工程协会 (SEI) 的能力成熟度模型 (CMM) 是一个描述有效软件流程元素的框架 [REF1]。CMM 描述了一条从临时的、未成熟的流程向成熟的、规范化的流程演进的途径。 阅读全文
posted @ 2012-05-04 11:48 麦爸Simon 阅读(245) 评论(0) 推荐(0) 编辑
Delphi DLL运行时的错误和处理
摘要:由于DLL无法控制应用程序的运行,导致很难进行异常处理,因此编写DLL时要十分小心,以确保被调用时能正常执行。当DLL中发生一个运行时间错时,相应DLL并不一定从内在中移去(国为此时其他应用程序可能正在用它),而调用DLL的程序异常中止。这样造成的问题是当DLL已被修改,重新进行调用时,内存中保留的仍然可能是以前的版本,修改后的程序并没有得到验证。对于这个问题,有以下两种解决方法: 1、在程序的异常处理部分显示将DLL卸出内存; 2、完全退出Windows,而后重新启动,运行相应的程序。 同一般的应用程序相比,DLL中运行时间错的处理是很困难的,而造成的后果也更为严重。因此要求程序设... 阅读全文
posted @ 2012-04-28 16:45 麦爸Simon 阅读(1042) 评论(0) 推荐(0) 编辑
聚集索引与非聚集索引及其查询效率【转载】
摘要:摘自:http://www.cnblogs.com/myaspnet/archive/2011/06/16/2082667.html在以下的文章中,我将以“办公自动化”系统为例,探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页。以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构:CREATE TABLE [dbo].[TGongwen] ( --TGongwen是红头文件表名 [Gid] [int] IDENTITY (1, 1) NOT NULL , --本表的id号,也是主键 [title] [varchar] (80) COLLA 阅读全文
posted @ 2011-07-29 17:28 麦爸Simon 阅读(1286) 评论(0) 推荐(0) 编辑
使用Guid做主键和int做主键性能比较
摘要:摘自:http://www.cnblogs.com/jackhuclan/archive/2010/01/04/1639005.html1.在经常需要做数据迁移的系统中,建议用Guid。并且在相应的外键字段,也就是用来做连接查询的字段添加非聚集索引,对于改善性能有极大的好处。where条件的字段也可以适当添加非聚集索引。2.在使用Guid类型作为主键时,数据类型应为uniqueidentifier,并且一定要记得取消主键的“聚集索引”3.对于不需要做迁移,或小型系统,用int做主键还是很方便的,并且在效率方面还是有一定提升的。 阅读全文
posted @ 2011-07-29 16:55 麦爸Simon 阅读(1014) 评论(3) 推荐(1) 编辑
没有界面就是最好的界面【转】
摘要:用户体验系列:没有界面就是最好的界面【转】2009-04-20 11:34摘自:http://hi.baidu.com/inetpm/blog/item/03e19c7ff6557d0028388adf.html用户体验的极致就是,不需要学习就可以直接使用,电脑明显不在其列。按下电源开关,屏幕亮起来。一手握鼠标,一手放在键盘上,鼠标指针在屏幕上从一个图标滑到另一个。我们每天都在这么做。鼠标是一种很怪异的东西。我们在一个水平面上移动鼠标,指针却在另一个垂直平面上移动。还有比这更不合理的事情吗?我们和其他东西交互的途径都叫界面。用键盘鼠标来操作电脑,键盘鼠标和电脑上显示出来的东西是界面;写字时,笔 阅读全文
posted @ 2011-06-24 18:09 麦爸Simon 阅读(266) 评论(0) 推荐(0) 编辑
深入浅出之正则表达式
摘要:深入浅出之正则表达式(一)引自:http://www.cnblogs.com/dragon/archive/2006/05/08/394078.html前言:半年前我对正则表达式产生了兴趣,在网上查找过不少资料,看过不少的教程,最后在使用一个正则表达式工具RegexBuddy时发现他的教程写的非常好,可以说是我目前见过最好的正则表达式教程。于是一直想把他翻译过来。这个愿望直到这个五一长假才得以实现,结果就有了这篇文章。关于本文的名字,使用“深入浅出”似乎已经太俗。但是通读原文以后,觉得只有用“深入浅出”才能准确的表达出该教程给我的感受,所以也就不能免俗了。 本文是Jan Goyvaerts为R 阅读全文
posted @ 2011-06-20 14:46 麦爸Simon 阅读(178) 评论(0) 推荐(0) 编辑
dxSkinController动态调入皮肤
摘要:摘自:http://hi.baidu.com/brainsoft/blog/item/580446386372de2996ddd850.html/cmtid/f1a341d0dfc1cb81a1ec9c31dxSkinController可以在运行时动态调入皮肤,不用在设计期Use一大串文件,把要用的皮肤用安装程序自带的Skin Editor编辑一个SkinRes文件,然后在程序中动态调入就可以了。uses dxSkinsDefaultPainters;procedure TForm1.FormCreate(Sender: TObject);begincxComboBox1.Propertie 阅读全文
posted @ 2011-05-27 10:20 麦爸Simon 阅读(2932) 评论(1) 推荐(0) 编辑
delphi资源文件制作及使用详解
摘要:摘自:http://www.ej38.com/showinfo/delphi-131567.html一、引子:现在的Windows应用程序几乎都使用图标、图片、光标、声音等,我们称它们为资源(Resource)。最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用。资源是程序的一部分,程序要正常运行就离不了资源文件。但是它是不可执行代码。为了更好地管理资源,Delphi中提供了一种.RES类型的资源文件。它可以把我们程序中所需要的资源整合到一个资源文件(.RES)下来。在编译应用程序时直接编译进了可执行程序里,成为应用程序的整合体。这样做的好处是:1。由于定位资源比在 阅读全文
posted @ 2011-05-26 10:22 麦爸Simon 阅读(12676) 评论(1) 推荐(1) 编辑
delphi变量内存分配与释放
摘要:内存分配 释放 阅读全文
posted @ 2011-05-11 15:30 麦爸Simon 阅读(2428) 评论(0) 推荐(0) 编辑
Delphi 内存分配 StrAlloc New
摘要:Delphi 内存分配 StrAlloc New引自:http://anony3721.blog.163.com/blog/static/5119742010824934164/给字符指针(PChar、PWideChar、PAnsiChar)分配内存, 最佳选择是: StrAlloc.StrAlloc 虽然最终也是调用了 GetMem, 但 StrAlloc 会在指针前面添加 Delphi 需要的 4 个管理字节(记录长度).StrAlloc 分配的内存, 用 StrDispose 释放, 用 StrBufSize 获取大小.用 FreeMem 释放可以吗? 这样会少释放 4 个字节.这种类型 阅读全文
posted @ 2011-03-11 10:21 麦爸Simon 阅读(3877) 评论(1) 推荐(1) 编辑
BootStrap设计法
摘要:所谓BootStrap设计法是指父类会定义各种服务方法,但是这些服务方法需要有特定的标的,例如Window Handle或是Window 的 Device Context Handle。父类在实现服务方法时都会使用这些特定的标的,但是这个特定的标的却只由派生类提供,并不由父类提供。这种让特定的标的延迟到派生类才提供的设计便称为BootStrap设计方法,这也就是说使用这种设计的类并不能且不应该创建父类对象,而只能创建派生类对象来执行。 --摘自《Inside VCL》 阅读全文
posted @ 2010-12-13 20:15 麦爸Simon 阅读(462) 评论(0) 推荐(0) 编辑
Place Holder 方法
摘要:Place Holder方法是VCL Framework在设计核心组件类时最常使用的手法。所谓Place Holder方法是指父类的一些虚拟方法被实现为空白的函数面不声明为抽象方法,例如TCanvas类的虚拟方法CreateHandle便使用了Place Holder设计。 使用Place Holder设计的好处是避免了抽象类的缺点,另外父类如果稍后觉得需要加入任何的实现,那么就可以在Place Holder方法中再加入实现程序代码即可。由于Place Holder方法是空白的,因此也不会增加执行码的大小。如果稍后父类加入了Place Holder方法的实现,那么派生类可以选择直接执行派... 阅读全文
posted @ 2010-12-13 19:09 麦爸Simon 阅读(544) 评论(0) 推荐(0) 编辑
VCL一般不喜欢用抽象类
摘要:许多的C/C++ Framework喜欢使用抽象类来定义父类,然后再在派生类中改写父类以提供实现服务。 不过VCL Framework基本上不喜欢使用抽象类,因为抽象类有一些问题。第一是Object Pascal 允许程序员创建抽象类对象,这会导致执行时期错误,虽然创建抽象类对象在主义上有问题,但在语法上却是合法的,为了避免产生问题,VCL Framework并不喜欢使用抽象类。第二是Object Pascal 可以使用接口来取代抽象类,而且使用接口设计比较符合现代面向对象的趋势。第三,VCL通常倾向使用Place Holder 方法来实现一些抽象方法。 摘自《Inside VCL》 阅读全文
posted @ 2010-12-13 18:59 麦爸Simon 阅读(273) 评论(0) 推荐(0) 编辑