模式/分析/管理
周公
周金桥,csdn网站ID是zhoufoxcn,网名周公,微信订阅号:zhoujinqiaoIT,2008-2012年度微软最有价值专家(MVP)。Csdn网站论坛专家,荣誉专家,曾任微软山西.net俱乐部技术负责人。在世界500强软件公司和上市民企担任管理岗位,有超过18年的开发及管理经验,擅长于程序性能和安全优化。2008独自编著《ASP.NET夜话》一书(2009年8月出版),2010合著《程序员的成长之路》一书(2011年5月出版)。
展开
-
MVC简单介绍(转)
MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Mode转载 2006-08-31 17:23:00 · 15684 阅读 · 4 评论 -
从Java类库看设计模式(2)
在上一部分的内容中,我们讲到什么是模式,什么是设计模式,以及对一个设计模式Observer的详细阐叙。相信大家对于模式的概念应该是比较的理解了。这部分及以后的内容,将会步入正题,从Java类库的分析入手,来阐叙设计模式是如何应用到一个完美的设计中的。实际上,Java类库非常的庞杂,这儿不可能把所有能够找到的设计模式的例子一一列举,只是找了一些容易发现的例子。实际上也没有必要,因为只要对一个设计模式转载 2007-11-02 15:49:00 · 2000 阅读 · 0 评论 -
使用设计模式改善程序结构(一)
设计模式是对特定问题经过无数次经验总结后提出的能够解决它的优雅的方案。但是,如果想要真正使设计模式发挥最大作用,仅仅知道设计模式是什么,以及它是如何实现的是很不够的,因为那样就不能使你对于设计模式有真正的理解,也就不能够在自己的设计中正确、恰当的使用设计模式。本文试图从另一个角度(设计模式的意图、动机)来看待设计模式,通过这种新的思路,设计模式会变得非常贴近你的设计过程,并且能够指导、简化你的设计转载 2007-11-02 16:24:00 · 2887 阅读 · 9 评论 -
使用设计模式改善程序结构(三)
设计模式在某种程度上确实能够改善我们的程序结构,使设计具有更好的弹性。也正是由于这个原因,会导致我们可能过度的使用它。程序结构具有过度的、不必要的灵活性和程序结构没有灵活性一样都是有害的。本文将分析过度的灵活性可能造成的危害,并且结合一些实例来阐述使用设计模式改善程序结构应遵循的原则。1、 介绍 本系列文章的前两篇主要讲述了如何使用设计模式来改善我们的程序结构,大家可以看到经过调整的代转载 2007-11-02 16:39:00 · 2079 阅读 · 0 评论 -
Jive 中的设计模式
关于设计模式, 这篇文章并不详细解释, 只是结合 Jive 来看看设计模式在一个实际项目中的应用及其整体的设计思想. 所以在读这篇文章前, 假设您对设计模式有一个感性的认识, 对其具体应用以及实现方法有些疑问, 并渴望了解其思想,并使用过 Jive. 本文将一同来探讨这个问题. 为什么选择 Jive 而不是选择一个新的例子重新开始呢? 有以下两个原因: 1, 我们很多人对 bbs 这样一个事物比转载 2007-11-02 14:10:00 · 1531 阅读 · 0 评论 -
在 Java 中应用设计模式 - Factory Method
基本概念FactoryMethod是一种创建性模式,它定义了一个创建对象的接口,但是却让子类来决定具体实例化哪一个类.当一个类无法预料要创建哪种类的对象或是一个类需要由子类来指定创建的对象时我们就需要用到Factory Method 模式了.简单说来,Factory Method可以根据不同的条件产生不同的实例,当然这些不同的实例通常是属于相同的类型,具有共同的父类.Factory Metho转载 2007-11-02 14:43:00 · 1732 阅读 · 0 评论 -
从Java类库看设计模式(3)
上一次主要介绍了几个创建型的设计模式AbstractFactroy,FactoryMethod和Singliton。它们的共同的特点,都是用来创建对象的。这次接下来的内容,涉及到的是几个结构型的模式。所谓结构型模式,就是用来解决在创建系统结构的过程中,通过对类或者对象进行合理有效的组合,以获得更大的结构的方法。这儿主要讲到了Bridge模式和Decorator模式。对于Bridge模式可能需要更多转载 2007-11-02 15:58:00 · 2260 阅读 · 0 评论 -
从Java类库看设计模式(4)
在上一部分中,介绍了两个结构型的模式:Bridge和Decorator。这一部分的内容,将会接着上面的讲解,继续我们的设计模式之旅。这一部分,除了还会介绍一个结构型的Composite模式之外,还会有两个行为模式登场。实际上在前面的内容中,我们已经接触到行为模式了:Observer和Command就是两个典型的行为模式。行为模式更多的注重于算法和对象建间职责的分配,也就是说,它会更多的关注于这转载 2007-11-02 16:09:00 · 1717 阅读 · 0 评论 -
从Java类库看设计模式(5)
有了前面诸多设计模式的基础,这儿可以提出一个比较特殊的模式MVC。MVC并不属于GOF的23个设计模式之列,但是它在GOF的书中作为一个重要的例子被提出来,并给予了很高的评价。一般的来讲,我们认为GOF的23个模式是一些中级的模式,在它下面还可以抽象出一些更为一般的低层的模式,在其上也可以通过组合来得到一些高级的模式。MVC就可以看作是一些模式进行组合之后的结果(实际上,MVC的出现要早于设计模式转载 2007-11-02 16:11:00 · 2110 阅读 · 0 评论 -
使用设计模式改善程序结构(二)
1、 回顾 在上一篇文章中,我们给出了一个使用设计模式来改善程序结构的例子,着重介绍了设计模式的意图、动机在我们程序重构过程中的指导作用。现在,我们将关注设计模式的另一个重要方面:设计模式的适用性。解决同一个问题一般会有多种方案或者模式,但是这些模式所关注的是同一个问题的不同方面,解决不同的需求,有各自的优点和限制,各有各的解决之道。这就要求我们在选择设计模式时,对我们自己的问题有很好转载 2007-11-02 16:32:00 · 2077 阅读 · 0 评论 -
技术管理中常见的几个问题
前几天跟朋友聊天时,朋友说他刚刚从一家知名软件公司面试出来,朋友去面试的是一家公司的技术管理岗位,所以在面试的时候被问及的问题也偏重于技术管理方面的问题,在与朋友的聊天中将这几个问题归纳了一下,大致归为如下几个问题。在日常中你是如何行使管理职能的 这个问题以我的经验来及参考常见的一些开发方法,在实际中我都是早询问及晚反馈的方法。也就是早上上班后的半个小时内主动原创 2010-03-17 07:04:00 · 7898 阅读 · 70 评论 -
从Java类库看设计模式(1)
很多时候,对于一个设计来说(软件上的,建筑上的,或者它他工业上的),经验是至关重要的。好的经验给我们以指导,并节约我们的时间;坏的经验则给我们以借鉴,可以减少失败的风险。然而,从知识层面上来讲,经验只是作为一种工作的积累而存在于个人的大脑中的,很难被传授或者记录。为了解决这样的问题,人们提出了所谓的模式的概念。所谓模式,是指在一个特定背景下,反复出现的问题解决方案。模式是经验的文档化。软件模式转载 2007-11-02 15:40:00 · 2212 阅读 · 0 评论 -
在 Java 中应用设计模式 -- Singleton
Singleton 是一种创建性模型,它用来确保只产生一个实例,并提供一个访问它的全局访问点.对一些类来说,保证只有一个实例是很重要的,比如有的时候,数据库连接或 Socket 连接要受到一定的限制,必须保持同一时间只能有一个连接的存在.再举个例子,集合中的 set 中不能包含重复的元素,添加到set里的对象必须是唯一的,如果重复的值添加到 set,它只接受一个实例.JDK中正式运用了Single转载 2007-11-02 14:32:00 · 1601 阅读 · 1 评论 -
用设计模式的思想来定制Java中的事件
随着JAVA的迅猛发展,JDK版本的不断更新,JAVA新的事件模型与旧的JDK模型也有了本质的区别,它的事件模型也有了很大的区别。由于现在的编程都是采用事件驱动,所以很有必要了解的事件模型,我们下面从定制事件的实际出发来具体讨论。比如你要实现一个定时器类,它的主要功能是在在一定的时间后,启动具体的处理事件因此我们可以设计两个类:定时器类(Timer)和调用类(Clock),对应的USE C转载 2007-11-02 14:22:00 · 1428 阅读 · 0 评论 -
用正确方法写出质量好的软件的75条体会
1. 你们的项目组使用源代码管理工具了么?应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。2. 你们的项目组使用缺陷管理系统了么?应该用。ClearQuest太复杂,我的推荐是BugZilla。 3. 你们的测试组还在用Word写测试用例么?不要用Word写测试用例(Test Case)。应该用一个专门的系统,可以是Test M转载 2006-10-09 14:42:00 · 1949 阅读 · 3 评论 -
Singleton(单件)模式与类静态函数(实用类)的区别
实用类提供系统公用的静态静态方法,并且也经常采用私有化的构造函数,与单件模式不同,它没有实例,其中的方法全部是静态方法。单件提供了全局唯一的访问入口,易于控制可能发生的冲突。单件是对类静态函数的一种改进,首先改变了全局变量对系统的污染,其次它可以有子类,可以定义虚函数,可以有子类,而类的静态方法是不能定义为虚函数的,因此不具有多态性。单件模式可以扩展为多件,即允许有受控的多个实例存在。原创 2006-10-13 16:08:00 · 2180 阅读 · 0 评论 -
代码重构简介
一.重构原则1.重构的定义重构(名词):对软件内部结构的一种调整,目的是在不改变"软件之可察行为"前提下,提高其可理解性,降低其修改成本.重构(动词):使用一系列重构准则(手法),在不改变"软件之可察行为"前提下,调整其结构.两种定义都强调是在不改变"软件的外部行为"前提下,不改变"软件之可察行为"就是说让修改不影响外部使用程序(程序员),在个外部来看,程序的行为和结果没有任何原创 2006-10-23 10:32:00 · 1619 阅读 · 0 评论 -
揭密软件工程实践者的思想
“得其精而忘其粗,在其内而忘其外;见其所见,不见其所不见,视其所视,而遗其所不视”——《列子 说符》转载 2007-01-22 14:35:00 · 1812 阅读 · 0 评论 -
歪说软件工程28篇
歪说软件工程1 - 科学沦为艺术 话说某大学生美眉在妓院找了一个操作电脑的工作,以后她要不沦为妓女,要不总被认为是妓女。 当软件工程作为科学遭遇实践,它要不沦为艺术,要不总被认为是艺术。 科学与艺术的相同在于都是人生产的;科学与艺术的区别在于,科学操纵人,而人操纵艺术。 当软件工程不是去操纵人,而是由人来操纵,结果就是软件工程还是管理的艺术。 当科学沦为艺术或被认为是艺术,要不该怎么转载 2007-01-25 11:47:00 · 2319 阅读 · 0 评论 -
网站项目管理规范手册
一.概念 网站项目管理就是根据特定的规范、在预算范围内、按时完成的网站开发任务。 二.需求分析 项目立项 我们接到客户的业务咨询,经过双方不断的接洽和了解,并通过基本的可行性讨论够,初步达成制作协议,这时就需要将项目立项。较好的做法是成立一个专门的项目小组,小组成员包括:项目经理,网页设计,程序员,测试员,编辑/文档等必须人员。项目实行项目经理制。 客户的需求说明书 第一步是需要客户提原创 2007-03-26 18:35:00 · 1910 阅读 · 1 评论 -
.NET架构与模式探索
什么是架构软件体系结构通常被称为架构,指可以预制和可重构的软件框架结构。架构尚处在发展期,对于其定义,学术界尚未形成一个统一的意见,而不同角度的视点也会造成软件体系结构的不同理解,以下是一些主流的标准观点。ANSI/IEEE 610.12-1990软件工程标准词汇对于体系结构定义是:“体系架构是以构件、构件之间的关系、构件与环境之间的关系为内容的某一系统的基本组织结构以及知道上述内容设计与演化转载 2007-04-01 19:03:00 · 2531 阅读 · 0 评论 -
封装的变化之不断变化的需求
软件设计最大的敌人,就是应付需求不断的变化。变化有时候是无穷尽的,于是项目开发就在反复的修改和更新中无限期地延迟交付的日期。变化如悬在头顶的达摩克斯之剑,令许多软件工程专家一筹莫展。正如无法找到解决软件开发的“银弹”,要彻底将变化扼杀在摇篮之中,看来也是不可能完成的任务。那么,积极地面对“变化”,方才是可取的态度。于是,极限编程(XP)的倡导者与布道者Kent Beck提出要“拥抱变化”,原创 2007-06-17 12:28:00 · 1548 阅读 · 0 评论 -
TDD开发的全过程之分析建模
一、起因 公司交给我一个任务,为测试员写一个手机模拟界面,以方便她们的手机短信测试。过去她们都是用MC4J直接调用公司服务器的MBean服务来模拟进行测试,以验证我们整个系统平台。这种测试主要是检查收发短信是否正常,而我的要做的工作就是,让她们在测试的时候更方便更直观。二、需求 我和测试员陈MM(也就是软件的使用者)约定了一个时间,大家一起来讨论这个软件的需求。 1、首先,我原创 2007-06-17 12:58:00 · 2368 阅读 · 0 评论 -
反映中国作坊式管理软件公司问题的《老板看后一夜没睡的辞职信》
一封暴漏中国式软件公司弊端的辞职信,很值得软件公司管理层思考。转载 2010-06-06 18:57:00 · 8538 阅读 · 54 评论