- 博客(297)
- 资源 (8)
- 收藏
- 关注
原创 单元测试之关键问题解答
近来特别关注单元测试的应用。大家可能会笑了,单元测试都N年前提出的了,您老怎么现在才来做呢。是的,单元测试几乎人人都在提,但是真正做好的没几个。我们几个同事在讨论这个的时候,发现这里面有很多因素。相信大家也在实践过程中都遇到过。单元测试测什么这是最经常被提到的问题。往往有三个答案: 针对代码测试,往往也被称为针对类进行测试。
2007-04-28 00:49:00 3965 2
原创 老书推荐:架构师应该关注的技术之外的东西
推荐书目:《软件架构:组织原则与模式》 之所以推荐此书,是这本书让我真正了解什么叫开卷有益!我打开这本书的时候是凌晨,但是我打开的时候,就放弃了睡觉的念头。虽然最后还是困得睡着了,但是第二天一天时间都全新扑在这本书上面。不过我必须提醒的是,这本书我买下的时候,并没有感觉有多么有用。也就是说,如果你没有这方面的工作经验的话,看这本书会感觉不知所云,或者不能深刻体会作者写作的意图。因此,如
2007-04-25 01:23:00 3505
原创 算法设计应该依赖抽象而不是业务
很多时候,算法的设计是归属于详细设计阶段的。一些公司甚至都没有设计而直接编码。这些往往导致很多算法的实现都混杂在业务模块中。典型的特点是,这些算法会依赖于业务实体的某些属性的实现。举一个简单的例子,我曾经做过一个项目中,遇到一个排序功能:分部整理。这个排序比我们以往所学的排序不一样,所以很多人都不将它作为算法来看待,而是直接做为业务逻辑功能进行实现。 排序的基础数
2007-04-22 10:54:00 2309 5
原创 一起来提升网络言论的道德素养
写这篇文章的最原始的动力,是看到自己的博客文章讨论中出现的一些不文明现象。后来发现中国的技术讨论环境就是这样。在感慨的同时,慢慢萌发起一些希望改变这一现象的想法。写下此文,希望能够给大家一点警醒,若能给中国技术网络环境带来些许改善,那是最好!对这些不文明的发言,先来说说我这个看客的感受。说实话,我非常欢迎很多人来对我的技术观点进行评论,不管对也好,错也好,瞎扯也好,幼稚也好,落后也好,退后也好
2007-04-22 01:01:00 2121 4
原创 从职责归属看数据库中关系设计
今天和领导讨论组织结构中的职责归属的时候,讨论到TMT(技术委员会)和CTT(公共技术小组)中(TMT是CTT的上层组织),如果有大的攻关技术任务,是将职责归属到CTT好呢,还是将职责归属到TMT好。我以为CTT负责好,第一是因为我在CTT;第二我认为TMT是做决策的,具体的事情就该CTT来做。但是领导认为应该属于TMT。原因是这样的,组织中职责是分解的,如果归属到TMT,TMT就会负责CTT
2007-04-22 00:26:00 1926
原创 可以感受到的好领导
对于程序员(我相信很多现代企业的员工也适合此标准)讲,好的领导的标准是什么?有人讲技术能力要高,有人讲德行要高。要我说,这些都是废话、空话。好的领导,一定是可以感受到的!我接触过很多类型的领导,很多领导都给我留下很深刻的印象。好领导之所以给你好的感受,往往就是因为他带给你你所需要的。而且有一点,你一定得记住,好领导是因为他有你这个好下属。如果你感觉不到领导给你好感觉,最好在埋怨生不逢时的同时,
2007-04-15 23:51:00 5146 3
原创 拼音爱好者的好消息:紫光V6发版
按:笔者前一段时间刚刚换了Google,可是听到紫光发版的时候,异常兴奋。因为之前我从来没有盼望过紫光会这么快发版。我再次写关于拼音的文章,是让大家明白光是争论,并不能带来进步。面对新的挑战,紫光给了我们最好的答案。拼音大战,硝烟又起。但正如我说的,良好的竞争,收益的是我们中国的拼音用户。在大部分人还在讨论Google好还是BSogou好的时候,我们爱好的紫光拼音却暗自开始奋发,开发下一个版本
2007-04-14 23:03:00 3385 2
原创 CSDN大会后参观微软亚洲研究院
今天才拿到照片。主要是微软的办公条件,贴出来大家参考参考。早就知道微软的休息间中有饮料喝,原来就在这里。这两位在讨论问题,我怀疑也可能是在面试,不过环境真的很好。我听我同学说他们是工作时间偷偷出来打球的还可以玩足球,可惜我不会玩累了可以坐下来休息一下啊还不行的话,可以按摩一下休息好,工作才能好。当然了,工作环境也不能差:空间大、液晶大、两个液晶我们公司也要盖大楼了,真希望也能像微软这样啊。你们呢
2007-04-13 14:49:00 3424 5
原创 生活中关于清点人数之设计
一提到数据结构,大家想起的都是计算机程序中的。到现实生活中,人们却往往容易忽视设计好的数据结构的重要性。这次CSDN英雄会过程活动组织中,遇到一个需求。由于各路英雄众多,所以CSDN在组织的时候,经常需要清点人数。而CSDN的做法是这样的,由领队拿着一张名单,依此报出名字,在场的人喊声“到”。我相信这是中国特色的清点方式。事实上,我们喊“到”的经验一定不少,以至于很多人都不愿意被迫喊这个字
2007-04-11 00:36:00 2188 4
原创 不可阻挡的谷歌拼音
我第一次听说Google出拼音了,我就装上看了。最喜欢的就是词库的同步。我的词库可以保存到我的Gmail邮箱中,而不是本地。这样我单位、家里或者重装机器,都可以非常方便地共享使用到目前的词库。不过随着谷歌的出现,描述最多的不是其功能的强大,而是与搜狗有关及和Vista相关的负面消息。我并不是表示怀疑这些评论或者新闻,但是,有一点不可以否定的是,这是Google做的产品。不管遇到什么问题,Goo
2007-04-07 22:11:00 4922 25
原创 英雄会解读:不一样的回答,一样的CTO
CSDN英雄大会2007上,主办方特意为我们找来4位CTO嘉宾,试图帮助我们明白CTO是如何工作的。对我来讲,非常高兴能够听到他们对技术和管理两者之间的协调和统一。这四位分别是: 盛大公司CTO 谭群钊 SOHU公司王小川 Sybase北京 尹力群 浪潮软件 周恒
2007-04-07 21:51:00 3398 2
原创 博客中排版的小技巧
写这篇文章,是我在参加CSDN英雄会的时候,听到大家对博客的排版感觉很恼火。而我因为曾有解决这方面的经验,并且理所当然地认为有很多的人有这方面的需求,所以写出我在写博客的时候的简单方法。方法很简单,简单到都不好意思放到博客上了。这个方法,是在发现从排版良好(包含缩进)的WORD文章到CSDN博客的时候,其排版格式能够保持良好。于是便简单研究了一下粘贴之后的HTML代码。结合我使用的工具,简
2007-04-07 19:12:00 3821 1
原创 梦里的题目:让我安全回家
并不是要说明做梦的神奇,确实是感觉这个题目非常有意思,所以拿出来和大家分享。近日一次做梦,梦到做一张试卷。试卷上题目非常少。其他的题目不记得了,只是记得最后一道题目。这个题目是这样描述的:请用计算机实现,只要我安全到家,任务就算完成。我开始被这个题目搞得一塌糊涂。根本不知道啥意思。 这时候梦里有人有人提示符号。我突然有所醒悟。这是一道类似于微软那些面试类型的题目。重点不在于结果如何
2007-04-03 23:01:00 3377 5
原创 离开使人成长
这是我想送给那些我即将送别的现在的同事们的话。在几年前,我也在为一个小的变动而烦恼。我拿不定主意是留在原来的团队,还是到新的团队工作。心里面舍不得精心营造和朝夕相处的原来的温馨团队,却又在向往另一个全新的团队。在我拿不定主意的时候,我做了一件事,又听到了一句话。那件事是我主动地去请教了一位我非常尊敬的Flood先生。他告诉我,如果是他的话,他非常乐于去。我就问为什么,他说很简单。到了新
2007-04-01 21:53:00 3714 8
原创 何以证明你的设计优秀?
我想很多人都饱受过糟糕软件设计的痛苦,因此心里总有一股气,自己一定要做一个非常优秀的设计。至少我是这样的人。近日公司的一个项目进行TR1评审的时候,在技术方案的评估文档中,我发现其第一项列出的便是上一个版本存在的设计缺陷: 产品之间复用只是停留在代码级别 模块代码不够独立,后期不能复用 模块代码不易扩
2007-03-30 02:16:00 6628 28
原创 探索流(Stream)的概念
从一开始接触,就感觉流(Stream)是一个非常抽象的概念。在C语言中,有三个标准流:StdIn,StdOut,StdErr。那个时候的感觉,用我的L同事的话来说,流就是一个神秘的洞。我一直在探究流的概念。到底什么是流,流有什么特点,Delphi中的TStream到底和真正的流的概念相差多少?可惜一直没有合理的答案发现。前一段时间,开始对YAML 有了兴趣。在这里也顺便对YAML 进行简单
2007-03-28 23:52:00 3065 6
原创 更坏就是更好(Worse Is Better)
我非常愿意将这个观点介绍给大家,第一是它并不被很多人所知,更重要的是它有非常深刻的内涵道理。发展历史这是Richard P. Gabriel 先生根据自己的亲身经历得出的著名论断。Gabiel在Lisp编程语言特别是Common Lisp上的著名专家。在1985~1994之间,他有一家Lisp公司,名字叫Lucid。但是运营的境况并不是很好。在1989年的一次Lucid走廊会谈中,他被一些
2007-03-26 00:32:00 8046 5
原创 房间收拾与软件架构
首先,请允许我做这样一个对比,毕竟,这两件事看上去太没有关系了。事实上,我捉摸房间收拾这个事情的时候,压根就没有想过和工作联系在一起。可是最后竟然走在了一起。不是每一个人都需要收拾房间,但是每一个人都可以花点时间研究一下收拾房间的方法。我目前一个人住在北京的自己的房间里,女友偶尔来一下。大家可以想像得出,这种情况下,房间的状况如何。基本有两点: 房间整洁程度较低
2007-03-18 21:41:00 3067 5
原创 代理(Proxy)模式 vs. 代理(Agency)机构
有一天,我将设计模式中的代理模式和我们社会中的代理机构联系起来。发现他们之间有非常多的相似的地方,而且可以互相借鉴。在讨论这个话题之前,我的老板就率先指出了我的缺点。代理是Proxy不是Agency。Proxy一般指协议,和生活中的代理机构Agent是不一样的哦。不过我想说的是,所以我们才应该感叹中国汉语之博大精深,以及设计模式翻译的如何巧妙了。对比并不一定是一件快乐的事,但是对比和讨论往
2007-03-17 21:46:00 4418
原创 Inside Object: 面向对象的发展
在我们学习了多年面向对象的思想之后,回过头来,看看面向对象是如何发展起来的,应该是一个非常有意思的事情。面向对象(Object Oriented)编程技术最先被广泛使用的语言是C++,Bjarne Stroustrup写的《The Design and Evolution of C++》(中文名: C++语言的设计和演化)中,详细地描述了如何将C语言转变成支持对象编程的C++语言。可是要真
2007-03-12 08:31:00 3607 3
原创 Relationship Based Object
这虽然是用英文做的标题,但其真是意义,估计只有中国人才能懂。首先要说明的是,Relationship Based Object(以下简称RBO),绝对是一个新的概念。因为它是我刚刚杜撰出来的。不过我想借此,表述我的一些在OO上的想法而已。有兴趣的朋友,可以共同讨论。在说RBO之前,我想先说说中国的一个非常典型的人际处理方式:关系。有事托人找关系,没事大家拉关系。现在有人将这个说法提升了一
2007-03-10 18:51:00 1760 1
原创 面向对象学习史
请不要误会,这个不是在将面向对象发展史。只是说说我和几位同事在聊各自学习面向对象的过程。感觉很有意思。特意拿出来与大家分享。我最近在思考写一个系列的面向对象的文章。找不到思路,于是请了几位同事,请教他们在学习面向对象过程中的想法。下面是他们的说法。J君: 在大学里学的C语言,C++和java是自学的。 开始是理论派,视面向对象
2007-03-09 13:21:00 2106 1
原创 数据接口设计中遗漏的版本差异
我们在考虑数据接口的设计的时候,最容易关注的是数据本身的接口。简单点说,要哪些数据,我接口设计的时候就加入那些数据。在此基础上再考虑数据结构以及结构优化。这些并没有什么问题。事实上,也只有考虑这些,接口才可以基本工作起来。不过,一个设计好的接口会比一般的接口多注意一些因素,一些以后可能发生变化的因素。在好的接口中,有些接口,一直不需要修改;有些接口修改了也和原有接口兼容。一个接口一直都不需
2007-03-05 22:22:00 2268
原创 成长需要加速度
如果说惯性维持着薪水,那么加速度代表着奖金和加薪。近来和同事们聊起个人发展问题。发现程序员(其他行业估计也是如此)一到工作一年到两年之间,就会出现一个迷茫期。不知道自己的发展方向在哪里。有些公司虽然推出了职业规划,但很多人的关键问题在于不能正确认识自己的位置。那么走哪个职业方向,便变得不能顺利掌握。在这种情况下,很多人的选择,是由社会的表现来决定的。看到管理比较好,就感觉自己应该向管理岗位
2007-03-05 00:20:00 8125 8
原创 勿把计划当论文
领导说我计划上存在一个问题。他认为,我的问题关键在于,我将整个事情,当作论文在分析。各个方面都有道理。可是看上去就是和实际情况没有联系起来。我要做的计划是规划公共资源(什么是公共资源?你可以认为公共资源是研发的公共控件,更可以理解为是公司技术的核心所在。因此他的好坏,直接影响公司的生产力)的管理。由于这是公司的财产,我不方便公布细节。我只是说一下我的方法。思考系统的方法很多,我也是在一点点
2007-02-13 04:50:00 2106 1
原创 成功的失败预言
这是一个刚刚发生在我身上的故事,故事的结果不是我所愿意看到的。唯一使我感觉好的地方,是我重新琢磨了事情的原委。我从一开始就预测到最后的失败,而且最后就真的失败了。我家乡的表弟来到远在北京的我的家里。家里只有我一个。于是屋子里整理的状况可想而知。于是表弟非常诚恳地建议重新整理一下屋子。特别是在春节之前,意义更是重要。我一想,也确实是该整理了。晚上收拾完,就说开始整理吧。我对整理不是在行,但也
2007-02-13 04:14:00 2415 5
原创 苛评VCL: Amingoo的留言
这些言语是Amingoo先生留下的非常珍贵的评价,对我也是一个学习的提升。为了让更多的人看到这个评论,特意将它作为《苛评VCL》系列文章的最后一篇发出,和大家一起分享。希望Amingoo不要见怪。以下言语都来自Amingoo先生:1. 这个问题不是所谓的类型问题,也不应该是在DLL内去解决的问题。如同BuilderChen所说,不认当把一个特定的OOP实现框架暴露在DLL的接口层,这样会使
2007-02-09 23:29:00 2427
原创 苛评VCL: 穿不透的类型
虽然遭遇到很多人的批评,但还是最终坚持下来。在这个系列中,主要是针对平时使用VCL的过程中,感觉Delphi没有处理好的地方。偶尔能提出一些自己的看法,权当谈资。更重要地是,我们可以借此学习到一些思想。Delphi比起其他语言,有一个非常明显的特点,那就是类引用。典型的声明就是:TComponentClass = class of TComponent;可不要小看这个简单的声明,他可以
2007-02-08 00:14:00 4032 9
原创 苛评VCL: 孤独的Application
由于每次都可能有人是单独阅读这个系列的文章。我想重申一下我的苛评VCL的意义。不在于说VCL的不好,而是重点将发现到一些问题暴露出来,以此来说明我认为VCL原来处理不合适的地方。这永远是一个设计问题,而不是技巧问题。中间难免有争议。不过请大家将争议的目标锁定在设计本身。毕竟,针对特定情况的争议才是有意义的。说起Application,稍微知道Delphi的人都知道。我们最常使用的Applica
2007-02-07 07:37:00 5716 10
原创 苛评VCL: 臃肿的Windows控件
写这一篇还是顶着很大的压力的。相信又有不少人要瞧不过去了。不过本着讲讲设计,无所谓好和坏,只有较好和较坏的差别。我只是从我的角度,尽量去解释为什么不赞同VCL中的设计而已。我们知道VCL封装了Windows的标准控件。这些控件包括:Edit、ListBox、ComoBox。还有一些Win32控件,包括ListView、TreeView等等控件。所有这些,在VCL中定义为TWinContro
2007-02-06 00:03:00 5149 11
原创 苛评VCL: 混乱的TStream
为什么这么苛刻地来评论VCL的基础类设计,我已经在前一篇关于TObject的文章中讲过。今天我拿出在一次跟踪VCL代码的过程中发现的问题。在此之前,我没有任何理由会相信会存在这样的情况。TForm读取dfm文件创建窗体过程大家一定都比较清楚,其中负责读取的是Classes.pas单元中的TReader类,而它在实现的时候,会调用到如下的函数:function InternalReadC
2007-02-05 08:46:00 3889 7
原创 苛评VCL: 失望的TMenu
TMenu是什么?他是VCL中封装的TMainMenu和TPopupMenu的基类。与其说对TMenu失望,其实是对VCL中对TMainMenu和TPopupMenu的失望。为什么呢?这基本上还得归咎于微软自己。微软在推出Windows的同时,却坚决的在推Office系列产品。而且Office的更新速度和Windows几乎一样快。更重要的是,Office系列产品的界面风格,特别是菜单,和标准W
2007-02-04 01:24:00 3056 4
原创 苛评VCL: 接口与TObject
在李维的《inside VCL》中详细描述了VCL中TObject的地位。是的Borland的工程师们有心将Delphi语言做成pure language。所以你几乎可以看到TObject的所有pure pascal的实现。更重要的,你应该会发现。Delphi将代码的所有运行机制都暴露在我们面前。这也就是Delphi的TObject和C++中的Object以及C#的Object有很大不同的地方
2007-02-02 00:39:00 8695 30
原创 谈谈SaaS的实现架构
今日大老板突然问起SaaS,一时不知如何说起。看来得好好补一下了。对于老板来讲,他显然不是关心SaaS的概念。以我看来,更重要的是如何将SaaS应用到企业的实际应用中。所以,如果你想了解SaaS的概念,可以在网络上搜索,本文重点不在这个方面。SaaS从实现上讲,和以前的ASP(Application Service Provider,应用程序提供商)的概念在本质上是一样的。这里面不得不提到的架
2007-01-31 01:07:00 15054 4
转载 二十年间的失败软件和系统
作者:Snake 来源:PCPOP 今天看到一篇文章,叫“回首前尘往事,七大没落软件排名”,里面写的是这十年来的七大没落软件,我想补充一下,将前二十年的胜利者和失败者也做一个总结,当然,里面说道的大部分名词,现在很多人可能都是闻所未闻的。 DOS对C/PM 结果:Bill Gates一旦从几位朋友那儿得到了DOS(磁盘操作系统)并转让给IBM后,Gary Kildall的C/PM(
2007-01-30 21:11:00 2426 1
原创 64位普及引发完美风暴
IT界一直有一个悖论:到底是软件带动了硬件提升,还是软件吞噬了硬件性能。每一次硬件升级,你都会发现操作系统和软件还是在同样的时间内,完成了同样的事。当AMD和Intel竞争到64位的时候,已经预示了一个新的时代,已经开始到来。64位CPU并不是一个新的事物,小型机上早就有了。但对于PC用户来讲,这次普及必然是革命性的。对于那些依赖于PC操作系统的软件开发商们,这也将是一个不小的革命。在所有
2007-01-28 12:57:00 3531 4
原创 浩方战网平台分析
虽然早就听说过浩方是如何工作起来的。但要真正说到其细节,还是可以深入地探究一下。很多都应该知道,浩方本质上是将整个Internet变成若干个大的局域网的方式,让所有游戏在这个“局域网”上运行。那么,浩方是如何架构这样的系统的呢?下面的所有的分析,使用大家熟知的星际争霸作为例子。首先先看看星际在局域网上运行的方案。我们这里不分析UDP协议的。有兴趣的可以深入探讨。 两个不同的星际实例
2007-01-26 04:12:00 8515 21
原创 语言的座右铭
今天和同事做了一件非常有意思的事,那就是探究各种语言在设计初期的主导思想,很多设计者,称这个思想叫座右铭。因此,语言也因为设计者而拥有了座右铭。我们搜索了几个语言,拿出来和大家分享一下。如果大家有不同意见或者有补充的,可以在下面继续跟上,我会陆续补充到文章中。不过为了不让大家误会本文的意思,我在文章的前面,将意思说清楚。我们在学习语言的时候,往往是从语法开始的。可是如果我们已经跨越了这一层
2007-01-24 00:37:00 2590 1
原创 我的架构师学习计划
这份计划写出来和大家共勉,其实也是希望了解大家怎么来学习的。说起来也很简单,就是完成几件事而已。1、掌握十个流行框架架构。主要考虑开源系统,特别是JAVA领域的系统,类似与JBoss、Spring、Hibernate、Weblogic等等。2、完成五次技术讲座。主要是保证对讲座的内容进行深入细致的理解。这样的讲解才可能成功。另外也是为了提升作为架构师的可能的影响力。3、完成五篇架构文
2007-01-22 03:26:00 8754 30
原创 也谈程序员的沟通与合作
促使我写这篇文章的,主要是有感于《读者》中的一篇文章《请按一下九层》,作者卢青。这是全市最忙的一部电梯,上下班高峰时期,和公共汽车差不多,人挨着人。上电梯前和公司的人力资源总监相遇,说笑间,电梯来了,我们随人群一拥而进。每个人转转身子,做一小小的调整,找到了一种相对融洽的关系。这时,一只胳膊从人逢中穿过来,出现在我的鼻子前头。我扭头望去,一个小伙子隔着好几个人,伸手企图按电钮。他够
2007-01-20 10:45:00 7580 21
为何要把ERP与BPR结合在一起
2008-10-27
《惠普之道》--HP的成长之路
2008-10-18
开源技术选型手册 精选版
2008-10-18
代码之美 Beautiful_Code_Minibook_by_InfoQ
2008-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人