“软件设计”文章列表
前面《为什么要使用NoSQL》和《关系数据库还是NoSQL数据库》两篇从大体上介绍了为什么要用NoSQL,何时该用NoSQL。经常有朋友遇到困惑,看到NoSQL的介绍,觉得很好,但是......
在坏的设计中,数据往往是分散的,甚至是杂乱的,这就好像一群失去意识的猛兽,我们无法控制、协调以及管理它们。这种漫无头绪的散乱数据,犹如猛兽的肆意妄为,会给系......
春节前的一篇那些炒作过度的技术和概念中对敏捷和中国ThoughtWorks的微辞引发了很多争议,也惊动了中国ThoughtWorks公司给我发来了邮件想来找我当面聊聊。对于Ag......
一、开篇
上一篇我们讲述了结构型模式中的代理模式。本篇,我们将会开始讲述行为型模式中的命令模式,在设计模式的这些基本的模式完成后,我将会将一些经常用的其......
面向对象设计的一个重要分析方法是利用对象的职责来驱动设计。对象有了职责,才会成为具体拥有意识的对象,成为对象社区中可以独立完成,或者发出指令委派别的对象......
前言
此文译自CodeProject上<How I explained OOD to my wife>一文,该文章在Top Articles上排名第3,读了之后觉得非常好,就翻译出来,供不想读英文的同学参......
David Wheeler有一句名言:“计算机科学中的大多数问题都可以通过增加一层间接性来解决。”间接代表着迂回。世间没有哪一条道路是完全笔直的。蜿蜒曲折......
抽象建立的这层间接性,解除了调用者与实现类之间的具体依赖,使得实现类可以单独变化,而不会影响到调用者。例如,当我们需要为元数据的读取操作定义对象时,好的编......
理解POCO(Plain Old CLR Object)先要理解POJO。
1、什么是POJO?
POJO的名称有多种,pure old java object 、plain ordinary java object 等。 按照Martin Fo......
本系列博文将使用微软RIA技术解决方案Silverlight以及扩展性管理框架Managed Extensibility Framework(MEF),以插件式架构设计为导线,分享本人在从事基于微软Si......
架构设计并不是项简单的工作,架构设计最终的产物则是由不同的框架组件构成一套高扩展、稳定、安全、通用的开发框架平台。或许一提到架构设计,很多朋友都联想到了常......
间接在分层架构中体现尤为明显,引入层实则就是引入间接性。利用间接对变化进行隔离,使得变化只能影响一层。例如在领域层与数据库之间引入数据访问层,就可以隔绝......
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码时,你就要开始阅读......
Anders Hejlsberg(安德斯-海森博格) 坐在自己的办公室,双眼直直的盯着前方。他要做一个决定,决定自己未来的命运和理想。这是1996年一个普通的下午,几个小时前,他......
又拍网是一个照片分享社区,从2005年6月至今积累了260万用户,1.1亿张照片,目前的日访问量为200多万。5年的发展历程里经历过许多起伏,也积累了一些经验,在这篇文......
看到下面这段代码,你会做何感想?
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--if(db.Next()) { ......
这是一个找茬的游戏,下面三段代码的差别在哪:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--if (1......
不知道为什么,初见它时,我想起了郭芙蓉的排山倒海:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--......
这是一段长长的C++代码,我的问题是:relaPri、relaSec和 scoutBySec这三个变量在哪里用到了?
Code highlighting produced by Actipro CodeHighlighter (freew......
这是一段用C++编写的数据库访问代码:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--int Comm::set......