
148
|
第
7
章
中整理出一个列表,列出应用程序可以而且应该使用的服务。你不能等到事后再考
虑。任何团队构建的一切都应该成为服务。
有些人非常迷信实现语言。对于任何规模的企业来说,这都不是一个成熟的观点,
而且也不重要。如今更胜从前,实现语言根本不重要,尤其是需要公开的服务。人
们经常就线程模型、性能、可伸缩性和可移植性以及
Java
为何成为一门教学语言,
还有关于
Go
等问题争得面红耳赤。我觉得这些谈话都非常无聊。作为一名像生意
人一样思考的设计师,关心平台所使用编程语言的主要原因只有一个:人才。
协议也是解构方法需要考虑的一个元素。二十多年来,我们的技术人员为了应对最
新的协议花了大量的时间,这一点众所周知。当初每个人不得不使用
SOAP
。后来
他们讨厌
SOAP
,又不得不全部换成
XML
。接着他们又非常讨厌
XML
,于是又不
得不换成
JSON
。聪明的少数人吹捧
ProtoBuf
。
Cassandra
之类的流行产品使用了
Avro
,于是周围就出现了一群支持者。很快又会出现其他协议。
关键在于,与用户界面一样,你需要通过一个或多个协议公开
API
,而这些协议必
须与引擎的工作分开。在提供服务时,至少在向外界提供服务时,同时支持多个协
议是一个好主意。但你应该明白将来协议会发生改变,而且必须在正确的位置实现
协议和服务之间的语义分割。协议就像用户界面一样,只是将消息传递给用户的特
定表现形式。协议不是消息本身,也不是通过数学运算生成消息的工作引擎。我认
为协议就像在不同场所展示的故事。就像灰姑娘的故事一样,你可以通过书本、百 ...