代码改变世界

细说业务逻辑(前篇)

2009-10-29 21:51 by T2噬菌体, 17150 阅读, 57 推荐, 收藏, 编辑
摘要:记得几个月前,在一次北京博客园俱乐部的活动上,最后一个环节是话题自由讨论。就是提几个话题,然后大家各自加入感兴趣的话题小组,进行自由讨论。当时金色海洋同学提出了一个话题——“什么是业务逻辑”。当时我和大家讨论ASP.NET MVC的相关话题去了,就没能加入“业务逻辑”组的讨论,比较遗憾。其实,一段时间内,我脑子里对“业务逻辑”的概念也是非常模糊的。但在不断地阅读、思考和实践过程中,这个概念及其相关的内容才在我脑子里渐渐清晰。我想,很多朋友也许也对这个概念不是很了解,所以愿意结合既有资料和自己的思考,总结一篇关于业务逻辑的概述性文章,一则与朋友们分享探讨,二则也是为自己对业务逻辑的学习做一个总结和提升。因为我还不敢说对业务逻辑内涵及外延理解的非常充分,所以文中如有不当之处,还请各位不用客气,尽管批评就好! 阅读全文

OOA&D实践之路——真实案例解析OO理论与实践(七、【第一轮迭代】需求分析与领域分析)

2009-10-23 13:37 by T2噬菌体, 8515 阅读, 5 推荐, 收藏, 编辑
摘要:在前面,我们花了六篇文章的篇幅去讨论需求分析之前发生的事情,这些内容看起来枯燥或飘渺,但实际是为真正开始系统的分析、设计和实现进行的必要准备。从这篇开始,将正式进入系统的开发阶段。这一篇文章,将讨论第一轮迭代过程中的需求分析和领域分析环节。 阅读全文

依赖注入那些事儿

2009-06-17 00:26 by T2噬菌体, 98675 阅读, 241 推荐, 收藏, 编辑
摘要:本文意在将依赖注入这项概念本身结合笔者的实践经验及所感所想,做一个相对完整的综述,并总结于此文。一来可以和朋友们分享这项技术及个人心得,二来也是自己对这项技术做的一个总结。 阅读全文

你真的了解分层架构吗?——写给被PetShop"毒害"的朋友们

2009-06-01 23:02 by T2噬菌体, 23373 阅读, 28 推荐, 收藏, 编辑
摘要:.NET平台上的分层架构(很多朋友称其为“三层架构”),似乎是一个长盛不衰的话题。经常看到许多朋友对其进行分析、探讨、辩论甚至是抨击。笔者在仔细阅读了大量这方面文章后,认为许多朋友在分层架构的理解上存在两个比较大的偏颇。这篇文章,不是一篇技术文章,所以通篇不提技术细节,而只是想帮大家澄清对分层的误解。 阅读全文

解析Monte-Carlo算法(基本原理,理论基础,应用实践)

2009-05-29 00:17 by T2噬菌体, 28688 阅读, 5 推荐, 收藏, 编辑
摘要:Monte-Carlo算法是一个非常有用的算法,在许多实际问题中,都有用武之地。目前,这个算法已经在金融学、经济学、工程学、物理学、计算科学及计算机科学等多个领域广泛应用。而且这个算法本身并不复杂,只要掌握概率论及数理统计的基本知识,就可以学会并加以应用。由于这种算法与传统的确定性算法在解决问题的思路方面截然不同,作为计算机科学与技术相关人员以及程序员,掌握此算法,可以开阔思维,为解决问题增加一条新的思路。基于以上原因,我有了写这篇文章的打算。这篇文章将首先从直观的角度,介绍Monte-Carlo算法,然后介绍算法基本原理及数理基础,最后将会和大家分享几个基于Monte-Carlo方法的有意思的实验。 阅读全文

LINQ to SQL快速上手 step by step

2009-04-22 00:03 by T2噬菌体, 10087 阅读, 3 推荐, 收藏, 编辑
摘要:本文不是一篇关于Linq to Sql的大百科,写本文的目的,是引导大家快速上手Linq to Sql,所以不可能面面俱到去讲解Linq to Sql。不过根据80-20定律,学会了本文的内容,基本就可以应付80%的工作了。另外,延续我一贯的风格,本文将通过案例的方式帮大家上手Linq to Sql。案例是一个“公告发布程序”。 阅读全文

OO真经——关于面向对象的哲学体系及科学体系的探讨(中)

2009-04-11 11:17 by T2噬菌体, 11468 阅读, 15 推荐, 收藏, 编辑
摘要:在前五章中,我们从世界观的这话题开始,逐步引出了抽象、层次、继承和耦合。这些内容,形成了对象论中关于世界的结构体系。然而,要想真正描述一个世界,仅有结构式不行的。开始我们说过,世界观主要关注两个方面:一是世界是什么样子的(结构),另一个就是世界时如何演进的(运作)。现在,我们来讨论对象论中关于世界运作的理论。这里首先要指出一点,“对象论”是关于程序世界(即将一个软件系统看成一个世界)的世界观,而非关于现实世界的,所以,将对象论应用于现实世界时,往往会有所偏颇。其实前面的某些地方已经体现出这一点,而在运作理论这里,会体现的尤其明显。但是为了直观起见,我依然会将对象论应用于现实世界去举例子,当然我会非常谨慎和小心,并且会明确指出对象论应用于现实世界的偏颇在哪里。 阅读全文

OO真经——关于面向对象的哲学体系及科学体系的探讨(上)

2009-04-09 00:18 by T2噬菌体, 20268 阅读, 13 推荐, 收藏, 编辑
摘要:面向对象(Object-Oriented),这是一条令无数开发人员魂牵梦绕的短语。几乎每个软件分析师、设计师和程序员都时刻将它铭记于心,对它顶礼膜拜。然而,对大多数人来说,它又像是天边的霞光,可望而不可及,无数次伸出双手,总是抓不住这虚无缥缈的圣物。于是,我们依然每天将面向对象高高供其,却始终无法悟得其道,更不要谈娴熟运用其道法了。面向对象像一滩苦海,无数人游弋其中,却久久不得其要领;类、对象、继承、多态、接口、UML、设计模式……无数概念看得我们眼花缭乱,却也悟不透其真谛。佛教有云:苦海无涯,回头是岸。如果置身苦海中无法脱离,那么,我们是否应该提高一个层面去看这片苦海:从哲学及科学的角度,去审视面向对象。 阅读全文

OOA&D实践之路——真实案例解析OO理论与实践(六、迭代式开发与用例驱动)

2009-03-02 23:50 by T2噬菌体, 6270 阅读, 0 推荐, 收藏, 编辑
摘要:这篇文章首先明确了系统开发过程,帮大家解开前几篇文章造成的疑惑。然后,陈述了系统开发阶段的两大法宝:迭代开发与用例驱动。 阅读全文

NGuestBook架构体系及实现指南

2009-02-25 00:01 by T2噬菌体, 6050 阅读, 1 推荐, 收藏, 编辑
摘要:前几天我在我的Blog上发布了NGuestBook,得到了很多反馈,在这里非常感谢大家的关注和支持。一些朋友在E-mail中提到,这个NGuestBook和我那个系列文章《基于.NET平台的分层架构实战》中讲的Demo有非常多不一样的地方,问我能不能单独写一篇文章说明一下这个新NGuestBook的架构方式和实现相关的问题。所以我专门写下这篇文章,对这个NGuestBook的架构体系和实现进行一个简要的说明,希望本文的内容能对大家有所帮助。 阅读全文

发布NGuestBook(一个基于.NET平台的分层架构留言本小系统)

2009-02-19 23:54 by T2噬菌体, 9365 阅读, 3 推荐, 收藏, 编辑
摘要:大约在半年前,我在博客上发表了一个系列文章:《基于.NET平台的分层架构实战》。当时在讲解过程中用到了一个叫NGuestBook的案例,在那以后,有很多朋友留言或发E-mail希望能得到NGuestBook的完整源代码,以便对照文章研究学习。但是,在当时NGuestBook只是我虚拟的一个案例,并没有成型的系统和完整的源代码。但是后来一直有很多朋友询问这个事情,所以我觉得,将那个NGuestBook做出来还是很有必要的,所以,我花了两天的时间大约做出了这个NGuestBook,现在把它发布出来,希望能给大家一些帮助。 阅读全文

OOA&D实践之路——真实案例解析OO理论与实践(五、需求分析之前的故事)

2008-12-13 11:13 by T2噬菌体, 6460 阅读, 1 推荐, 收藏, 编辑
摘要:对于这个问题,也许很多人会说,是灵活的、是易于修改和扩展的、是可维护性高的、是用户体验好的、是文档完整的、是代码规范的、是性能处理优秀的……好吧,我承认,这些都是高质量软件必不可少的元素,但是,还有一个更重要的要素,就是:软件必须做客户希望它做的事。你的软件再灵活、编码再规范,客户不关心,客户最关心的是软件是不是完成了他期待的功能,可以做他希望软件做的事。所有,高质量软件的第一要素就是:让软件做客户希望它做的事。 阅读全文

OOA&D实践之路——真实案例解析OO理论与实践(四、通览全局:避免过早陷入细节的泥沼)

2008-12-12 11:12 by T2噬菌体, 5946 阅读, 1 推荐, 收藏, 编辑
摘要:应该说,从“特性列表”直接到“用例分析”不是一个好注意,因为特性列表关注于功能(Function),而用例关注于系统的业务流(Business Flow),我们从功能直接开始分析系统的细节业务流,这个跨越太大,不利于软件质量的保证。特性是相对分散独立的功能描述,而用例是系统细节,很明显,在这之间应该有一个过渡,而这个过渡,就是一个高层次的,从全局角度对系统的一个概观认识。这个概观认识起到承上启下的作用,既将特性列表映射为一个系统的大概模型,又给系统细节的分析奠定了基础。所以,在系统特性基本确定后,我们首先要从全局给出一个系统的概览,避免落入用例分析这样细节的泥沼。 阅读全文

OOA&D实践之路——真实案例解析OO理论与实践(三、降低风险)

2008-12-11 07:32 by T2噬菌体, 5692 阅读, 5 推荐, 收藏, 编辑
摘要:在上一篇文章中,我们写出了一张特性列表。然后是不是就可以做需求分析了?很遗憾,还不可以,我们仍有许多工作要做。拿到特性列表后第一件事,就是要尽量降低风险。这里先不长篇大论风险如何如何,我们先做,从做的过程中体会降低风险的涵义。 阅读全文

OOA&D实践之路——真实案例解析OO理论与实践(二、第一项任务:特性列表)

2008-12-08 21:56 by T2噬菌体, 6499 阅读, 2 推荐, 收藏, 编辑
摘要:当这个项目开始时,我们得到的关于我们要做的系统的唯一说明是一页Word文档,这是一份简单的不能再简单的说明。文档里只有一行字:我们需要一个系统,使得全国各地的代理加盟商和连锁店能够通过网络订购原料。另外,我们还知道这是一个食品公司,主营面包、麻花、肉夹馍等食品,在全国各地有多家连锁机构。除此之外,我们一无所知。 阅读全文