一个很重要的问题,接口究竟是为了已知的使用方式来设计,还是为了未知的使用方式来设计。这是一个选择,一个很多人没有意识到的选择。
显然的,很多人其实是在假设我已经知道我或者系统将按照一种规定好的方法来调用这些接口。当然我可能理解会如何调用,也可能不理解如何调用,但是我一定是理解这些接口将被某些已经确定的方法调用。
但是,我在想是否可以为未来还不确定的方法,设计一种接口。这是不是我的一种为了其他目标而采用的借口呢?当然不是。因为在我看来,只有这样才可以更多的为未来留下余地,为变化留下空间。同时我还认为,不为未来的约束束缚,可以更好的关注现在,从而保持接口的强约束力。
很多人的问题其实是如何做到这一点,而我的想法是如何能明白的理解为什么要做到这一点。
自然可扩展性,分布性,包装性,都会在这种情况下得到更好的满足。问题是代价值得不值得。
不过我想如果反过来看,如果这种接口是真的存在的,其透明性无疑将是很好的。而且更加重要的是,今天的我如果可以和昨天的你真的仅仅依靠接口交流,而不是既要通过接口交流又要理解接口附带的约束,这将是一件美好的事情。于是问题,就可以演化为,你究竟要得到多么大的好处,才可以不值得这么做。
这个问题,其实一直是我在研究REST问题的时候的大背景。
显然的,很多人其实是在假设我已经知道我或者系统将按照一种规定好的方法来调用这些接口。当然我可能理解会如何调用,也可能不理解如何调用,但是我一定是理解这些接口将被某些已经确定的方法调用。
但是,我在想是否可以为未来还不确定的方法,设计一种接口。这是不是我的一种为了其他目标而采用的借口呢?当然不是。因为在我看来,只有这样才可以更多的为未来留下余地,为变化留下空间。同时我还认为,不为未来的约束束缚,可以更好的关注现在,从而保持接口的强约束力。
很多人的问题其实是如何做到这一点,而我的想法是如何能明白的理解为什么要做到这一点。
自然可扩展性,分布性,包装性,都会在这种情况下得到更好的满足。问题是代价值得不值得。
不过我想如果反过来看,如果这种接口是真的存在的,其透明性无疑将是很好的。而且更加重要的是,今天的我如果可以和昨天的你真的仅仅依靠接口交流,而不是既要通过接口交流又要理解接口附带的约束,这将是一件美好的事情。于是问题,就可以演化为,你究竟要得到多么大的好处,才可以不值得这么做。
这个问题,其实一直是我在研究REST问题的时候的大背景。