将此视为现代系统设计范式的概述:
假设我已经编写了一个程序来返回两个给定数字的和。让我们称之为神奇的加法器。我的目标是使这个神奇的加法器可供其他人使用。截至2018年,将这一令人惊叹的加法器作为公共服务提供给世界的主流和现代方式是什么?我更感兴趣的是后端架构,而不是用户界面。根据我对系统设计的了解,我可以想到:
1) 使其成为一个REST服务,但是这个用例是否很好地适应REST范式?如何调用终结点?如果我所做的只是在没有状态信息的情况下添加到数字中,我需要支持哪些操作(更新、删除等)?
http://www.theAmazingAdder.com/add
,有效负载为{'number1':2,“number2”:3},我的服务将返回{'sum':3}
3) 通过Profobuf或Thrift使其成为二进制RPC格式。是不是太过分了?客户机和服务器都必须有什么“代码定义”?
4) 传统的Python pickling还是通过网络的java序列化/rmi?这样做合适吗?
我还错过了其他流行的现代范式吗?