10 2011 档案

摘要:之前,我曾提出软件设计的七个原则,即重用、扩展、变化(后改为协作)、简约、一致、分离、间接,并在去年的亚太软件研发团队管理峰会阐释过自己的想法。经过这两年的积累,这些内容逐渐丰富起来,而我也根据自己所思所想做了一些调整。我的朋友姜大胡子和刘冰对我提出的这几个原则,表示兴趣和部分认同,但同时也提出一些自己的看法。按照大胡子的意见,一个人的记忆很难记住太多的原则,最好不要超过3个。七个原则好似古龙... 阅读全文
posted @ 2011-10-18 09:29 张逸 阅读(2724) 评论(6) 推荐(2) 编辑
摘要:在.NET 4.0(当然也包括4.0以前的版本)下,用反射判断某个方法是否运用了自定义Attribute时,可以通过调用MethodInfo的IsDefined()方法进行确认。当然,IsDefined()方法事实上定义在MethodInfo的父类MemberInfo中,但它仅仅被定义为抽象方法,真正的实现是在MethodInfo的子类DynamicMethod中。调用方式如下所示: metho... 阅读全文
posted @ 2011-10-11 09:34 张逸 阅读(4192) 评论(9) 推荐(4) 编辑
摘要:Thoughtworks的Sam Newman在Mythoughtworks的Software Development小组中给出了Evolutionary Architecture的一些资源。其中一个是Martin Fowler与Rebecca Parsons在QCon SF 2009的一次演讲,题目为Agilists and Architects: Allies not Adversarie... 阅读全文
posted @ 2011-10-10 08:05 张逸 阅读(3323) 评论(4) 推荐(1) 编辑
摘要:处理遗留系统,几乎是每个程序员都不可能绕过的一件麻烦事儿。因为时间压力,技能不足以及功能复杂等诸多原因,常常使得遗留系统的代码变得糟糕混乱,可读性与维护性差,无法保证功能的可测试性,纠缠不清的代码让类、方法之间紧紧耦合在一起。如果遗留系统能够正常工作,那么我们还可以置之不理,即使代码接近腐烂的边缘,我们还可以得过且过。倘若我们需要维护遗留系统,或者需要为它添加新的功能,又或者需要将新的系统与遗... 阅读全文
posted @ 2011-10-09 14:19 张逸 阅读(4629) 评论(8) 推荐(4) 编辑