- 博客(22)
- 收藏
- 关注
原创 提高了解系统的效率
第一,了解整体构架 寻找关于构架的文档,了解模块之间的关系。第二,选取精华模块 不要妄图短时间内了解每一个细节。可以抽取系统最关键、最精华的模块,了解其每一个细节。第三,从细节到整体 工作中会遇到很多细节问题,把这些细节当作一个主题,作为系统的一个侧面来了解。它的工作机理是什么?它属于哪一个模块,或者是哪几个模块协同完成的?它在系统中处于什么位置?第四,从
2008-01-26 00:09:00 396
原创 实现层面
软件有使用、实现和原理三个层面,其中实现的层面可以从以下的角度来分析: 从不同的方面来看,有界面,逻辑,数据,配置和资源,build过程,log等六个方面,每一个feature都会具有以上全部或者部分的方面。 从环境的角度看,有开发环境和运行环境。 开发环境需要源代码,编译工具(build过程,例如soureccode->drop->war),和一个loc
2008-01-09 00:33:00 498
原创 第三方库的提供方式
对于C/C++来说,需要提供.h,.lib(可选,如果采用动态加载dll),.dll(可选)运行时需要Windows环境,.dll(可选),exe。对于Java来说,需要提供.jar即可。运行时需要jre,第三方jar,自己的jar。对于COM来说,只需要提供.dll,其中.h信息已经作为资源加入了.dll中,而由于采用动态加载dll的方式,不需要.lib。运行时需要Windows环境,.
2007-12-23 18:53:00 446
原创 思想
如果一件事可以有很多种做法的时候,我们就需要选择一种。如果你的选择使将来开发人员容易理解,模块容易扩展,适应变化,那么你当年的选择就是对的。 这时候,才体现出设计思想。思想就是在有多种选择的时候,你做出选择所遵从的想法。如果没有可选择的,就无所谓思想了。
2007-12-23 02:58:00 343
原创 层次化和标准化
计算机的各个领域,例如硬件,操作系统,编译原理,软件工程,数据结构,数据库,多媒体,网络等等,都需要层次化和标准化,并朝这个趋势发展。
2007-12-23 02:56:00 509
原创 三大语言
C/C++,Java,Python,据说,Google把它们定为公司采用的三大语言。 当然,和Java处于一个层次的有C#,和Python处于一个层次的有Perl等,但是既然Google这么认定,我也把它们定为自己要掌握的三大语言。 这三种语言,从运行方式方面来看,处于不同的层次,C/C++比较底层,有人称为低级语言,需要编译为机器码才能运行;Java则重视逻辑应用
2007-11-29 21:21:00 2648 1
原创 IT名人
IT的名人有各种各样,列举如下: IT商业模式的创建者:例如,B2B/C2C型网站阿里巴巴和淘宝网的创建者 马云。著名企业的创办者/CEO:例如,百度创建者 李彦宏,当当网创建者 俞渝。著名企业的CIO:例如,联邦快递CIO Rob Carter。著名通用软件的工程师/构架师:例如,WPS的求伯君,Word,Exel开发者之一西蒙尼,此人倡导用户界面“所见即所得”,在2007年去太
2007-11-29 21:20:00 472
原创 消息模式
窗口界面应用,DCOM和RPC等等软件形式,都采用了消息机制来实现主要功能。这种模式的主要结构如下: 实体部分:即功能的实现实体,例如:Windows的窗口注册的消息处理函数,DCOM和RPC的Server端。 调用端:功能的调用着,例如:Windows的消息,DCOM和RPC的Client端。
2007-11-29 21:19:00 356
原创 不同层次的跨平台(OS)
Perl,Python脚本语言,从解释性脚本语言层次上,利用解释器的来实现跨平台。 C++语言,从高级语言层次上,使用不同OS的编译器来实现跨平台。但是C++语言往往直接调用OS提供的API函数,造成了对OS的强依赖,从而无法实现跨平台。解决办法是使用跨平台的库,例如标准C/C++库、Qt库、Boost库等,避免直接调用OS的API。 Java语言和.NET技术,从
2007-11-29 21:18:00 500
原创 电子处理的四种形式
电子处理,可以分为两部分;功能和数据。比如word软件为功能的载体,而word文档则为数据。 电子存储按照存储位置可以分为本地和远程(例如网上)。 综合上述二者则可能出现如下四种不同形式:1、功能和数据均在本地。 比如本地office软件系统。2、功能和数据均在远程。 比如google的网上文档功能,文档处理或者电子表格的功能均在网上,所存
2007-11-29 21:16:00 439
原创 类系之间的关系——元模式和叠加模式
设计模式中所述的模式,涉及到类系和类系之间关系的模式一般不会超过2套类系的关系。 在实际开发中,我也想套用设计模式,但是发现很少只有2套类系的情况。可见设计模式是一种抽象出的元模式,在元模式的基础上可以演化很多叠加模式。 套用设计模式,可以这样进行: 首先研究现实有几个实体,比如分析出有4个,则建立4套类系。 然后分析每两
2007-11-29 21:15:00 460
原创 从现实到类,再到设计模式
在现实中,最重要的是概念的内涵外延以及概念之间的关系,类的继承关系正好和概念的内涵外延对应,而类之间的关系(聚合和引用)正好和概念之间关系对应。因此类的设计元素反映了现实的本质,更加易于表达现实。 封装和解耦的概念也如出一辙,封装通过类的继承实现,反映了现实世界概念的内涵和外延;解耦通过类的关系实现,反映了现实世界不同事物之间的关系。 所以有如下对应的联系:封装——
2007-11-29 21:14:00 359
原创 对于设计模式之间的选择,可以这样考虑
前面举的自行车的例子,有点牵强,但是重要的是经过这样的思维过程,有助于深刻了解所有模式的内在联系和外在区别。 对于设计模式大类之间的选择,可以做如下考虑: 当涉及如何创建对象时,考虑创建型模式; 当涉及经过解耦和封装之后产生的类之间关系,并且这些类之间关系是静态的或者类之间通信较简单时,考虑结构型模式; 当类之间的关系复杂,尤其是
2007-11-29 21:11:00 394
原创 以自行车为例,说明行为型模式的不同和关系
Chain of responsibility(职责链):这辆自行车坏了,试试下一辆。 Command(命令):修理不同的自行车部件和整体检修(按照一定顺序检修)。 Interpreter(解释器):根据自行车零件图,逐步装配出轮子、架子、前把等,然后再装配出整个自行车。 Iterator(迭代器):遍历存车处所有自行车,按照摆放顺序,或者钢号顺序。 Me
2007-11-29 21:09:00 628
原创 以自行车为例,说明结构型模式的不同和关系
Adapter(适配器):自行车零件,使安不上的零件外加配件安上。Bridge(桥接):自行车生产,零件的组装和每个零件的生产。Composite(组合):变速自行车齿轮,有点像。Decorator(装饰):自行车加个码表。Facade(外观):自行车修理厂。Flyweight(享元):自行车模具。Proxy(代理):脚踏自行车游戏,锻炼身体可以替代,出门需要真的自行车。
2007-11-29 21:08:00 410
原创 以生产自行车为例,说明创建型模式的不同和关系
Abstract Factory(抽象工厂):不同品种自行车零件,如何组合。(强调组合配置) Builder(建造者):生产自行车零件,并组装它们。(强调复杂的装配) Factory Method(工厂方法):动态决定自行车品种。(强调品种动态变化) Prototype(原型):已有的自行车品种,不断复制。(强调原样复制) Singleton(单
2007-11-29 21:07:00 396
原创 系统程序运行模式分析
一、主控exe + 子模块dll方式优点1、利于开发的模块划分,每个dll可以不同人负责,也可以单独升级。2、同一个dll可以给多个运行实体提供函数“服务”。3、作为插件,可以随意选择是否加载。4、如果是导出函数,可以显式加载,而且在兼容的前提下可以扩展新的导出函数。缺点1、如果导出是类,或者函数参数是复杂的类指针,则类接口不能变,不然会引起不兼容。 二、主控lib + 子模块Exe方式优
2007-11-29 21:05:00 686
原创 提高代码健壮性具有自然作用和社会作用
提高代码健壮性的自然作用,不言自明,是从技术的角度来讲的,例如对于函数结果进行完备的检查和相应的处理就可以提供代码健壮性。提高了代码的健壮性,会减少了软件发生意外的可能性,让机器的运行更稳定。 提高代码健壮性的社会作用,实际上是在团队开发中提高你的免疫力。如果团队开发的软件出现了难以定位的问题,或者几率性的问题,如果怀疑是你的代码出现问题,你是否可以提供一套完备的代码,让别人
2007-11-29 21:04:00 845
原创 类的关系有三种
1、继承关系。例如人分为男人和女人,则男人类和女人类是从人类继承而来的。在C++中,直接用编译器支持的类的继承来实现。 2、聚合关系。例如人是由脑,躯干和四肢构成的,则人类里就包括了脑类,躯干类和四肢类。在C++中,用一个类包含其他类的实例来实现。 3、引用关系。例如人要洗衣服,人就委托洗衣机来进行,而人只需要下一条洗衣的命令就可以了。在C++中,用一个类包含其他类的指针,
2007-11-29 13:57:00 779
原创 代码熵
熵是个化学概念,表明了物质的混乱程度。现在我code了,于是想Code也有混乱程度呀,虽然还想不出怎么计算出确切值来,可以至少可以分成下面的等级: 1、完全不可用(最混乱):编译不过,过去也用不了,无法使用,无法维护2、条件可用(较混乱):某些条件下可以正常使用,条件一改变就不行了,勉强可用,无法维护3、无设计可用(混乱):可以在任何条件下使用,但只是把各种情况杂乱的预防了,没有设
2007-11-29 13:47:00 1119
原创 和COM来个了断
和COM来个了断 今年4月的时候,突然心血来潮想把COM学习一遍。 有人说,COM已经过时了,现在都是.NET了,所以别再学COM了。可是就我目前的经验来看,在Windows世界里COM仍是无处不在,而且其思想永远有效。不过我周围的同事对此好像熟视无睹,几乎无人提及这项技术,也很少有人真正去了解,也许是我们的项目用不着吧。 不过这玩意真的不是三下五除二能学会的
2007-07-11 01:39:00 776 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人