最初有软件模式和反模式,随后这些模式被许多提供商和执行者应用到 SOA 和 Web 服务之上。现在,曾在几年前写过SOA 反模式的 Steve Jones 又提出了反原则的话题。他认为,原则是……
[…] 关于度量事物的核心概念。
[…] 同样,因为反模式能在一团糟的局面中给你指引,所以,反原则旨在帮你避免在编程中的出错。
文中 Steve 提到了 SOA 原则包括“松耦合”和“清晰的接口”,但又指出,一方面人们常常能够提到这些方面,却不会指出(谈及)反原则,而反原则却更重要,因为它们指出了应该要避免的错误领域。不论是线上还是线下,只要快速搜索一下,就能找到一大堆原则方面的经验,如 Stefan Tilkov , Thomas Erl 以及其他人已经列出了很多。尽管也有一些关于反模式的文字,但是其中多数不是伪装的就是被忽略了的。
所以,什么才是好的 SOA 反模式呢?Steve 做了一些研究,但也许还有其他的。
- 小返回值:“这指的是人们常常使用的批处理接口,它仅返回用于指示错误的代码和描述。在这里,这句话的含义是仅返回代码和描述而不是大量的信息。”
- 直接调用:“该反原则的含义是人们拿到一个 WSDL,然后直接消费服务,中间没有任何代理或中介。这种编程是毁灭性的也是不应该的。”
- 接口生成:“该凡原则说的是你不应该通过代码生成接口,而应该设计接口并把接口展现出去。因此,从凡原则的角度来看,你应该摈弃‘右键生成 WSDL’ 的暴露 Web 服务的 IDE 方法”
自从最初的以模式为主题的书发表以来,人们写了很多描述它们给工程师和项目带来的好处。在使用(重用)模式的同时,避免反乎模式几成为多数开发人员的第二本能,似乎Steve 提出了这样一个观点:原则和反原则的重要性被忽视了,至少就SOA 而言是这样的。
查看英文原文: SOA Anti-Principles?
评论