到底什么才是后台?

更新日期: 2019-03-31阅读: 3.1k标签: 管理

我们整天说着前端,客户端,后台。到底什么才是后台?曾经和某网友聊天:

你已添加了XXX,现在可以开始聊天了。

我:你好
XXX:你也好
我:你是做什么的呀?
XXX:我在酒吧上班,做前台的。
我:哦哦,那咱俩差不多,我做后台的。


前台后台

前台(前端)后台,在英语中即:Front-End,Back-End。广义上的前端包括客户端(PC、Android、IOS等),后台即通常意义上的Server。没错,就是在互联网诞生之初即存在的C/S架构。服务的提供方成为Server,一般是一个偏中心化的服务集群。客户端Client为用户接入服务的控制重点。C/S架构有明显的主次之分,这与后来产生各类种子(BT、电驴)下载技术的P2P对等网络相对应。在P2P网络中不区分C或S,每个节点既是C也是S,这便是对等(Peer)网络。

言归正传,后台一词描述的还是Server这一概念,不过由于网络规模的增大,数据量的攀升,Server的后台架构也变得越来越复杂,分层越来越多,早已不是简单Server一词能够囊括的了。本专栏文章始于C++后台架构,却又不仅限于此,会穿插对比各语言的通信模型以及语言无关的各类概念。

这里的后台开发指的就是Linux上的C++编程。首先澄清一点,很多人(比如我以前)对后台开发的误解,通常人们说前端后台,后台就马上联想到web后台,java、php和各种web框架横飞的既视感。所以大学的时候,当我看到腾讯招聘后台工程师,技能要求是C++也满是狐疑。


白马非马

其实web后台属于后台,但后台却不只有web后台。两者应该是包含与被包含的关系。提到后台,通信是永远的主题。通常我们谈到Python的Django,PHP的Think PHP、Yii框架所涉及到的开发知识,都是聚焦于展现和逻辑。而屏蔽了底层通信的细节,这是框架之利。但也削弱了开发者对于后台达到一切尽在掌握的一些可能性。

从网络协议的角度分析,web后台聚焦的是 HTTP。web后台可以看作是一个后台架构中最靠前的东西,它解析了HTTP请求,然后层层转发给了后面整个分布式系统的许多组件,并调用他们的服务。这一层可被称之为“接入层”,C++语言进行接入层的实现,一般就是通过 CGI了,CGI这被教科书都写进历史的技术,相信很多人都不齿为用。但其实不管是 Java的Servlet,C#的 WCF,或是 Python的 WSGI,Ruby的 Rack多多少少都是受CGI影响而演化而来。行远自迩,学习了解CGI,并不是浪费时间。

除了HTTP,企业内部主机之间绝大部分是自定义协议,而这些协议多半是在TCP 或 UDP之上实现应用层协议。这个层面上来说C++后台关注的是socket编程,由于C++本身并没有官方的Socket通信的库,其实这里使用的一般也就是Linux C语言的网络编程。C和C++各自的拥趸们,争与不争,它们就在那里。


天下大同

编程语言很重要,一门语言通常意味着的是一个技术栈,比如C++的技术架构的后台和Java的后台,相信绝不仅仅是语言的不同,各种组件以及编程的模式都差别很大。但其实时代发展到如今,编程语言之间的差异性却又不那么重要了。在当代规模的大型网络的架构中,绝不仅仅是通过某门语言自身的特效就能解决性能瓶颈的,对于架构的演进,逐渐趋于大同。

与前端技术的百花齐放不同,后端技术相对落寞,甚至不乏炒冷饭的嫌疑。在Web Service逐渐式微之后,各式RPC又被炒了起来。在豪情万丈的 CORBA在新世纪由于J2EE的出现而逐渐雪藏多年之后,Facebook推出的 RPC框架 Thrift与 CORBA相比又是何其相似。当然,炒冷饭本身不是目的,不管黑猫白猫,能抓老鼠的就是好猫。旧技术在不停推陈出新后确实能焕发出新的生命力。

时光荏苒,新概念层出不穷。不管是偏向于Web层的概念 Restful api还是相对繁重的分布式概念 SOA,都在趋向于接口的解耦和服务化,通过组合不同服务即可快速搭建出新业务。回想起WS(Web Service),让人唏嘘。理论上讲 WS属于 SOA,但最终走向衰落。到底是 WS生不逢时,还是新时代服务化的概念在因为弥补了 WS的缺点才得以焕发新生?这样的问题没有答案。“是耶非耶,化为飞蝶”。唯一可以肯定的是,后台技术在润物无声中不停的发展,进步。


来自:https://www.zhihu.com/collection/139298102


链接: https://fly63.com/article/detial/2640

程序员的思考:一年管理成富翁,三年市场路路通,十年技术一场空

程序员的思考:在中国,做技术的出路非常有限。首先做技术需要跟对老板,其次做技术的要和老板有共同的价值观,再有最最重要的是需要有一个好的身体。

IIS和ASP的标题广告管理系统的详细介绍与使用

标题广告是Web上最常见的广告形式。本文介绍了一个基于IIS和ASP的标题广告管理系统,该系统支持广告客户和广告的管理,能够随机选择广告并生成显示广告的HTML代码

缺这项能力,做不了技术管理工作

大部分开发者工作三五年后,都能掌握所在岗位必须的知识、经验和技能,然而很多人接下来就陷入困境,左冲右突,无法加薪升职,一直停在第1层,三年五年过去了,八年十年过去了,可能都还停在1层的位置。

团队管理上的一点思考

团队的成长离不开成员的成长,一个稳定的学习环境对于成员的成长有很大的帮助,也有不少的成员是以这样的心态在工作的,特别是还没有太多工作经验的毕业生。满足成员成长的需求,会让团队富有激情

JavaScript进度管理

我们写程序的时候会经常遇到显示进度的需求,如加载进度、上传进度等。最常见的实现方式是通过记录 已完成数量(loadedCount) 和 总数量(totalCount),然后算一下就能得到进度了。

brew 安装详解

MacOS上的包管理工具。类似RHEL/CentOS上的yum或者Ubuntu上的apt-get一样。 前置条件:brew是ruby开发的,需要确认ruby是否已安装,缺省状况下是已经安装的。默认不安装cask 有需要的可以替换

组织和管理CSS

在项目开发的过程中,基于有限的时间内保质保量的完成开发任务无疑是一场挑战。在这场挑战中我们不但要快速处理自己的问题,还需要与别人协同合作,以避免两者之间的冲突。

如何统一前端项目的 Node 版本和包管理器?

成员机器 Node.js 版本不统一: 守旧派用 12.x、保守用 14.x、激进用 17.x。项目能否正常跑起来全凭天意,在没有 CICD 流水线加持本地 npm run build 的场景下线上风险可想而知。

React状态管理器Rematch的使用

Rematch是没有样板文件的Redux的最佳实践,没有action types、 action creators, 状态转换或thunks。Redux 是一个了不起的状态管理工具,由良好的中间件生态系统和优秀的开发工具支持。

基于vue3的后台管理UI框架

​对于前端来说,想快速构建一个后台管理系统界面,首先需要选择js框架,然后就要选择相应的UI框架。基于Vue3的优秀表现和良好的生态这里我们选择Vue.js作为js框架。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!