随笔分类 - 软件设计
摘要:最近有些空闲,今天看了下F#语言,打算学习一下。以前接触过Haskell,ML语言,也考虑过ErLang,一直没有太多时间。因为目前工作在.net平台,所以打算多尝试下F#。目前已经有两本Apress的书出版,入门比较容易。
阅读全文
摘要:他是XP极限编程的主要贡献者。第一次看他的视频。锻炼英语的听力也不错,呵呵。视频
阅读全文
摘要:这样才充分地运用了封装。我发现习惯的力量非常大,自己的代码里还是在违背这个。观念是早就认同了,但是行为的养成还有个过程。
阅读全文
摘要:目前能想到的是:1 单元测试2 DBC-Design by Contract单元测试已经广泛采用了。DBC似乎应用还不行,今天搜索了下,微软提供了一个spec#,看上去还不错,我安装后VS崩溃了,网上资料也很少,看来还不成熟。不知道是否有替代方案。DBC能够在编译阶段检查出代码调用参数的错误,可以高效率地避免很多错误。目前只能是自己产生ArgumentException的方式来检查了。我个人觉得每...
阅读全文
摘要:了解TDD有几年了,今天第一次在正式的项目里尝试TDD, 用了NUnit,TestDriven.Net, 还是感觉很方便的,单键就可以启动测试。TDD的目的是通过测试设计出好的结构和API,正确性和质量应该是第二位的,毕竟还有后续的系统测试。OO设计应该遵循“Tell, don't ask”原则,我发现自己还是受过程式编程的习惯影响,常常违背这个原则。今天按照这个原则做了些重构。
阅读全文
摘要:今天看到这个《依赖注入是否值得?》 其中辩论了依赖注入DI的优缺点。DI增加了灵活性,代价是复杂性也增大了。对于中小型项目不推荐使用。DI能支持测试,不过这个可以用TypeMock这样的框架来帮助单元测试。对于spring这样的框架,估计只有需要它的AOP功能才需要采用。
阅读全文
摘要:一直不喜欢["FieldName"]这样的写法,写错了也不知道。今天看Fowler的书PEAA才看到强类型的dataset,孤陋寡闻啊,呵呵。 打算下周尝试一下。
阅读全文
摘要:06年底开始有了中文版,内容很好, 去看看 今天把07年的杂志都浏览了一下。
阅读全文
摘要:使用数据绑定后,界面层与数据库紧密耦合,虽然这样有缺点,但为了赶工期还是采用了数据绑定。感觉对于中小型项目还是比较适合的。
阅读全文
摘要:Ruby on rails里面用到了这个AR模式,AR的优点是不需映射文件,缺点是要继承一个Base clasee. ActiveWriter 是一个看上去不错的开发工具。
阅读全文
摘要:原来的DAO是因为为了适应不同的数据库,现在有了NHibernate支持不同的数据库,所以DAO也就不需要了。
阅读全文
摘要:wikipedia: Representational State Transfer (REST) is a style of software architecture for distributed hypermedia systems such as the World Wide Web.翻译上面的话就是:REST是关于分布式超媒体系统比如WEB的架构风格,类似的有客户服务器架构风格。是关于...
阅读全文
摘要:最近看《程序员修炼之道》看到书中用了园艺这个比喻,感觉还不错。确实,比如重构就有些像剪枝。当然最流行的比喻可能要算是建筑了,不过比起来我更喜欢园艺说。什么时候去苏州看看园林,也许可以大幅提高软件水平,呵呵。
阅读全文
摘要:2005年7月刊上一篇文章《UML,让你越老越值钱》,看过之后,总觉得有些忽悠的感觉。我们这个国家是一个忽悠大国,以前是政治,现在是经济。本山大叔寓教于乐,让我们国人知道了什么是忽悠。在我的理解忽悠就是:隐晦的欺骗或者误导。这篇文章不能说是欺骗,但有误导的嫌疑。在我看来真正有价值的是软件技术知识和应用领域知识,前者包括数据结构和算法这些基础的东西,UML只是表达软件技术思想的语言和工具。知识和语言...
阅读全文
摘要:Domain Driven Design一书还没有完整地看完,只能就一些部分做些介绍,只能等以后迭代重构,直到得到这本书的Model. 软件是知识的载体,模型是领域知识的结晶 挤压知识 一般开发复杂的软件都需要领域专家和软件开发人员密切合作,开发人员快速地学习领域知识(但一般不可能很快成为专家),领域专家也可能学习一些软件知识(一般能理解类图,但不要希望他们明白UML和UseCase),双方...
阅读全文
摘要:最近在看《Domain-Driven Design: Tackling Complexity in the Heart of Software》这本书,很不错。 我印象中RUP,XP都没有强调Domain, 这本书是一个重要的补充,特别是对复杂的项目。 自VB以来的RAD工具很容易导致Smart UI反模式,而忽略了Domain Model.
阅读全文
摘要:软件的设计要考虑很多因素,可维护性是很重要的,一般软件都有一个生命周期。软件的特点就是应变性比较差,很多设计模式就是为系统带来了更好的可维护性。 OO设计中有一个很有名的open/close原则,这个名字取的比较怪和费解,实际上它的意思是扩展软件功能的时候不修改和影响已有的功能。软件忌讳的是像全局变量那样牵一发而动全身的东西。 最近,松耦合空间的温先生提出了良性依赖原则(http://lcsp...
阅读全文
摘要:这位先生虽然名气不如敏捷开发的几位专家名气大,但我感觉他的建议非常实用和具体。 http://www.javaworld.com/columns/jw-toolbox-index.shtml www.holub.com
阅读全文
摘要:今天从我的rss中偶然看到这篇文章:Why getter and setter methods are evil ,感觉很有启发,尽管封装这个词我自以为很简单,但我发现还是在违背这个东西。看到很多java,c#代码里也大量使用get/set(受javabean的影响), Holub先生提出绝大部分属性应该是私有的,连get也不提供,我觉得这个是值得重视的建议。 Holub的这本书应该不错:《Le...
阅读全文
摘要:windows的环境变量设置窗口为什么那么小,糟糕的设计!
阅读全文