.NET初学者架构设计指南(二)OO设计初次见面
我使用OO技术第一次设计软件的时候,犯了一个设计者所能犯的所有错误。那是一个来自国外的外包项目,外方负责功能设计,我们公司负责程序设计、编码和测试。 第一个重要的错误是,我没有认真的把设计说明书看明白。功能点设计确实有一些问题,按照他们的设计,一个重要的流程是无法实现的。于是我在没有与投资方沟通的情...
想申请"重构"(Refactoring)团队,可有人支持?
目前国外的同行们在重构方面的学习研究依旧如火如荼,而我们以技术著称的博客园,还没有相应的团队关注这方面的内容.希望申请重构团队与大家一起学习讨论这方面话题.TO DUDU:这篇不算正式的申请,如果我获得足够的支持,我会到http://www.cnblogs.com/dudu/archive/2004...
.NET初学者架构设计指南(一)Hello world的时代
中学的时候,学校里开设了电脑课。当时的电脑还是一种比较希罕的东西,学校里的电脑一共就十几台,还专门找了一个大厅摆放这些机器。厅里面铺着厚厚的地毯,整天都拉着重重的窗帘。每次上课前一天,我们需要沐浴更衣,剪好指甲。上课时大家都穿上鞋套,排好队伍,列队进入机房。然后各位同学坐在座位上,在老师的指挥下,拿...
Remoting基本原理及其扩展机制(中)
在上一篇文章我们已经介绍到通过在配置文件中指定自定义的ChannelSinkProvider,我们可以在Pipeline中加入自己的ChannelSink,此时我们就可以加入自己的信息处理模块,但是这里我们所能操作的对象是已经经过格式化的消息(即数据流),我们看不到原始的消息对象,这也势必影响了我们...
Remoting基本原理及其扩展机制(上)
.NET Remoting是.NET平台上允许存在于不同应用程序域中的对象相互知晓对方并进行通讯的基础设施。调用对象被称为客户端,而被调用对象则被称为服务器或者服务器对象。简而言之,它就是.NET平台上实现分布式对象系统的框架。 传统的方法调用是通过栈实现,调用方法前将this指针以及方法参数压入线...
使用Visitor模式的现实问题(请教)
选择放在首页一方面是希望更多的朋友可以帮助我,另一方面我觉得这个案例有一定的典型性。如果大家(特别是DUDU)认为不妥请告诉我,我撤下来。 背景:遍历一个图(有若干元素组成,每个元素称为一个Shape,元素之间由Connector相连)生成相应的XML文件。每个元素生成一段XML代码,最后组合在一起...
《软件设计精要与模式》前言
缘起 用过去几年互联网上最酷,而在当下已经被用滥的名词来说,我在2004年成为了一名博客,用日志的方式记录自己成长的经历。坦白说,技术的成长远远比身体的发育更加地艰辛与缓慢,尤其是当今信息爆炸的年代,我们担忧的不是吃不饱,而是应该怎么吃,吃什么?营养不良固然令人堪忧,营养过剩却也不是健康之道。如果我...
沿着“重用”我们一路走来——SA、OO(DP)、Component、SOA、AOP
自从有了软件开发以来,消除重复,提高软件的重用性就一直是我们所追求的一个重要目标,本文将围绕着这一主题,带大家重走一遍结构化(SA)、面向对象(OO)与设计模式(Design Pattern)、组建化(Component)、面向方面(AOP)直至面向服务(SOA)这条软件开发技术的发展之路。让我从...
《软件设计精要与模式》各篇之篇首语
《软件设计精要与模式》(原名《设计之道》)共分为五篇共28章内容。以下是各篇的篇首语,敬请各位斧正。 第一篇 设计之要 永远不要低估设计的能量,特别是那些以设计优雅的软件为最高目标的软件设计师们。然而,我们也不能高估设计的威力,以至于在将软件设计思想供奉在穹顶高悬的殿堂最高处的同时,还要卑躬屈膝地对...
小函数:让你的函数变短的九个好处
Small Methods: Nine Benefits of Making Your Methods Shorter 小函数:让你的函数变短的九个好处 译者注:本文英文版来自http://langrsoft.com/articles/smallMethods.shtml。翻译不改变原文的版权。中文...
23个模式中你最想干掉谁?
*两天发了三个首页确实有污染版面之嫌,但是最后这个帖子实在是非常想跟大家共享(竟然还不是原创!) Martin Fowler发表了关于他在OOPSLA2004(这么古老!)上的经历的一篇文章。他们开始讨论了GOF的Design Patterns那本书。然后做了一个投票“哪些模式最应该被踢出去”,结果...