Bill Hines 评论
我最不喜欢的反实践 级别: 初级 Bill Hines高级顾问, IBM2005 年 7 月 28 日向客户提供技术和后勤方面的建议,使他们最有效地利用 IBM 软件同时 IBM 顾问也能发挥最大作用。好的、坏的和最差的还记得上小..
我最不喜欢的反实践
级别: 初级
Bill Hines
高级顾问, IBM
2005 年 7 月 28 日
向客户提供技术和后勤方面的建议,使他们最有效地利用 IBM® 软件——同时 IBM 顾问也能发挥最大作用。
好的、坏的和最差的
还记得上小学的时候,你希望创作出一条最热门的流行语(就像“粗糙(gnarly)”这个词),梦想着它能够传播开来,成为世界有名的流行语,这样你就能够炫耀您是第一个使用它的人吗?是的,没有人愿意轻易放弃希望(我仍在努力),我现在就有一条流行语,希望能够流行开来……
正如每个人都听说过的一个术语“最佳实践” (best practice)。在围绕这个词语进行讨论的所有会议上,其使用和滥用次数达到了极点。而且,它在 IT 行业最常使用的词语中占有了一席之地——诚然,占有一席之地或许只是我个人的想法,遗憾地是,很少有人熟悉“反模式”这个术语。
模式是一个抽象的、可重复的且可重用的设计构造,例如架构或者运算法则。与之相反,术语“反模式”现在常用来表示一个不好的想法或“不好的实践”。基于这个原因,我认为反模式不是一个准确的名称,而应该称为“反实践”——与“最佳实践”相对。
作为一名 IBM Software Services for WebSphere® (ISSW) 顾问,我与美国国内的各种客户进行交流,因而能够直接观察到各种实践,有些实践会让客户获得成功,有些实践会产生问题,还有一些实践只会造成时间和金钱的浪费。这些实践有技术方面的,例如 WebSphere 产品配置问题;也有后勤方面的,例如,要让顾问做现场指导,一个公司应该做哪些准备。是的,这些东西我们早应该讲出来!在过去几年里,我曾帮助撰写过一本相当成功的书以及一些技术文章,光阴荏苒,我认为现在应该是将一些确实 有用的东西进行整理的时候了:向客户提供的一些技术和后勤方面的非正式建议确实可以让每个人都生活得很轻松。和我的 ISSW 同事们一样,我也非常信任 IBM 以及我们的产品,希望尽可能多做一些事情来帮助我们的客户获得成功。产生了这种想法之后,就有了下面的建议。它们只是我个人的一些想法,与我就职的公司、朋友、亲戚、至交或虚构的公司都没有关系。
1. 与心爱的人跳舞
我经常看到这样一种情况,设计和开发一些应用程序是为了将自己编写的“替换”代码用于 WebSphere Application Server/J2EE™ 基础设施的某些部分中。该代码可能实现了自己的线程、缓存、连接池甚至(但愿不会如此)安全基础设施。如果我必须亲临现场的原因是一种危急的情况 (crit-sit),通常是由于这种自定义代码和试图做相同事情的 WebSphere Application Server 运行时之间的复杂交互所致。
公平地说,在 J2EE 和 WebSphere Application Server 成熟之前有时可能需要编写自定义代码。但随着时间的推移,这种代码很少像客户购买的产品中的代码那样牢固可靠、经过反复测试且性能良好。事实上,在为进行身份验证或授权而编写的自定义代码中通常很容易找到漏洞或对漏洞进行攻击。因此,无论您从公司内部权威或代码奇才那里听到什么,一定要对编写这种代码有清楚的认识——不要动摇!我经常并且一贯地催促客户停止不断地投资维护这种“系统”类型的代码,其原因主要是他们将大量的财力花费在现成的东西上。
不要在产品中保留这种系统代码,将这些高额的开发费用集中在业务逻辑上。
2. 利用 KISS
音乐家们绝不会强作欢颜——我听说他们不敢越雷池一步。您知道这意味着什么:我们在此只需要讨论这个短语——保持简短简单(Keep It Short and Simple,KISS)——的一部分,即“保持简单”(Keep It Simple)。此外,公平地说,大多数案例已经证明存在某种程度的复杂性(我想到了模型-视图-控制器模式),但是只有少数企业应用程序需要我们在这一领域经常看到的许多过于复杂的架构。这是因为将某位博士或者著名的技术专家在 ACM 期刊上发表的论文作为您的“实际”设计的基础通常不合理。在 Internet 论坛或行业期刊上公开的技术与此类似。有一些技术确实不错,但也有很多技术会引发灾难。有些模式,例如,拆分 Servlet 和 EJB 层、在 Web 服务器和 WebSphere Application Server Servlet 容器之间运行负载均衡器 (Load Balancer) 以及准同步消息传递,不仅过于复杂,而且对于大多数需求来说是多余的,对于性能和配置,这些模式简直是魔鬼。
根据实际情况评估每个建议的价值——谨记您的目标和环境,确保您希望尝试的架构和技术已经过验证并且非常合适。我的许多蓝调口琴琴友痴迷于能够与已故的 Little Walter 演奏出相同的“声音”,他们从职业演奏者买来经过认可、昂贵且复杂的数码音效处理器或器械,希望能达到 Little Walter 演奏的声音效果。但他们不了解的是,Walter 演奏出来的是来自灵魂的声音,经常演奏的是老曲子,而且当您在现场欣赏职业演奏者的演奏时,他们也经常演奏老曲子!
使用您拥有的并且用得得心应手的东西。千万不要接受看似“合适”的设计,这种设计只是其他某个人脱离实际的一种想法。邀请同行参加评审,如果在您的技术人员中找不到合适的人选,可以与 IBM 签约,让 ISSW 的某个成员来替您进行评审,并向您提供反馈。
[1] [2] [3] 下一页
|