今天开完会,听了一堆术语,完全听不懂,整个人都懵了。现在整理出来,大多数都是查资料理解的,在加上了自己的一点见解。如果有错误欢迎指正。
- BS与CS
BS即browser-server ,CS即Clien – Server。其实两者没什么对立面的,C/S 架构即“客户端-服务器” 架构。这里的“客户端”可以是有 GUI (图形用户界面)的定制软件,也可以是浏览器,甚至可以是通过 SSH 访问服务器的命令行脚本。所谓的 Browser-Server 架构其实是 C/S 架构的一种特殊的实现形式,而不是其对立面。其本质区别在于:
C/S 是双向的通讯,建立连接后会一直保持,任何一方都可以随时向对方发送信息。
比如 QQ 客户端登录后,腾讯的服务器可以随时把新的消息发给客户端,客户端也可以随时向腾讯的服务器发送信息、
B/S 是「查询」式的通讯,客户端向服务器查询一些信息,在服务器回应之后,(逻辑上)会立刻断开连接。只有客户端向服务器查询时,服务器才能向客户端发送信息,服务器不能主动地向客户端发送信息。
比如通过浏览器访问网站时,只有当你访问一个网站时,网站才可以向你提供信息。「访问」是一个瞬间的行为,当网页加载完成以后,网站就无法再发送额外的信息。
但是随着websocket的出现,也有BS,实现了CS的模式,但是目前应用还不是很广泛,如果将来websocket大量的应用,笔者猜想可能就不会存在这两者的区分了。
-
DSL
DSL 为 Domain-Specific-Language,领域特定语言。 在计算机领域,DSL比比皆是,你可能用到过它但却毫不知情。从Windows里的ini配置文件, XML配置文件,到主流编程语言的正则表达式,它们都是DSL:聚焦一个特定的领域,极易读懂,功能很少,异常简洁。简单的理解就是可以自定义的一种语言,容易看懂,容易理解,可能和语法糖有相近的意义。 -
API
即 Aplication – Programing – Interface,应用编程接口。就是某个应用或者项目提供一套函数或者url地址,用来访问其中的某个功能,而我们无需访问其源码,或理解内部工作的细节。 -
Serverless
Serverless包括两个领域:一个是Baas(Backen as a Service) 和 Faas(Fuction as a service)
BaaS(Backend as a Service)后端即服务,一般是一个个的API调用后端或别人已经实现好的程序逻辑,比如身份验证服务Auth0,这些BaaS通常会用来管理数据,还有很多公有云上提供的我们常用的开源软件的商用服务,比如亚马逊的RDS可以替代我们自己部署的MySQL,还有各种其它数据库和存储服务。
Faas(Fuction as a service)函数即服务,最大的优点就是简洁,让开发者只专注于开发不用管其他事情,相对于Paas来说,优点在于轻量级,便于维护。在 FaaS 中函数的执行是无状态的,函数运行时本身是封装在一个容器内,执行完后所有的的状态都会被销毁(当然为了优化,可能会缓存一段时间),但是最终不要期望通过有状态的方式来运行函数,这是对于函数本身的限制。试想只需要定义好输入,就能来调试函数了,测试来说会非常方便。