软件工程45-从软件工程的角度看微服务、云计算、人工智能这些新技术

avatar
作者
筋斗云
阅读量:0

这些年来,新技术新概念层出不穷,比如说微服务、云计算、人工智能等。你有没有去学习和了解这些新技术呢?又是怎么去理解这些新技术的呢?

也许你会从技术的角度,去学习和理解这些新技术,去看如何把服务分拆,看如何应用虚拟化、容器技术,如何用人工智能切页面。

这些新技术可能会让你很兴奋,毕竟又有很多新知识可以学习和应用的;但另一方面也可能会增加一些困惑,比如说:

  • 我该不该在项目中使用微服务?
  • 在设计微服务架构的时候,服务拆分的粒度该多细?该拆成 10 个服务还是 100 个?
  • 云计算对我的项目会带来什么影响?我应该怎么应用?
  • 人工智能会代替我写程序吗?

如果只是从技术角度思考这些问题,难免会陷入技术之中,反而不容易看清楚这些问题。在我们专栏一开始《02 | 工程思维:把每件事都当作一个项目来推进》这篇文章中,我就提到了工程思维的概念:

工程思维,本质上是一种思考问题的方式,在解决日常遇到的问题时,尝试从一个项目的角度去看待问题、尝试用工程方法去解决问题、站在一个整体而不是局部的角度去看问题。

在学习使用这些新技术的时候,你不妨从项目的整体,从软件工程的角度来理解这些技术,这能给你带来不同的视角。那么怎么从软件工程的角度去理解呢?

我想你应该对我们专栏上两篇文章有印象,我分别从团队、项目过程、工具这几个维度,分析了开源项目和优秀公司对软件工程的应用。类似的,你也可以跳出技术之外,从软件工程的角度来理解微服务、云计算、人工智能这些新技术和概念。

软件工程中技术架构和组织架构的关系

首先我们来看看微服务,你可能第一反应就是:它是一种架构技术。没错,从技术角度来看,微服务就是一种架构技术。经过对我们专栏的学习,我相信你对架构应该不会陌生,比如:前后端分离架构、微服务架构。

不知道你有没有观察过:通常系统架构和组织架构是相似的。比如说前后端分离的架构,那么在组织上一般也会分前端组和后端组;而微服务架构,则分组是和服务相关的,可能一个组就是负责一个微服务。

其实组织架构和技术架构相似这个现象不是偶然的,这个现象背后有个定律叫康威定律 (Conway’s Law)。康威(Melvin Conway)博士在 1967 年提交的一篇论文《How Do Committees Invent?》中最有名的一句话是:

Organizations which design systems are constrained to produce systems which are copies of the communication structures of these organizations. — Melv

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!