
从玩扑克到软件开发
世上本无银弹。我们虽深知这一点,但我们的行为却常常与之不符。你是否会觉得自己所用的语言、工具或者过程总好过别家?Jay Fields说道,“对症下药,量体裁衣”。正确的决策会因环境、人以及其他因素而异。 本文论及影响决策过程的众多因素:学习文化、技能水平、团队协作、不完备的信息、衡量标准以及上下文。

世上本无银弹。我们虽深知这一点,但我们的行为却常常与之不符。你是否会觉得自己所用的语言、工具或者过程总好过别家?Jay Fields说道,“对症下药,量体裁衣”。正确的决策会因环境、人以及其他因素而异。 本文论及影响决策过程的众多因素:学习文化、技能水平、团队协作、不完备的信息、衡量标准以及上下文。
Jeff Schneider提供了一组关于筒仓的实际问题,它们能帮助你使用“筒仓分析(Silo Analysis)”来指导治理行为。他和另外几个人提供了一些专用技巧,以避免创建筒仓服务——一种常见的SOA反模式。
面向模式软件架构(POSA)系列的第4卷和第5卷已经出版了。卷4是关于分布式计算的模式语言,而卷5则“深入审视模式是什么,不是什么,以及怎样成功地使用它们”。InfoQ采访了作者以获得更多信息。
五月份,IBM更新了他们的“软件架构师工具包(Software Architect Kit)” ——这是他们为架构师精心准备的一套内容,包括Grady Booch关于趋势的播客、架构的模式和最佳实践、网络广播、演示、基于模式开发的白皮书、SOA、模型驱动架构以及软件结构和模块化等内容。只有先注册才能下载这个工具包的所有内容。
一些人认为实体服务(Entity Services)或以业务为中心的实体是面向服务架构的基本要素。这一观点并没有得到所有人的认同。那么,实体服务是SOA模式,亦或反模式?

通常,架构要么是在Word文档中描述的一些软件系统中无形的、概念性的方面,要么就完全是由技术驱动的(“我们使用了一个XML架构”)。这两种方式都很糟糕:前者很难派上用场,而后者架构上的概念被技术宣传所掩盖。 什么才是好的表达?应该是随着架构的发展,演化出一门语言,让你得以从架构的角度来描述系统。根据我在多个真实项目中获得的经验,这种表达方式能够形象、无歧义地描述架构构建模块和具体系统,同时又不至于深入到技术决策的细节(技术决策应该有意识地放到另一个单独的步骤中)。 本篇论文的第一部份通过一个真实故事演示了这一思想。第二部分则总结了这一方法的关键点。

Kent Beck的新书《实现模式》是一本关于如何撰写Java代码的书。本书中的模式,是基于Kent对现存代码的阅读以及他自己的编程习惯而形成的。这些模式试图为如何撰写大家都能看得懂的代码提供一个清晰明确的视角,并告诉你这些代码如何为人的需要和降低成本的需求提供保障。

你如何保护服务以防御恶意入口消息和阻止出口消息泄露信息?在本文的样例中——模式取自于Arnon Rotem-Gal-Oz正在写作中的新书《SOA模式》,Arnon解释了如何利用服务防火墙(Service Firewall)拦截进出消息,并在专用软件或硬件中对消息进行审查。