<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_tmfc's .net cabin</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/20833/rss</id><updated>2009-03-15T05:54:41Z</updated><author><name>tmfc</name><uri>http://www.cnblogs.com/tmfc/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tmfc/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/20833/rss"/><entry><id>http://www.cnblogs.com/tmfc/archive/2009/03/08/1406421.html</id><title type="text">LightCloud设计特点</title><summary type="text">LightCloud使用一致性Hash算法（Consistent Hashing），好处就是当添加新节点的时候不用移动大量数据了。还不知道为什么？Consistent Hashing介绍。一致性Hash算法也不算什么新鲜玩意儿了，凡是分布式系统都不免能见到它的身影，那LightCloud特别之处在哪里呢？</summary><published>2009-03-08T12:32:00Z</published><updated>2009-03-08T12:32:00Z</updated><author><name>tmfc</name><uri>http://www.cnblogs.com/tmfc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tmfc/archive/2009/03/08/1406421.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tmfc/archive/2009/03/08/1406421.html"/></entry><entry><id>http://www.cnblogs.com/tmfc/archive/2009/03/08/1406355.html</id><title type="text">有怪兽，有怪兽 - 通过MONSTER OF COMPRESSION选择压缩算法</title><summary type="text">2009年度的MONSTER OF COMPRESSION排名，提供了大量压缩工具（类库）的性能测试，可以通过榜单来找合适你的压缩算法。</summary><published>2009-03-08T10:52:00Z</published><updated>2009-03-08T10:52:00Z</updated><author><name>tmfc</name><uri>http://www.cnblogs.com/tmfc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tmfc/archive/2009/03/08/1406355.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tmfc/archive/2009/03/08/1406355.html"/></entry><entry><id>http://www.cnblogs.com/tmfc/archive/2009/03/07/1405669.html</id><title type="text">LightCloud -- 分布式键-值数据库</title><summary type="text">LightCloud是一个性能堪比Memcached的分布式的键-值数据库，但相对于易失的Memcached，它是持久化存储的，在传统的关系数据库之外提供了另一种选择。</summary><published>2009-03-07T13:45:00Z</published><updated>2009-03-07T13:45:00Z</updated><author><name>tmfc</name><uri>http://www.cnblogs.com/tmfc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tmfc/archive/2009/03/07/1405669.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tmfc/archive/2009/03/07/1405669.html"/></entry><entry><id>http://www.cnblogs.com/tmfc/archive/2008/07/29/1216384.html</id><title type="text">[翻译]更有效的使用垃圾收集&amp;ndash; 第一部分</title><summary type="text">翻译自Maoni's WebLog 文章Using GC Efficiently – Part 1，Maoni是微软CLR Performance组的成员 本文的目标是解释一些东西的代价好让你可以更好使用托管内存-而不是解释GC本身-只是解释如何使用它而已。我假设绝大多数人对于使用垃圾收集感兴趣，而不想自己实现一个。本文假设读者对GC有基础的了解，如果你需要一些关于GC的背景知识，Jeff Richter写了两篇非常好的MSDN文章，1和2。 首先我会关注工作站级类型的GC（Wks GC），然后我会解释服务器类型的GC（Svr GC）与前者的区别和你该用哪个（但是通常情况下你不需要选择，而我也会解释为什么你不需要）。 </summary><published>2008-07-29T05:53:00Z</published><updated>2008-07-29T05:53:00Z</updated><author><name>tmfc</name><uri>http://www.cnblogs.com/tmfc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tmfc/archive/2008/07/29/1216384.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tmfc/archive/2008/07/29/1216384.html"/></entry><entry><id>http://www.cnblogs.com/tmfc/archive/2006/12/25/603413.html</id><title type="text">企业架构应用模式读书笔记（四）</title><summary type="text">Web展现&#xD;最近几年企业应用中最大的改变无疑是基于Web浏览器的用户界面的崛起。优势在于：不需要部署任何客户端软件，一致的UI使用方法，便利的全球访问。&#xD;&#xD;通常Web服务器上有着各种各样的配置文件来确定哪些URL该由那个程序处理，一个Web服务器可以支持多种程序。它的工作只是解释请求（request）的URL并把控制交给服务器端程序。&#xD;&#xD;服务器端程序基本上可以分为两种基本的类型：script和server page</summary><published>2006-12-25T12:55:00Z</published><updated>2006-12-25T12:55:00Z</updated><author><name>tmfc</name><uri>http://www.cnblogs.com/tmfc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tmfc/archive/2006/12/25/603413.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tmfc/archive/2006/12/25/603413.html"/></entry><entry><id>http://www.cnblogs.com/tmfc/archive/2006/12/19/597154.html</id><title type="text">企业架构应用模式读书笔记（三）下</title><summary type="text">结构映射模式&#xD;当人们谈论对象-关系映射时，大部分的人都是在讨论结构映射模式，大部分模式都和Table Data Gateway无关,某些可以用在Row Data Gateway或Active Record上，大部分都需要用在Data Mapper上。&#xD;&#xD;映射关系&#xD;关键点是联系对象和关系的不同的方法，这会引出两个问题。第一个问题在表现（representation）上，对象保持引用而关系数据库保持的是键的关联。第二个问题是，对象可以很容易的使用集合来保持多个与它有关的其他对象的引用，但是关系数据库却正好相反，相关对象会有一个到主对象的反向的引用。比如一个部门有多个员工，部门对象持有多个员工的引用，但是再关系数据库中，每个员工的数据行中会有一个到部门表的外键连接，而不是在部门表中引用多个员工（因为关系数据库不支持这样做）。&#xD;&#xD;解决表现问题的方法是在对象中保持一个Identity Field，使用它来作为关系数据库的键。当你访问数据库中的外键时，你使用的是Foreign Key Mapping来连接适当的对象间的连接。如果你没有在Identit</summary><published>2006-12-19T11:54:00Z</published><updated>2006-12-19T11:54:00Z</updated><author><name>tmfc</name><uri>http://www.cnblogs.com/tmfc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tmfc/archive/2006/12/19/597154.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tmfc/archive/2006/12/19/597154.html"/></entry><entry><id>http://www.cnblogs.com/tmfc/archive/2006/12/18/596130.html</id><title type="text">企业架构应用模式读书笔记（三）上</title><summary type="text">架构模式&#xD;架构模式的选择对后续的程序开发有着深远的影响并且难以切换（难以从一种模式重构到另一种），所以必须仔细的选择架构模式。&#xD;&#xD;将SQL语句嵌在逻辑代码中会显得非常的丑陋，DBA也希望能够通过了解SQL语句来决定怎样对数据库进行索引，所有这一切的原因让我们倾向于将访问数据库的SQL语句从领域逻辑中分离出来。&#xD;&#xD;以数据表结构来组织类的结构是一个好主意，这样类和数据表可以一一对应。这些类组成了一个数据表的Gateway，Gateway主要分为两种，Row Data Gateway和Table Data Gateway。&#xD;&#xD;Row Data Gateway中，数据表中的每一行对应于一个对象实例，比较自然的符合了面向对象的思想。&#xD;&#xD;Table Data Gateway中，整个数据表只需要一个对应的对象实例。而用来储存数据的则是Record Set，一个通用的数据结构，适合于任何一张表。</summary><published>2006-12-18T12:29:00Z</published><updated>2006-12-18T12:29:00Z</updated><author><name>tmfc</name><uri>http://www.cnblogs.com/tmfc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tmfc/archive/2006/12/18/596130.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tmfc/archive/2006/12/18/596130.html"/></entry><entry><id>http://www.cnblogs.com/tmfc/archive/2006/10/10/525391.html</id><title type="text">企业应用架构模式读书笔记（二）</title><summary type="text">三个主要的模式：Transaction Script，Domain Model，Table Model&#xD;&#xD;最简单的方法是使用Transaction Script,Transaction Script本质上就是从表现层接受输入，进行验证和计算，保存进数据库，调用其他外部操作并且返回更多的信息，帮助计算并组织数据给表现层的过程。基本上就是将用户可能做的事情组织成一个个的函数，所以可以将其想象成动作的脚本，或者一个个事务。&#xD;&#xD;Transaction Script的优势：&#xD;&#xD;是几乎每个开发者都了解的简单的过程模式 &#xD;配合使用简单的数据库层模式，如Row Data Gateway，Table Data Gateway时工作的很好 &#xD;非常明显的边界:以打开事务开始，关闭事务结束。&#xD;但是，在领域逻辑变得越来越复杂时，Transaction Script也会有很多劣势，会出现很多难以消除的重复代码，子方法越来越多后，缺乏清晰的结构。&#xD;&#xD;这个时候，就该以面向对象方式处理逻辑的Domain Model模式登场了。我们主</summary><published>2006-10-10T09:09:00Z</published><updated>2006-10-10T09:09:00Z</updated><author><name>tmfc</name><uri>http://www.cnblogs.com/tmfc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tmfc/archive/2006/10/10/525391.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tmfc/archive/2006/10/10/525391.html"/></entry><entry><id>http://www.cnblogs.com/tmfc/archive/2006/09/26/515587.html</id><title type="text">企业应用架构模式读书笔记（一）</title><summary type="text">分层是用来分割复杂软件系统的最常用手段之一。如：操作系统建立在设备驱动和CPU指令上；FTP建立在TCP层之上，TCP建立在IP层上，IP建立在以太网上。&#xD;&#xD;把分层结构想像成蛋糕，每一层都建立在它下一层上。意味着上层使用下层的服务，但是对更底层的服务一无所知。如，第四层使用第三层定义的服务，第三层使用第二层的服务，但是第四层并不了解第二层的服务。&#xD;&#xD;分层的优势：&#xD;&#xD;可以单独了解一层的东西，而不用管其他层 &#xD;可以替换某一层的实现 &#xD;最小化层之间的依赖 &#xD;为建立标准做好准备 &#xD;一个低层可以被很多高层使用（提高复用率）&#xD;分层的劣势：&#xD;&#xD;分层对部分东西，而不是全部东西，有一个良好的封装。有时会引起连锁的更改，如，为了在用户界面上多显示一个属性，必须更改从数据库到UI之间的所有层。 &#xD;额外的层会降低性能&#xD;</summary><published>2006-09-26T13:33:00Z</published><updated>2006-09-26T13:33:00Z</updated><author><name>tmfc</name><uri>http://www.cnblogs.com/tmfc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tmfc/archive/2006/09/26/515587.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tmfc/archive/2006/09/26/515587.html"/></entry><entry><id>http://www.cnblogs.com/tmfc/archive/2006/09/18/507264.html</id><title type="text">对[解耦的故事]的一些补充</title><summary type="text">我的前两篇blog原意是想通过一个故事说明委托的来龙去脉，但是后来的主题却变成了解耦的一些方法介绍，对于委托本身的关注反而少了，加上编故事的水平不高，有点虎头蛇尾的感觉，大家见谅，以后有机会再来好好整理以下。 在网上找几篇好文来补充一下委托的内容： 台湾msdn的大内高手专栏，蔡学镛先生的好文（繁体+台湾术语，希望大家看得懂）： 函数指针进化论（上） 函数指针进化论（下）</summary><published>2006-09-18T03:45:00Z</published><updated>2006-09-18T03:45:00Z</updated><author><name>tmfc</name><uri>http://www.cnblogs.com/tmfc/</uri></author><link rel="alternate" href="http://www.cnblogs.com/tmfc/archive/2006/09/18/507264.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/tmfc/archive/2006/09/18/507264.html"/></entry></feed>
