标签: 设计
设计已死?
对于许多短暂接触过极限编程的人来说,XP 似乎宣告了软件设计的消亡。不仅许多设计活动被嘲讽为“前期大设计”,而且 UML、灵活框架,甚至模式等设计技术也被淡化或完全忽视。事实上,XP 涉及大量的设计,但其方式与已 established 的软件流程不同。XP 通过允许进化成为一种可行的设计策略的实践,重振了进化设计的概念。它还带来了新的挑战和技能,因为设计人员需要学习如何进行简单设计、如何使用重构来保持设计的整洁,以及如何以进化风格使用模式。
控制反转容器和依赖注入模式
在 Java 社区中,涌现出大量轻量级容器,它们有助于将来自不同项目的组件组装成一个 cohesive 的应用程序。这些容器的基础是它们执行连接的通用模式,他们将这一概念称为非常通用的名称“控制反转”。在本文中,我将以更具体的名称“依赖注入”来深入探讨这种模式的工作原理,并将其与服务定位器替代方案进行对比。与将配置与使用分离的原则相比,它们之间的选择并不那么重要。
Ruby Rogues 节目讨论 EAA 的 P
Ruby Rogues 是一个很受欢迎的播客,由一个固定的小组讨论 Ruby 编程社区中的话题。他们有一个固定的读书俱乐部,最近选择了 EAA 的 P 作为他们的特色书籍。因此,他们邀请我作为嘉宾参加他们的节目,讨论这本书及其描述的模式,特别是这些模式与 Rails 框架之间有趣的关系。
Artima.com 访谈
我接受了 Bill Venners 对其 artima.com 网站的采访。在采访中,我谈到了重构、演进式设计、灵活性以及测试驱动开发。Bill 甚至设法让我听起来很连贯。
可修改性:或者敏捷性中是否存在设计
2007 年伦敦 QCon 的组织者邀请我做一个关于架构可修改性的会议环节。我认为与其听我一个人讲,不如听听我经常重新包装的 Thoughtworks 架构师们的一些想法:Dave Farley、Ian Cartwright、Fred George、Erik Doernenberg 以及 Daniel Terhorst-North。InfoQ 现在已经发布了该环节的视频。
GUI 架构
GUI 架构如何演变的历史概述,特别关注多年来不同群体如何看待模型-视图-控制器。从历史的角度来看,这与我的演示模式有关。
“事件驱动”是什么意思?
去年年底,我参加了 Thoughtworks 同事组织的一个研讨会,讨论“事件驱动”应用程序的本质。在过去的几年里,我们一直在构建大量使用事件的系统,它们经常受到赞扬,也经常受到批评。我们的北美办事处组织了一次峰会,来自世界各地的 Thoughtworks 高级开发人员都来分享他们的想法。
峰会最大的成果是认识到,当人们谈论“事件”时,他们实际上指的是一些截然不同的事情。因此,我们花了很多时间试图找出一些可能有用的模式。这篇笔记简要总结了我们确定的主要模式。