Hello World
Spiga

分类:架构设计

2010年5月《程序员》杂志“架构师接龙”栏目中的问答

2010-05-21 09:48 by 老赵, 4306 visits
摘要:上个月《程序员》杂志向我约稿,希望我可以参加5月份的“架构师接龙”栏目,我略为犹豫了一下便答应了。“架构师接龙”是一个问答形式的栏目,每期由一个人提问,并由另一个人回答。回答的一方便是下期的提问者。这次提问的架构师是新浪微博的技术经理杨卫华。他提出的问题包括语言选择与架构设计、NoSQL存储方案的取舍、微博类系统的架构等多个方面。杨卫华是国内技术社区一等一的高手,这使得我在回答问题时更有小心翼翼地班门弄斧之感。如果您对某些问题感兴趣,也不妨来一起讨论一下。 阅读全文

一种以ID特征为依据的数据分片(Sharding)策略

2010-03-09 21:51 by 老赵, 19073 visits
摘要:假如您有一个应用程序,随着业务越来越有起色,系统所牵涉到的数据量也就越来越大,此时您要涉及到对系统进行伸缩(Scale)的问题了。系统的扩展方式往往分为“向上伸缩”和“向外伸缩”两种,而从“硬件成本”或是“系统极限”的角度来说,“向外伸缩”一般都会优于“向上伸缩”,因此大部分上规模的系统都会在一定程度上考虑“向外”的方式。由于许多系统的瓶颈都处在数据存储上,因此一种叫做“数据分片(Database Sharding)”的数据架构方式应运而生,本文便会讨论这种数据架构方式的一种比较典型的实现方式。 阅读全文

浅谈Route组件的设计思考与模式

2009-10-14 09:46 by 老赵, 16196 visits
摘要:Route组件虽然可以说是ASP.NET的“门户”,不过至今为止似乎都被微软当作是二等公民。可能是由于自带的Route类功能已经太强,微软官方或社区内都不太关注RouteBase的扩展。不过有一点是正确的,那就是在大部分情况下的确没有必要去扩展RouteBase。事实上,我构建过不少RouteBase类,不过除了DomainRoute之外,其余的都被我放弃了,例如在大半年前写的《请别埋没了URL Routing》中所提供的FormatRoute,在MvcPatch中也已经有了更好的替代品(过几天便会谈到这一点)。 阅读全文

我对NHibernate的感受(4):令人欣喜的Interceptor机制

2009-10-13 13:45 by 老赵, 19904 visits
摘要:之前谈了NHibernate的几个方面,似乎抱怨的居多,不过这次我想谈一下我对Interceptor的感受,则基本上都是好话了。这并不一定是说Interceptor设计的又多么好(事实上它使用起来还是挺麻烦的),但是这的确也是我认为NHibernate超越LINQ to SQL,尤其是Entity Framework的又一个重要方面——因为Entity Framework本身也已经不差了。更重要的是,Interceptor机制让我得以实现我“理想中的”数据访问功能。当然现在只是浅尝辄止一番,我打算以后再慢慢地,详细地谈谈我所满意的“数据访问层”设计。 阅读全文

检查几个程序集中的internal成员

2009-09-13 23:17 by 老赵, 11280 visits
摘要:两个星期前我写了一篇文章谈到一个现象(或是感觉):我发现“类中的internal成员可能是一种坏味道”,原因在于违反了“单一职责”原则。然后谈了一般情况下遇到这种情况时一种可用的重构方式之一。结果自然是有人同意有人反对。不过刚才我忽然想到,不如检查一下微软的框架中internal成员的情况吧。微软最近几个框架都公开的源代码,社区反响不错,应该较为值得参考。 阅读全文

与protected成员有关的单元测试方式

2009-08-28 17:33 by 老赵, 4858 visits
摘要:protected是一个有趣而有用的修饰符,它把方法的访问成员严格限制在自身或自己的子类身上。换句话说,在使用过程中,protected成员对外部是开放的(因为其他类可以通过继承来使用该成员),又是封闭的(不是自身或子类的一切成员都无法访问)。而对于单元测试来说,protected成员又是尴尬的,因为它的“开放”意味着我们必须对它进行单元测试,而“封闭”又阻碍了我们在单元测试中涉及protected成员。 阅读全文

所有的成员都应该是virtual的吗?

2009-08-28 10:56 by 老赵, 6419 visits
摘要:这是一个由来已久的讨论,由于Java默认所有的方法都是可以被override的(除非手动写成final),因此从C#语言设计起初就有此番争论,甚至让Anders都出来解释了一下。最近又有人在讨论这方面话题了,虽然我的看法并没有超出这些人所涉及的范畴,但是我还是打算谈一下我的理解。退几步说,就当补充一些“实例”吧。 阅读全文

再谈public类型中internal成员的坏味道

2009-08-27 10:49 by 老赵, 4744 visits
摘要:上一篇文章里我讨论了一个类中internal成员可能会造成的坏味道,并且认为如果您的类型中出现了这个情况,可能就值得检查一下设计上是不是有问题了。文章中我提出了三种可能出现internal的情况,其中两种争议不大,不过对于“public类中是否应该出现internal成员”这一点似乎引起了一些争议。从评论中发现,讨论的一部分焦点并不是我的本意,这可能是我前文描述地较为简单而造成的,因此我现在对于这个方面再进行略为详细的探讨。 阅读全文

类中的internal成员可能是一种坏味道

2009-08-26 16:54 by 老赵, 6840 visits
摘要:最近除了搞ASP.NET MVC之外,也在思考一些编程实践方面的问题。昨天在回家路上,忽然对一个问题产生了较为清晰的认识。或者说,原先只是有一丝细微的感觉,而现在将它和一些其他的方面进行了联系,也显得颇为“完备”。这就是问题便是:如何对待类中internal成员。我现在认为“类中的internal成员可能是一个坏味道”,换句话说,如果您的类中出现了internal的成员,就可能是设计上的问题了。 阅读全文

Scaling a Rails Application from the Bottom Up

2007-06-23 06:31 by 老赵, 2454 visits
摘要:http://media.joyent.com/JHoffmanRailsConf-May2007.pdf 这是今年Rails大会上的一个报告。虽然讲的是RoR应用程序,但实际该报告里包括了许多其他方面要素的阐述,例如操作系统,硬件配置等等。对于要构造大型网络应用的人来说是一个不可不读的文档。 阅读全文
1
使用Live Messenger联系我