摘要: 前两天一个朋友给我打电话,问我如何估计项目开发时间。对此我很诧异,问他以前他们是怎么估计的,他说以前基本都是大家开个会,大约都说说自己意见,最后负责人一拍脑袋,给出一个时间。不过这次遇到一个非常认真的客户,要求不但要估计出项目开发时间,还要明确说明具体的依据和估算方法,这下我这朋友有点犯难,才询问我。后来我翻阅了一些数理统计和项目估算方面的资料,告诉了他利用一元线性回归分析估计软件项目开发时间的方法。想到这种估算需要在一些开发团队很常见,所以在这里整理成文。  阅读全文
posted @ 2010-07-22 18:46 EricZhang(T2噬菌体) 阅读(1333) | 评论(15) | 编辑
     摘要: 这篇文章首先讨论表示层的组成,说明User Interface和Presentation Logic是表示层的两个重要组成部分,并分别说明了两者的作用及交互方式。接着讨论了MVP模式。最后,通过一个Demo展示了在.NET平台上实现MVP的一种实践方式。应该说,MVP很类似简化了MVC,MVP不但可以分离关注、使得代码变得干净整洁、并实现P Logic的复用,而且实现起来比MVC在结构上要简单很多。MVP是一种模式,本身有诸多实现方式,本文只是介绍了笔者使用的一种实践,朋友们也可以在此基础上摸索自己的实践。  阅读全文
posted @ 2010-01-28 21:48 EricZhang(T2噬菌体) 阅读(2890) | 评论(37) | 编辑
     摘要: 本文首先讨论了什么是单元测试,然后讨论了开发人员对单元测试的误解以及不愿做单元测试的原因。接着,我们讨论单元测试有哪些作用,最后用一个实际项目中的片段来说明单元测试的实践。限于篇幅,不能将单元测试及NUnit工具的方方面面讨论详尽,但是NUnit真是一个非常好上手的工具,你可以参考其文档和示例,或者参看Andrew Hunt所著的《Pragmatic Unit Testing in C# with NUnit》一书。不论你是做何种开发,我相信,单元测试一定会让你受益匪浅。单元测试不是一件索然无味的工作,它同样充满了成就感和乐趣,每次看到鲜亮的绿色进度条,都是最爽的时刻。所以,希望看完本文的朋友能尽快拿起NUnit,开始你的单元测试实践。就从你的下一个项目、或下一个Class、甚至下一个Function,开始你的单元测试之旅吧。  阅读全文
posted @ 2010-01-13 00:02 EricZhang(T2噬菌体) 阅读(2939) | 评论(32) | 编辑
     摘要: 本文通过对一道外企的面试题目进行分析和求解,讨论了linux下fork函数的执行机制。并给出了解与fork有关的题目的关键点。  阅读全文
posted @ 2009-12-11 23:05 EricZhang(T2噬菌体) 阅读(2261) | 评论(9) | 编辑
     摘要: 本文承接《细说业务逻辑(前篇)》,主要讨论了四种经典的业务逻辑架构模式以及各种模式的比较及选择问题。  阅读全文
posted @ 2009-10-31 23:39 EricZhang(T2噬菌体) 阅读(3374) | 评论(46) | 编辑
     摘要: 记得几个月前,在一次北京博客园俱乐部的活动上,最后一个环节是话题自由讨论。就是提几个话题,然后大家各自加入感兴趣的话题小组,进行自由讨论。当时金色海洋同学提出了一个话题——“什么是业务逻辑”。当时我和大家讨论ASP.NET MVC的相关话题去了,就没能加入“业务逻辑”组的讨论,比较遗憾。其实,一段时间内,我脑子里对“业务逻辑”的概念也是非常模糊的。但在不断地阅读、思考和实践过程中,这个概念及其相关的内容才在我脑子里渐渐清晰。我想,很多朋友也许也对这个概念不是很了解,所以愿意结合既有资料和自己的思考,总结一篇关于业务逻辑的概述性文章,一则与朋友们分享探讨,二则也是为自己对业务逻辑的学习做一个总结和提升。因为我还不敢说对业务逻辑内涵及外延理解的非常充分,所以文中如有不当之处,还请各位不用客气,尽管批评就好!  阅读全文
posted @ 2009-10-29 21:51 EricZhang(T2噬菌体) 阅读(4487) | 评论(81) | 编辑
     摘要: 在前面,我们花了六篇文章的篇幅去讨论需求分析之前发生的事情,这些内容看起来枯燥或飘渺,但实际是为真正开始系统的分析、设计和实现进行的必要准备。从这篇开始,将正式进入系统的开发阶段。这一篇文章,将讨论第一轮迭代过程中的需求分析和领域分析环节。  阅读全文
posted @ 2009-10-23 13:37 EricZhang(T2噬菌体) 阅读(3190) | 评论(25) | 编辑
     摘要: 本文意在将依赖注入这项概念本身结合笔者的实践经验及所感所想,做一个相对完整的综述,并总结于此文。一来可以和朋友们分享这项技术及个人心得,二来也是自己对这项技术做的一个总结。  阅读全文
posted @ 2009-06-17 00:26 EricZhang(T2噬菌体) 阅读(9840) | 评论(122) | 编辑
     摘要: .NET平台上的分层架构(很多朋友称其为“三层架构”),似乎是一个长盛不衰的话题。经常看到许多朋友对其进行分析、探讨、辩论甚至是抨击。笔者在仔细阅读了大量这方面文章后,认为许多朋友在分层架构的理解上存在两个比较大的偏颇。这篇文章,不是一篇技术文章,所以通篇不提技术细节,而只是想帮大家澄清对分层的误解。  阅读全文
posted @ 2009-06-01 23:02 EricZhang(T2噬菌体) 阅读(10244) | 评论(123) | 编辑
     摘要: Monte-Carlo算法是一个非常有用的算法,在许多实际问题中,都有用武之地。目前,这个算法已经在金融学、经济学、工程学、物理学、计算科学及计算机科学等多个领域广泛应用。而且这个算法本身并不复杂,只要掌握概率论及数理统计的基本知识,就可以学会并加以应用。由于这种算法与传统的确定性算法在解决问题的思路方面截然不同,作为计算机科学与技术相关人员以及程序员,掌握此算法,可以开阔思维,为解决问题增加一条新的思路。基于以上原因,我有了写这篇文章的打算。这篇文章将首先从直观的角度,介绍Monte-Carlo算法,然后介绍算法基本原理及数理基础,最后将会和大家分享几个基于Monte-Carlo方法的有意思的实验。  阅读全文
posted @ 2009-05-29 00:17 EricZhang(T2噬菌体) 阅读(4651) | 评论(11) | 编辑
     摘要: 本文不是一篇关于Linq to Sql的大百科,写本文的目的,是引导大家快速上手Linq to Sql,所以不可能面面俱到去讲解Linq to Sql。不过根据80-20定律,学会了本文的内容,基本就可以应付80%的工作了。另外,延续我一贯的风格,本文将通过案例的方式帮大家上手Linq to Sql。案例是一个“公告发布程序”。  阅读全文
posted @ 2009-04-22 00:03 EricZhang(T2噬菌体) 阅读(5615) | 评论(28) | 编辑
     摘要: 在前五章中,我们从世界观的这话题开始,逐步引出了抽象、层次、继承和耦合。这些内容,形成了对象论中关于世界的结构体系。然而,要想真正描述一个世界,仅有结构式不行的。开始我们说过,世界观主要关注两个方面:一是世界是什么样子的(结构),另一个就是世界时如何演进的(运作)。现在,我们来讨论对象论中关于世界运作的理论。这里首先要指出一点,“对象论”是关于程序世界(即将一个软件系统看成一个世界)的世界观,而非关于现实世界的,所以,将对象论应用于现实世界时,往往会有所偏颇。其实前面的某些地方已经体现出这一点,而在运作理论这里,会体现的尤其明显。但是为了直观起见,我依然会将对象论应用于现实世界去举例子,当然我会非常谨慎和小心,并且会明确指出对象论应用于现实世界的偏颇在哪里。  阅读全文
posted @ 2009-04-11 11:17 EricZhang(T2噬菌体) 阅读(3335) | 评论(26) | 编辑
     摘要: 面向对象(Object-Oriented),这是一条令无数开发人员魂牵梦绕的短语。几乎每个软件分析师、设计师和程序员都时刻将它铭记于心,对它顶礼膜拜。然而,对大多数人来说,它又像是天边的霞光,可望而不可及,无数次伸出双手,总是抓不住这虚无缥缈的圣物。于是,我们依然每天将面向对象高高供其,却始终无法悟得其道,更不要谈娴熟运用其道法了。面向对象像一滩苦海,无数人游弋其中,却久久不得其要领;类、对象、继承、多态、接口、UML、设计模式……无数概念看得我们眼花缭乱,却也悟不透其真谛。佛教有云:苦海无涯,回头是岸。如果置身苦海中无法脱离,那么,我们是否应该提高一个层面去看这片苦海:从哲学及科学的角度,去审视面向对象。  阅读全文
posted @ 2009-04-09 00:18 EricZhang(T2噬菌体) 阅读(5577) | 评论(29) | 编辑
     摘要: 这篇文章首先明确了系统开发过程,帮大家解开前几篇文章造成的疑惑。然后,陈述了系统开发阶段的两大法宝:迭代开发与用例驱动。  阅读全文
posted @ 2009-03-02 23:50 EricZhang(T2噬菌体) 阅读(3418) | 评论(14) | 编辑
     摘要: 前几天我在我的Blog上发布了NGuestBook,得到了很多反馈,在这里非常感谢大家的关注和支持。一些朋友在E-mail中提到,这个NGuestBook和我那个系列文章《基于.NET平台的分层架构实战》中讲的Demo有非常多不一样的地方,问我能不能单独写一篇文章说明一下这个新NGuestBook的架构方式和实现相关的问题。所以我专门写下这篇文章,对这个NGuestBook的架构体系和实现进行一个简要的说明,希望本文的内容能对大家有所帮助。  阅读全文
posted @ 2009-02-25 00:01 EricZhang(T2噬菌体) 阅读(3696) | 评论(17) | 编辑