什么是前端后端客户端?-小专栏

我曾经潜水了一年多的应届生技术交流群,发现大家并不是很清楚后端是什么,他们只听过这些话:

我试图问过他们,为什么想做后端,不想做前端,毕竟前端要学的技术会相对少一些(这里只相对于后端,无任何贬低的意思),并且前端的岗位数量也没有那么不堪。也得到了一些我不太认同的答案:

的确,很少有人告诉你你可以具体从事哪个方向。就像一个卖Java课的自媒体,他只会吹嘘Java多好,后端多好,很少甚至回避给你讲其他方向的行情是怎样的。毕竟赚钱嘛。

注意:这里只理性讨论每个方向具体从事什么工作,我们不讨论哪个方向更好,哪个方向有什么缺点。任何一个方向的从业者都是值得尊重的,更多的还是看你喜欢哪个。

前端更多的是直接为用户提供服务。像我们日常使用的电脑、手机网站,以及App里的很多促销活动页面等,都跟前端有关系。

有些前端需要给用户提供丰富的操作界面,比如某些游戏的活动界面,界面更复杂一些。有些前端可能负责搭建各种管理系统,那这种一般会有现成的UI框架去使用。

现在听起来,还是觉得前端需要有艺术细胞?

像平时的网站开发、小程序开发,基本都属于前端的开发范畴。因为网页开发的灵活性,很多App里也涉及前端的开发,比如淘宝的某些促销页面,抖音的某些复杂页面(如商城),基本都是属于前端开发。

前端一般是单体应用,什么是单体应用呢?其实可以理解为所有的前端组件都运行在同一台设备上。有的同学可能学习过组件化之类的概念,那组件化最后可以打包成一个系统,然后运行在用户的电脑、手机上。系统稳不稳定、卡不卡,那基本取决于用户的设备强不强悍。另外即使开发多线程功能,也是在用户的设备上进行的。除非开发不规范,否则一般不会压垮用户的设备。在这里提单体应用,是为了跟下面后端的技术架构做一些区分。

后端是本专栏讨论的重点。

后端一般是间接服务于用户,负责与各类数据库打交道,用户直接使用前端,前端再通过后端访问数据库,后端再将数据返回给前端,最终呈现给用户。那对于一些简单的小项目,为什么不直接让前端访问数据库呢?比较简单的解释是,前端一般运行在用户的设备上,有的前端代码甚至可以完全展示给用户(比如在一个网站上右键查看源代码),用户很容易获取到数据库的访问密码。另一方面,每个用户都通过前端直接访问数据库的话,数据库的连接数会大大增加,比如一个用户量为1万的网站,同一时刻可能有1万的连接连到数据库,这对数据库来说压力山大,最终拖垮数据库的性能。

随着后端技术栈的发展,后端从单体应用逐步演变为分布式应用。后端的单体应用,一般是指所有功能都在一个项目中,例如大学课堂里的图书管理系统、课程管理系统等。目前仍然有很多项目使用单体架构,比如一些小公司的项目,单体架构成本更低,性能也满足日常使用。后来,单体应用已经不再满足于高并发的场景,分布式技术逐渐诞生。

所谓分布式,可以简单理解为,一个完整的应用被拆分成多个模块,并运行在不同的服务器上,模块之间通过网络进行调用。好处是模块解耦,能抗的访问量更大了。坏处则是增加了系统的复杂度,同时网络的好坏也可能影响整个系统的稳定性。

从现在的技术来看,后端和前端是分开的两个独立个体。一般后端工程师只需要处理后端开发即可,不需要掌握前端技术栈。当然,一些比较老的项目,仍然让后端工程师同时承担前端的开发工作,所谓的全栈(全占)工程师。

客户端分移动客户端和PC客户端,主要负责研发各类App。常见的比如安卓客户端、iOS客户端、Windows客户端。

安卓App一般是用Java开发的(目前也开始使用其他语言),所以Java能开发的不一定是后端,包括一些Windows软件也是Java开发的。

如果你觉得你真的不适合编程,那也可以看看下面这几种选择。当然,这里只做简单介绍,如有兴趣还请自行探索。

互联网产品经理在互联网公司中处于核心位置,需要非常强的沟通能力、协调能力、市场洞察力和商业敏感度。不但要了解消费者,了解市场,还要能跟各种风格迥异的团队,如开发团队和销售团队进行默契的配合。

上面是百度百科对产品经理的解释。我个人的简介是,产品经理一般是发现用户的痛点,亦或者发现潜在的增长点,然后经过各种调研、数据分析等,产出一份需求文档。给需求赋予一个故事,并把故事讲的动听,才会让大家看好你的需求,愿意与你并肩作战。

我们这里举一个真实的例子,简单了解下产品经理的工作:

需求背景:某视频App想增加一个聊天功能,一是想在社交领域分一杯羹,另一个点是希望聊天功能能增加App对用户的黏性,让用户越用越想用,一天不用浑身难受。

预期收益:社交功能渗透+1%,用户留存+2%

需求背景和详情是明确的,就是想加一个聊天功能。这里的需求就是由产品经理提出的。

预期收益是什么呢?一般大厂做需求,不是简单开发完成就可以上线给用户使用的,而是先给小部分用户使用(灰度测试),如果能从这部分用户的使用中得到较好的数据验证,则认为这个功能是有价值的,最终才开放给所有用户使用。

这里我们用白话解释一下上面提到的预期收益:社交功能渗透+1%,因为这个按钮是一键联系作者,所以期望通过这个按钮来引导更多的用户使用聊天功能,比如100个用户看到了按钮,最起码能有一个用户点击,那就基本符合预期。用户留存+2%,一个产品很看重用户的留存,比如你注册了一个App,玩了一会觉得无聊,就卸载掉了,说明App可能留不住用户。如果用户通过社交功能找到了自己的知己,那他每天都想打开App来找作者聊天。

因本专栏更多的是面向还未工作的大学生,很多同学并不了解前端、后端、客户端分别是什么,导致对自己的职业规划并没有太多的认识。最后选择方向时基本就是靠身边的传言来决定。

THE END
1.web前后端交互过程1.前端和后端之间的基本交互过程 客户端发送请求:当用户在浏览器中访问一个网页时,浏览器会发送一个HTTP请求到服务器。这个请求包含了用户需要的信息,比如请求的页面URL、表单数据等。 服务器接收请求:服务器接收到客户端发送的请求后,会根据请求的URL和参数来确定应该由哪个后端程序处理。 https://www.jianshu.com/p/f381996b3d71
2.前后端分离架构模式讨论:要前后端分离,不要前后端分裂真正意义上的全栈开发,适合只在单一客户端上开发,一个人或者几个人的创业团队。前后端分离(情况一)...https://open.alipay.com/portal/forum/post/104001029
3.前端,后台,后端,前台他们区别是什么?小辣椒樱桃前台和后台都是在客户端或者浏览器上浏览者浏览的界面和管理者管理的界面 3.前端 这个是编程时候的概念,基本包括所有可见部分的代码编写,如果三层架构的话,可以看做是UI层. 4.后端 这个是对应前端而言的,编写的代码基本上都是提供给前端调用,而不需要处理UI的内容.例如逻辑层,或者存储过程. ...https://www.cnblogs.com/aaaazzzz/p/13023372.html
1.客户端和服务端?前端和后端解释?客户端和前端区别3、交互范围广:与前端、各类服务(第三方的API)、数据库等等多方向进行交互。 3、总结: 客户端通常指独立存在的应用程序,需要用户安装到设备上,而前端只需要和本机的浏览器交互就可展现给用户自己的内容;服务端通常指服务器上运行并处理客户端请求的部分代码,后端涵盖了整个后台系统,包含服务端代码、数据库、服务器...https://blog.csdn.net/m0_61443153/article/details/139855312
2.全面讨论后端前端客户端的区别全面讨论 后端、前端、客户端的区别 帖子背景 楼主看到今年不少友友暑期实习都或多或少,被客户端岗位打捞起来面试;也有很多友友本来是投的后端,结果拿了客户端的offer,不知道改不改转客户端。 楼主之前在字节的CapCut做过半年的客户端开发实习生,对客户端有一个基本的了解,再加上后端楼主也实习过,所以两个方向...https://www.nowcoder.com/discuss/616306212254015488
3.服务端前端客户端后端有什么区别–PingCode以上就是关于服务端,前端,客户端,后端的区别的内容了,希望对大家有帮助。https://docs.pingcode.com/docs.pingcode.com/ask/21715.html
4.一文读懂微前端架构从前后端责任分层来看,可以从前端或者后端来实现。 通过客户端框架来实现 微前端通常由客户端工具来支持实现(听上去好有道理),有许多支持客户端开发微前端的实现工具,包括:Piral,Open Components,qiankun,Luigi,Frint.js等。其中qiankun是蚂蚁金服开发的。 https://www.51cto.com/article/662822.html
5.uniapp操作数据库的三种方法总结javascript技巧前端与后端(云端)结合实现客户端操作数据库 3.使用DB Schema结构规范实现客户端对数据库的操作 第一步: 我们线在数据库中创建一个数据表。 第二步: 在uniCloud中的database中右键,后选择下载所有DB Schema及扩展校验函数。 等在下载完毕后我们会发现 我们的数据表:News_system已经在database中。 第三步: 然后...https://www.jb51.net/javascript/2852121qf.htm
6.谈谈前后端分离模式的弊端大家把这个架构图和上面前后端分离的架构图比较一下,会发现目前的前后端分离架构实际上是将原来客户端client干的活,拆分到前端应用,后端应用两部分来干了。这就是说经历了轰轰烈烈,将近20年的web开发,或者叫bs开发以后,整个开发模式又大规模回归到了基于浏览器的cs开发模式。 https://maimai.cn/article/detail?fid=1275684870&efid=CwIElLg05QO0MaTkG_RZmQ
7.@所有人春风送岗:有一种心安一一家门口就业澎湃号·政务1、负责前端研发工作,主要包括前端客户端方向,覆盖后台web应用、智能建站、数据可视化等方向; 2、参与并主导团队前端工程化体系建设,逐步提升研发效率、研发质量, 3、与产品经理、设计师、后端工程师一起,提升产品的用户体验,打造卓越的互联网产品; 4、把握前端技术发展潮流,负责牵头落地前沿技术,推动业务的发展。 https://www.thepaper.cn/newsDetail_forward_11203752
8.APIJSON.NET:后端接口和文档自动化,前端(客户端)定制返回JSON的...这是APIJSON 的 C# .NET CORE 版后端实现。APIJSON 码云最有价值开源项目后端接口和文档自动化,前端(客户端) 定制返回JSON的数据和结构!English 通用文档 视频教程 在线工具 APIJSON是一种专为API而生的 JSON网络传输协议 以及 基于这套协议实现的ORM库。为 简单的增删改查、复杂的查询、简单的事务操作...https://gitee.com/liaozb/APIJSON.NET
9.后端测试和前端测试的区别后端测试是对服务器端应用程序进行测试,例如 API 接口、数据库操作等。后端测试需要掌握服务器端编程语言(如 Java、Python、PHP 等)、数据库等相关技术,主要关注服务器端的逻辑、性能和安全性。 前端测试则是测试应用程序的客户端部分,即用户界面、页面布局、交互设计、功能实现等,需要掌握 HTML、CSS、JavaScript 等...https://www.hxsd.com/content/31353/