摘要: 敏捷软件开发宣言我们 正通过亲身实践 以及 帮助他人实践,揭示更好的软件开发方法 通过这项工作 ,我们认为: 人和交互 重于 过程和工具 可以工作的软件 重于 面面俱到的文档 客户合作 重于 合同谈判随时应对变化重于 遵循计划虽然右项也有其价值,但我们认为左项更加重要。原则1. 我们最优先要做的是通过尽早地、持续地交付有价值的软件来使客户满意。2. 我们欢迎需求的变化,即使到了开发后期。敏捷过程能够驾驭变化,为客户创造竞争优势。3. 经常交付可以工作的软件 ,从几个星期到 几个月,时间间隔越短越好。4. 在整个项目开发期间,业务人员和开发人员必须朝夕工作在一起。5. 围绕斗志昂扬的人构建项目。 阅读全文
posted @ 2008-12-12 15:13 lemonade 阅读(1149) 评论(0) 推荐(0) 编辑
摘要: 我们知道,对于一个给定的数判断该数是不是质数,很简单,只需要对其开根号,然后循环取模即可:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->publicboolIsPrime(intnumber){if(number<2){returntrue;}else{for(inti=2;i<=Math.Sqrt(number);i++){if(number%i==0){returnfalse;}}}returntrue;}但是,对于一个给定 阅读全文
posted @ 2008-12-10 17:09 lemonade 阅读(1916) 评论(7) 推荐(0) 编辑
摘要: 前言上一篇笔者已经讲述了Object中有关ToString()、Equals()、GetHashCode()方法的基本运用,本章将简单介绍另外三个方法:GetType()、MemberwiseClone()、Finalize(),希望在本章完了以后大家对Object对象有一个深刻详细的认识。应用4GetType(): 获取元数据提到GetType()方法,就不得不引入反射。在.NET中,反射是一个运行库类型发现的过程。通过反射,可以得到一个给定程序集所包含的所有类型的列表,这个列表包括给定类型中定义的方法、字段、属性和事件。也可以动态地发现给定类(或结构)支持的接口、方法的参数和其他相关细节( 阅读全文
posted @ 2008-12-05 18:19 lemonade 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 引言Object类是C#中所有类型的基类,但由于对它的继承是隐式的,故大多数人对它并不太在意,其实object中包含了很多有用的方法,对它有个清晰的了解能够很好地帮你理清楚c# API的层次结构,本文就Object中6个方法进行简单的说明,重点讲述Equals方法。综述在.Net中,每一个类型都继承自一个公共的基类:System.Object。Object类定义了.NET世界中每一个类型都支持的一组公共的成员集合。当创建任何一个不显示指定其基类的类时,它隐含继承自System.Object,当然,你也可以显示地继承。下面来看一下,System.Object的接口:CodeCode highli 阅读全文
posted @ 2008-12-02 22:09 lemonade 阅读(640) 评论(0) 推荐(0) 编辑
摘要: 第四章 关键的“构建”决策 (key Construction Decision) Checklist: 主要的构建实践 (Major Construction Practices) 编码 你有没有确定,多少设计工作将要预先进行,多少设计工作在键盘上进行(在编写代码的同时)? 你有没有规定诸如名称、注释、代码格式等“编码约定”? 你有没有规定特定的由软件架构确定的编码实践... 阅读全文
posted @ 2008-12-01 20:58 lemonade 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 摘自《Code Complete》一书,将书中的一些Check List和Key Points列出来,以备遗忘。第一章 欢迎进入软件构建的世界 (Welcome to Softeware Construction)key Points: 软件构建是软件开发的核心活动:构建活动是每个项目中唯一一项必不可少的工作。 软件构建的主要活动包括:详细设计、编码、调试、集成、开发者测试(包括单元测试和集成测试)。 构建也常被称作“编码”和“编程”。 构建活动的质量对软件的质量有着实质性的影响。 最后,你对“如何进行构建”的理解程度,决定了你这名程序员的优秀程度。 第二章 用隐喻来更充分地理解软件开发 (M 阅读全文
posted @ 2008-12-01 19:47 lemonade 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 引言面向对象的三大利器:封装,继承,多态,正是因为这三个主要特性,演化出了众多优秀的设计模式和框架,只有掌握了它们才能真正掌握面向对象。本文主要探讨继承的概念,都是些简单的语法,但是可能很多人在学习了若干框架、模式后,反而忘记或者说淡忘了一些基本的概念,笔者就是其中一个,故写下此文,一方面温故而知新,另一方面也强调基础的重要性。概念继承就是在类之间建立一种相交关系,使得新定义的派生类的实例可以继承已有的基类的特征和能力,而且可以加入新的特性或者是修改已有的特性建立起类的新层次。我们知道,现实中的事物都是有其相似和区别的,如果我们将相似的特征提取出来集中描述,不同的特征分别描述并包括那些相同的特 阅读全文
posted @ 2008-11-28 22:30 lemonade 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 引言翻看微软的PetShop范例的时候,无意中发现了一段代码,是用来对数据库中不同的表建立缓存依赖,其中很巧妙地运用了继承的概念,翻阅资料,方知叫Template Method 设计模式,于是将一些心得跟体会写下来与大家分享。概念GoF《设计模式》中说道:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。这就好比我们建房子,整个架构我们定好了,至于往里面添什么不会影响整体的构造。它主要用来解决在软件构建过程中,对于某一项任务,常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的 阅读全文
posted @ 2008-11-28 18:08 lemonade 阅读(393) 评论(2) 推荐(0) 编辑
摘要: 1Observer设计模式#regionObserver设计模式2/**//*3*假设热水器由三部分组成:热水器、警报器、显示器,它们来自于不同厂商并进行了组装。那么应该是热水器仅仅负责烧水,它不能发出警报也不能显示水温;4*在水烧开时由警报器发出警报、显示器显示提示和水温。5*6*Observer设计模式中主要包括如下两类对象:7*(1)Subject:监视对象,它往往包含着其它对象所感兴趣的内容。在本范例中,热水器就是一个监视对象,它包含的其它对象所感兴趣的内容,就是temprature8*字段,当这个字段的值快到100时,会不断把数据发给监视它的对象。9*(2)Observer:监视者, 阅读全文
posted @ 2008-11-03 10:15 lemonade 阅读(644) 评论(0) 推荐(1) 编辑
摘要: 引言 代理设计模式(Proxy)可能对大多数人来说并不熟悉,然而其在WebService方面的应用却是非常广泛,本文试图通过三个简单的实例描述代理设计模式的应用场景,希望读者通过这篇文章能够对代理设计模式有一个大概的认识。 应用场景 代理设计模式,说简单点就是为目标对象提供一个代理以控制对其的访问。当我们需要使用的对象很复杂或者需要很长的时间去构造,这时,我们就可以使用代理模式(Proxy)。它相当于Client与实际请求对象之间的一个中介,我们可以理解为它是一个房屋中介。 为什么需要中介呢?我们可以考虑下,当我们买房或者租房的时候,为什么不直接去办而要通过中介?可能房主在外地,只是托中介帮忙 阅读全文
posted @ 2008-10-22 22:19 lemonade 阅读(306) 评论(0) 推荐(0) 编辑