上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 26 下一页

2007年3月5日

数据接口设计中遗漏的版本差异

摘要: 我们在考虑数据接口的设计的时候,最容易关注的是数据本身的接口。简单点说,要哪些数据,我接口设计的时候就加入那些数据。在此基础上再考虑数据结构以及结构优化。这些并没有什么问题。事实上,也只有考虑这些,接口才可以基本工作起来。不过,一个设计好的接口会比一般的接口多注意一些因素,一些以后可能发生变化的因素。在好的接口中,有些接口,一直不需要修改;有些接口修改了也和原有接口兼容。一个接口一直都不需要修改,一般有两种情况:需求永远不变化;接口设计地太好了。我们几乎不敢说自己的接口设计地太好了,以致于可以肯定以后不会修改,于是我们不得不面对需求变更的问题。对于软件A1和软件B1,他们之间定义了接口F1。当 阅读全文

posted @ 2007-03-05 22:22 ohmyjava 阅读(282) 评论(0) 推荐(0) 编辑

成长需要加速度

摘要: 如果说惯性维持着薪水,那么加速度代表着奖金和加薪。近来和同事们聊起个人发展问题。发现程序员(其他行业估计也是如此)一到工作一年到两年之间,就会出现一个迷茫期。不知道自己的发展方向在哪里。有些公司虽然推出了职业规划,但很多人的关键问题在于不能正确认识自己的位置。那么走哪个职业方向,便变得不能顺利掌握。在这种情况下,很多人的选择,是由社会的表现来决定的。看到管理比较好,就感觉自己应该向管理岗位发展。就像当初我们考大学选专业的时候一样,一般都会选热门专业,而不管是否能发挥自己的性格。在聊的过程中,为了强调目标的制定方式,我请我的同事,分别说出自己的优点和缺点,并将我的看法好不吝啬地告诉他。我告诉他, 阅读全文

posted @ 2007-03-05 00:20 ohmyjava 阅读(139) 评论(0) 推荐(0) 编辑

2007年2月13日

勿把计划当论文

摘要: 领导说我计划上存在一个问题。他认为,我的问题关键在于,我将整个事情,当作论文在分析。各个方面都有道理。可是看上去就是和实际情况没有联系起来。我要做的计划是规划公共资源(什么是公共资源?你可以认为公共资源是研发的公共控件,更可以理解为是公司技术的核心所在。因此他的好坏,直接影响公司的生产力)的管理。由于这是公司的财产,我不方便公布细节。我只是说一下我的方法。思考系统的方法很多,我也是在一点点地学习。最常用的方法就是学习别的系统是如何分析的。针对公共资源管理,我认为最关键的是要找到公共资源的客户是什么,然后以此为中心,分析客户都需要什么,列出个一二三出来。接下来,关键在于,根据什么的一二三,建立公 阅读全文

posted @ 2007-02-13 04:50 ohmyjava 阅读(91) 评论(0) 推荐(0) 编辑

成功的失败预言

摘要: 这是一个刚刚发生在我身上的故事,故事的结果不是我所愿意看到的。唯一使我感觉好的地方,是我重新琢磨了事情的原委。我从一开始就预测到最后的失败,而且最后就真的失败了。我家乡的表弟来到远在北京的我的家里。家里只有我一个。于是屋子里整理的状况可想而知。于是表弟非常诚恳地建议重新整理一下屋子。特别是在春节之前,意义更是重要。我一想,也确实是该整理了。晚上收拾完,就说开始整理吧。我对整理不是在行,但也就凭着习惯,开始整理起来。表弟确实看不过去,认为我应该从上往下进行整理,先把柜子顶上的箱子整理好。我认为在这个问题上,说总是没有做来得重要。我可不愿意看到旁边有人在指挥这指挥那的。我就说,你要这样整理,就这样 阅读全文

posted @ 2007-02-13 04:14 ohmyjava 阅读(127) 评论(0) 推荐(0) 编辑

2007年2月9日

苛评VCL: Amingoo的留言

摘要: 这些言语是Amingoo先生留下的非常珍贵的评价,对我也是一个学习的提升。为了让更多的人看到这个评论,特意将它作为《苛评VCL》系列文章的最后一篇发出,和大家一起分享。希望Amingoo不要见怪。以下言语都来自Amingoo先生:1. 这个问题不是所谓的类型问题,也不应该是在DLL内去解决的问题。如同BuilderChen所说,不认当把一个特定的OOP实现框架暴露在DLL的接口层,这样会使得这个DLL失去了共用代码的性质。2. BPL通过DLL导出函数的方式使得不同的模块间可以使用同一个RTL。从本质上来说,它就是一种失去了通用性质的DLL。如同第一条所述的,它们的应用场合、背景和功能都有了差 阅读全文

posted @ 2007-02-09 23:29 ohmyjava 阅读(110) 评论(0) 推荐(0) 编辑

2007年2月8日

苛评VCL: 穿不透的类型

摘要: 虽然遭遇到很多人的批评,但还是最终坚持下来。在这个系列中,主要是针对平时使用VCL的过程中,感觉Delphi没有处理好的地方。偶尔能提出一些自己的看法,权当谈资。更重要地是,我们可以借此学习到一些思想。Delphi比起其他语言,有一个非常明显的特点,那就是类引用。典型的声明就是:TComponentClass = class of TComponent;可不要小看这个简单的声明,他可以让你直接访问到类的VMT。在李维先生的《Inside VCL》中谈到Delphi.NET的时候,也对此有特别的说明。对象和对象的差异,从一定意义上讲,就在于其所指向的VMT的不一样。在VCL中,每个类的VMT都有 阅读全文

posted @ 2007-02-08 00:14 ohmyjava 阅读(142) 评论(0) 推荐(0) 编辑

2007年2月7日

苛评VCL: 孤独的Application

摘要: 由于每次都可能有人是单独阅读这个系列的文章。我想重申一下我的苛评VCL的意义。不在于说VCL的不好,而是重点将发现到一些问题暴露出来,以此来说明我认为VCL原来处理不合适的地方。这永远是一个设计问题,而不是技巧问题。中间难免有争议。不过请大家将争议的目标锁定在设计本身。毕竟,针对特定情况的争议才是有意义的。说起Application,稍微知道Delphi的人都知道。我们最常使用的Application的几个方法是: Application.CreateForm Application.ProcessMessage Application.MainForm ... 这些方法带领我们逐渐去认识Ap 阅读全文

posted @ 2007-02-07 07:37 ohmyjava 阅读(131) 评论(0) 推荐(0) 编辑

2007年2月6日

苛评VCL: 臃肿的Windows控件

摘要: 写这一篇还是顶着很大的压力的。相信又有不少人要瞧不过去了。不过本着讲讲设计,无所谓好和坏,只有较好和较坏的差别。我只是从我的角度,尽量去解释为什么不赞同VCL中的设计而已。我们知道VCL封装了Windows的标准控件。这些控件包括:Edit、ListBox、ComoBox。还有一些Win32控件,包括ListView、TreeView等等控件。所有这些,在VCL中定义为TWinControl,他们都包含Windows分配的句柄Handle。也有自己的绘画句柄HDC,当然了,在VCL中就是Canvas属性。我们现在开始说明VCL是如何实现这些控件的。正如前面所说的,与其说是实现这些控件,更不如说 阅读全文

posted @ 2007-02-06 00:03 ohmyjava 阅读(149) 评论(0) 推荐(0) 编辑

2007年2月5日

苛评VCL: 混乱的TStream

摘要: 为什么这么苛刻地来评论VCL的基础类设计,我已经在前一篇关于TObject的文章中讲过。今天我拿出在一次跟踪VCL代码的过程中发现的问题。在此之前,我没有任何理由会相信会存在这样的情况。TForm读取dfm文件创建窗体过程大家一定都比较清楚,其中负责读取的是Classes.pas单元中的TReader类,而它在实现的时候,会调用到如下的函数:function InternalReadComponentRes(const ResName: string; HInst: THandle; var Instance: TComponent): Boolean;var HRsrc: THandle;b 阅读全文

posted @ 2007-02-05 08:46 ohmyjava 阅读(149) 评论(0) 推荐(0) 编辑

2007年2月4日

苛评VCL: 失望的TMenu

摘要: TMenu是什么?他是VCL中封装的TMainMenu和TPopupMenu的基类。与其说对TMenu失望,其实是对VCL中对TMainMenu和TPopupMenu的失望。为什么呢?这基本上还得归咎于微软自己。微软在推出Windows的同时,却坚决的在推Office系列产品。而且Office的更新速度和Windows几乎一样快。更重要的是,Office系列产品的界面风格,特别是菜单,和标准Windows的完全不同。当微软的Office推广地非常好的时候,我们都在渴望也能设计出一样的界面。对于只是外表改变的需求来讲,很自然地可以考虑重新覆盖TMenuItem的Draw方法。可是,当你真的想这么 阅读全文

posted @ 2007-02-04 01:24 ohmyjava 阅读(145) 评论(0) 推荐(0) 编辑

上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 26 下一页

导航