在软件工程中,没有一个中间层解决不了的问题

大学的时候无意看到这么一句话,宛如醍醐灌顶,以前恍惚中写下的代码瞬间清晰了起来。

这句话包含两个要素,一个是软件工程,一个是中间层

什么是软件工程?在我看来需要写代码的或多或少都有软件工程的要素。

小到hello world,大到搜索引擎,都是软件工程。

而类似于登月计划、强子对撞、基因模拟这类规模非常庞大的项目,软件工程只是其中一个小块,但也可以用中间层来解决问题

于是中间层又是什么呢?我总结为连接两个事物的事物。

比如两个模块A和B,之间数据结构不互通,一个接收json,一个接收protobuf,这时候就需要一个模块C,将A的json转为protobuf传给B,将B的protobuf转为json传给A。

而模块B就可看作一个中间层

再往大了看,一个http请求,是将服务器里的数据与显示器相连接,两者之间本身是不能互通的,请求经过了用户区、内核区、网卡、网线、交换机、路由器、nginx、应用服务器、数据库驱动等等中间层才访问到了数据库,然后再一层一层的将数据返回到显示器。

再往大了看,你看上一个妹子的时候,是不是通常苦于对妹子一无所知,无从下手,于是先找个你和妹子都认识的中间层来沟通传递消息?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容