欢迎大家在这里讨论设计模式,来提高我们代码质量!
最近更新文章
谈谈分析模型的那些事儿 之 开始分析
——对分析模型的一点儿见解 当需求分析结束、需求确认完成、需求讨论告一段落的时候,我们的需求分析员拿出了厚厚的一打用例分析模型、领域设计模型,需求分析阶段结束,开始进入开发阶段。但是,这时候虽然需求分析阶段结束了,却千万不要以为需求分析就结束了,如果你还这样认为,说明你还没有摆脱瀑布式开发的思维。瀑布式开发的思维的关键点就是认为,需求分析阶段应当完成所有的需求分析和确认的工作,否认需求分 ...
谈谈分析模型的那些事儿 之 职责驱动设计
分配职责和职责驱动设计 我们在开始分析模型的时候,首先要弄清楚一个非常重要的原则,就是以职责为中心。OO分析设计的核心原则之一,就是软件系统中的所有元素都必须具有高度相关的职责,也就是说,软件系统中所有的模块、包、对象类,都应当拥有一个清晰的职责,并且与它相关的所有元素(即模块中的所有包、包中的所有对象类、对象类中的所有属性和行为)都必须与这个职责具有高度的相关性。因此,分析模型的首要设计原则就 ...
一堂如何提高代码质量的培训课
今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术。我们抛开任何具体的技术,来谈谈如何提高代码质量。如何提高代码质量,相信不仅是在座所有人苦恼的事情,也是所有软件项目苦恼的事情。如何提高代码质量呢,我认为我们首先要理解什么是高质量的代码。 高质量代码的三要素 我们评价高质量代码有三要素:可读性、可维护性、可变更性。我们的代码要一个都不能 ...
一堂如何提高代码质量的培训课(2)
3.可变更性 前面我提到了,软件的变更性是所有软件理论的核心,那么什么是软件的可变更性呢?按照现在的软件理论,客户对软件的需求时时刻刻在发生着变化。当软件设计好以后,为应对客户需求的变更而进行的代码修改,其所需要付出的代价,就是软件设计的可变更性。由于软件合理地设计,修改所付出的代价越小,则软件的可变更性越好,即代码设计的质量越高。一种非常理想的状态是,无论客户需求怎样变化,软件只需进行适当地修 ...
一堂如何提高代码质量的培训课(3)
3)职责驱动设计和领域驱动设计 前面我提到,当我们尝试写一些复杂功能的时候,我们把功能分解成一个个相对独立的函数。但是,应当将这些函数分配到哪个类中呢?也就是系统中的所有类都应当拥有哪些函数呢?或者说应当表现出哪些行为呢?答案就在这里:以职责为中心,根据职责分配行为。我们在分析系统时,首先是根据客户需求进行用例分析,然后根据用例绘制领域模式和分析模型,整个系统最主要的类就形成了。通过以上分析形成 ...
一堂如何提高代码质量的培训课 之 领域驱动设计
终于到了该说说领域驱动设计的时候了。我们在这场关于代码质量的讨论中,从代码可读性开始,讨论了代码复用性、设计模式,然后探讨了职责驱动设计。代码可读性是对代码质量最基本的要求,可惜我们仍有做得不够的(即使那些开发程序很多年的老程序员)。代码复用是提高代码质量的最初级阶段,但是在一个多人开发的项目团队中,围绕代码复用值得讨论的问题依然非常多,它依然是一个非常复杂的问题,甚至有时它不再仅仅是一个技术问题, ...
接口和 继承方式之比较的漫谈
当使用继承的时候,主要是为了不必重新开发,并且在不必了解实现细节的情况下拥有了父类我所需要的特征。 但是很多时候,一个子类并不需要父类的所有特征,它可能只是需要其中的某些特征,但是由于通过继承,父类所有的特征都有了,需要的和不需要的特征同时具备了。而那些子类实际上不需要用到的,有时候甚至是极力避免使用的特征也可以随便使用,这就是继承的副作用。特别是允许多重继承的OO语言中,很容易引起不容易发现的错 ...
面向对象的思维方法
面向对象的思维方法 作者:范凯 E-mail: robbin_fan@yahoo.com.cn 我是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候感觉很别扭,因为我早以习惯用C来编写程序,很欣赏C的简洁性和高效性,喜欢C简练而表达能力丰富的风格,特别忍受不了Java运行起来慢吞吞的速度,相对冗长的代码,而且一个很简单的事情,要写好多类,一个类调用一个类,心里的 ...
OO design trap
需求如下: 有这样一家超市,对顾客实行会员制,会员目前分为两个等级:金卡及银卡。 每次会员购物时,都会根据会员等级提供不同的折扣优惠和返点。 设计方案有三个: 1. 过程设计,用作对比 2. 过程式的OO设计,简单来说就是将过程设计中的函数封装到类里面 3. 标准的OO设计,封装、继承、多态、设计模式,能用的都用上 问题: 如果是你,你会采用哪种OO设计,或者有更好的设计? 过程式设计: ...
域对象 & 面向对象 & 结构化编程
本来我尽量避免关于方法论方面的主义之争,但一些话如骨鲠在喉,不吐不快。 软件领域方法论大师的著作发人深省,通常代表着软件开发的未来模式。当然,我们在读大师之后,掩卷沉思之余,最好也保持自己的独立意见。 希望本文能够唤起一些对基本概念和基本功的重视(追逐新潮概念之余,同时也固本培源)。 1. Domain Object的重新提出的背景 Domain Object并不是一个全新的概念,而是继承以前的 ...
设计模式与XP
转自CSDN 设计模式与XP Joshua Kerievsky 著,Gigix 译 概述 模式和极端编程(XP )都为软件设计、开发者提供了无法用金钱衡量的帮助。但是迄今为止XP 大量关注于重构(refactoring ),而对模式只字不提。在这篇文章中,我问“为什么”,并且最终描述出模式怎样以XP 的方式更好地实现、以及XP 怎样因为包含对模式的使用而变得更好。 致谢 非常感谢Kent ...
如何学习设计模式
随便谈谈我对设计模式的看法吧。我极度反感言必称设计模式,什么要学好OO,必先学好Gof这类的屁话。坦率说我也从来不刻意的去学习设计模式,我看到身边的朋友花那么多钱去买一大本厚厚的阎博士的设计模式的书,心里总是叹息一下,设计模式不是学出来的,是用出来的。设计模式应该怎么学习?应该我花两个小时给你讲一下,告诉你每个模式是怎么回事,应该在什么场合适用就OK了,这样就学完了。 然后你在自己的工作实践中,碰 ...
讨论一下设计模式吧?
jive 可以说是应用模式设计的典范作品,大家认为jive 是一个成功的产品呢? 还是一个成功的花瓶呢? 想了解一下大家的看法. 不知道大家在实际工作中mvc框架应用的多不多?谈谈经验如何?
群组知识库热门文章
- 25491 Oracle中Cursor介绍
- 7783 Oracle 嵌套事务与自治事务思考
- 5345 EJB3+Jboss4.2配置开发
- 4765 谈谈用例模型的那些事儿 之 用例图
- 4370 一堂如何提高代码质量的培训课