
想快快喝下Google果汁——Guice吗?
依赖注入出现已经有一段时间了,很多团队都在重构自己的应用以利用DI。但这是一件麻烦的事情。在这篇文章中,Paul Hammant说明了如何将现存应用从单件嵌套设计转为完全成熟的DI设计。

依赖注入出现已经有一段时间了,很多团队都在重构自己的应用以利用DI。但这是一件麻烦的事情。在这篇文章中,Paul Hammant说明了如何将现存应用从单件嵌套设计转为完全成熟的DI设计。
Yahoo!的extremeprogramming讨论组中正在进行关于简单化设计的讨论,而且有人给出了不少有用的推荐资料。讨论的开始源于对增量式设计参考资料的请求,很快就演变为如何成功地实施增量式设计。
虽然人们明知为了在静态语言中强行实现动态类型检查而采取的各种权宜之计会对代码质量产生负面的影响,但往往仍然认为在复杂项目中动态类型检查是不可避免的。根据Debasish Ghosh所说,静态语言中的一些特性(比如Java泛型)有利于避免运行时类型检查,并有利于充分利用静态类型。
很多人都认为好的DSL应该是类似于英语的。Dave Thomas强烈反对这种看法,他主张DSL的要点不在于尽可能接近自然语言,把接近自然语言作为设计DSL的主导原则是非常有害的。他还列举了他心目中的若干DSL设计的要点,并提供了一些例子来说明怎样才是成功的DSL。
Peter Svensson、Ganesh Prasad和Mario Valente最近联合组建了一个名为Thin Server Architecture的工作组,并为此工作组建立了网站。网站内容主要包括有关瘦服务器架构(Thin Server Architecture ,TSA)和面向服务的前端应用(Service Oriented Front End Applications,SOFEA) 的一些资源及关于这两项技术一些有见地的观点和讨论。

在我的咨询工作中,常常会碰到一些持如下观点的人:“有些东西并不适合使用异步模式”——尽管他们自己也认可异步通讯模式与生俱来的稳定性。一个常常被引用的例子就是用户验证——将用户名和密码对提交给后端系统验证。

本文选自Amazon网站销量最好的三本Ruby书之一《The Ruby Way》(Ruby之道)的中文版第11章,介绍了一些不常见或较高级的OOP技术以及一些常见的用法。介绍了一些设计模式的实现(以及一些不需要实现的模式),还讨论Ruby的反射API、Ruby的动态性导致的一些有趣的结果以及使用动态语言能够实现的各种技巧。

系统应用建设初期选择的实现模式往往随着业务需求和历史数据量的变化可能需要进行调整,此时要增加一个适应性机制,保证在尽量不影响客户程序的前提下,选择合适的实现模式。随着XML数据使用日趋广泛,须借助XPath、XQuery和XSL为层次型数据增加专门的扩展机制,使得基于XML数据源的业务逻辑也可以采用领域驱动设计中常用的模式实现。

作为一个很典型的设计模式,Singleton模式常常被用来展示设计模式的技巧,并且随着技术的演进,.NET语言和Java都已经对Singleton模式作了完善,例如C#可以通过本文提供的一个非常精简但又很完美的方式实现了进程内部线程安全的Singleton模式。