谈抽象接口的重要性

.pdf 抽象是架构师最基础最重要的能力之一。一名程序员要成长为架构师,首先要理解接口的重要性。但是对一个没有经验的人来说,他心中可能无法体会“接口”这两个字的含义。

接口就是规范,接口就是协议。为了便于理解,我们可以把它和生活中的事务类比起来,这样就非常容易理解了。

假设在工作中,两个不同部门间有业务来往,如果两个部门间没有定义任何规范,全凭双方的接口人自个做主沟通。这就埋下了很大隐患,一旦其中有某个人变动(如离职),则会严重影响两个部门间的活动。原因就是,这两个部门间的活动太依赖于具体的个人了。

怎么去解决这个问题了?方法非常简单,就是定义好双方的规范或协议,让双方接口人按钮规范来沟通,这样不管人员如何的变动,新人都可以很快的去接手。

规范和协议本身是没有用的,它需要后面的人去执行。

软件开发同样如此,去了解耦合,需要定义规范和和协议。在OO中,接口就是种协议,它屏蔽了可能发生的变化。

只要协议不变,和平就在。因此定义一个具有一定前瞻性的协议是架构师的职责,著名的TCP/IP协议几十年来未有变化,是一个非常好的案例。ProtocolBuffer和Thrift等,为了应对协议变化,增加了optional和required两个性特。

有关如何设置具有前瞻性的接口,不在本文探讨范畴之内,这个需要一定的经验积累。 接口就是协议,就是规范,就是制度,它好比生活中的法制;类是角色,好比生活中的人。 有不少人说OO不好,但就我的感觉来说:觉得一切很自然,优雅,没有别扭的地方,如同生活的写照。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏熊二哥

《大型网站技术架构》学习笔记-01概述

李智慧老师的大型网站架构已经买了两年了,之前大体看过一次,不过还未内化为自己的本领,最近项目空闲,决定尽力掌握这部分的知识,以跟上大师的节奏。今天是儿童节,祝自...

3005
来自专栏云计算D1net

采用存储即服务优化混合云平台

在混合云计算中,存储数据的位置对整体性能有重大影响。用户需要了解SaaS如何解决混合云数据管理和延迟问题。 通过云爆发的能力,混合云平台提供了巨大的计算灵活性。...

4065
来自专栏IT大咖说

手无寸铁,如何强硬又体面地落地中间件

内容来源:2017 年 12 月 03 日,找钢网资深架构师刘星辰在“IAS2017互联网架构峰会”进行《手无寸铁,如何强硬又体面地落地中间件》演讲分享。IT ...

1223

云监控入门

原文作者:Angela Stringfellow

39711

如何在一天内建立物联网应用程序

物联网(IoT)的建立是为了解决现实世界中麻烦的问题,而将物联网技术整合到更广泛的信息生态系统中的过程几乎是同等麻烦的。这就是为什么物联网不是您可以在商店(或其...

4804
来自专栏EAWorld

普元DevOps5.2版本新特性发布

伴随新版本的发布,我们团队也对这次迭代做了些回顾,有值得分享的新特性与设计,也有一些需加强的能力,借此与大家分享。

3214
来自专栏企鹅号快讯

图解全宇宙最神秘团体——“程序员”的日常,是辛苦还是闷骚?

大家都知道,IT行业嘛,整天整天就是泡在电脑前,尤其是程序员们——“不是在写代码,就是在去写代码的路上”。很多程序员都以写代码为乐,当爱好和工作结合在一起的时候...

2367
来自专栏罗超频道

没错,号称中国第一移动产品的微信公众平台也有BUG

新版微信公众平台上线,处处体现了张小龙以及微信团队的考量和平衡。 更开放的接口,使得更多的企业和组织有机会利用微信来做好互动和服务,甚至基于微信...

4445
来自专栏BestSDK

想用APP创业,那你要明白API的重要性?

每一家初创企业和公司都会有提供给世界的接口。有的接口超级简单,比如Google—你能做的只有搜索;有的复杂一点,比如在Amazon上面买东西—你可以浏览、搜索、...

3219
来自专栏后端技术探索

58同城沈剑:好的架构源于不停地衍变,而非设计

对很多创业公司而言,很难在初期就预估到流量十倍、百倍以及千倍以后网站架构会是什么样的一个状况。同时,如果系统初期就设计一个千万级并发的流量架构,很难有公司可以支...

881

扫码关注云+社区

领取腾讯云代金券