作者:尖塔顶的Cat | 来源:互联网 | 2023-08-20 12:59
文章目录 前后端详解 什么是前端?什么是后端? 前端和后端的联系 前后端 Vs 前后台 如何区分? 前后端开发详解 前端 Vs 后端 开发内容 前端 Vs 后端 技术栈 前端 Vs 后端 岗位区别
前后端详解 什么是前端?什么是后端? 前端
狭义上指web前端,在电脑上或者手机上浏览到一个个页面,用到html、css、js这三类标记语言。 广义上指大前端,包括web前端,APP,各类小程序。APP又包括移动端APP和PC端软件。 前端也指人或工种,指的是制作网页,编写前端代码的开发人员。 后端
实现前端的业务逻辑和数据库交互。
用java、python等高级编程语言编写的用于实现业务逻辑的代码。
后端也指人或工种,指的是负责实现业务逻辑和数据库设计与交互的开发人员。 具体来说,前端根据其实现的形式,常见的有:
移动端APP
根据手机系统的不同,有细分为苹果IOS APP 和 谷歌Android APP 。除此之外,还有一些非常小众的手机系统APP。
PC端软件
例如我们常用的Word、Excel、PowerPoint;电脑版的QQ、微信、QQ音乐;上网页用的浏览器等,都是PC端的软件。PC端也因系统的差异,前端也会进一步的细分。
网页web
网页基于HTML、CSS和Javascript实现。Web网页具有编程语言统一、与平台无关的特点,我们可以通过电脑或手机上的浏览器,甚至内嵌了网页浏览器的微信、QQ、支付宝等,实现网页的访问。
小程序
例如,微信小程序“流海云印”和“风雨同行”;支付宝小程序“蚂蚁森林”。
是一种新生的事物,某些软件当用户规模足够巨大时,就可以设定一套规范,然后让前端程序员们直接为这些软件,而不是不同的系统,开发“程序中的程序”。
这样的好处在于,用户不用需要手机上装各种各样的APP,一个软件里就能解决大部分事情 。
相对于用户看得见的前端,那用户“看不见”的部分,就是由后端负责了,后端程序猿要负责业务逻辑的实现、订单、用户资料等数据的增删查改。
一款产品的后端,一般只会用一种编程语言编写。一些功能特别丰富的产品可能会用一种编程语言为核心,另外用1~2种语言实现一些这类语言擅长的模块,例如用Java做核心语言,但配套的数据平台用Python写之类的。
由于在同一款产品中,后端编程语言不像前端一样根据系统/设备不同各种开花。所以,后端程序猿就可以一个人负责多个业务模块的后端编写,甚至轮流负责不同模块的编写。
后端需要去实现各种业务逻辑,订单流传、登录、退出及权限管理,实现数据的存储导出,进行不同系统间的对接等等。
前端和后端的联系 前端展示的数据都是从后端拿过来的。
前端的代码会下载到浏览器,浏览器解释执行后就是一个网页。后端的代码跑在公司的服务器,两者互相协同。
前后端 Vs 前后台 如何区分? 前台 ,指的是用户直接能看到的页面,所有人都可以访问。 后台 ,指的是有权限的运营人员或特殊用户(比如淘宝卖家)用权限登录后才能看到的页面,除了能看到普通用户看不到的报表外,在后台还能修改前台显示给普通用户看的内容。 前台不等于前端 。前台的界面是前端编写的;前台的业务逻辑是后端编写的代码实现的。
后台不等于后端 。后台的界面同样是前端编写的;后端的业务逻辑同样是后端编写的代码实现的。
前台和后台指的是页面,前端和后端指的是代码和写代码的人 。
前后端开发详解 前端 Vs 后端 开发内容 运行环境不同
Web前端代码主要在客户端(PC、手机、pad)运行;
Web后端代码主要在服务端运行,服务器可以在提供服务厂家的数据中心,也可以在云端。
与用户紧密关系不同
前端重用户体验,主要是考虑怎样能让用户觉得用起来更舒服,考虑界面布局、交互效果、大数据量页面加载速度等等,主要是偏向用户看得见的部分,客户端(pc、手机、pad)上浏览web页面,处理各个浏览器平台的兼容和对界面的渲染差异,对UI库的依赖较强;
后端更多是考虑业务逻辑、数据库表结构设计、数据的事务操作、跨平台API设计、负载均衡、应用和服务部署等等,更多的是考虑用户看不到的部分,保证业务逻辑处理数据的严谨,保证用户访问数据吞吐的性能。
需求变更带来的影响不同
前端主要怕系统原型的频繁变更,布局样式、交互效果的需求变更;
后端主要怕业务逻辑变更,或者当使用规模增大之后对稳定性带来的影响。
以开发一个网站为例,前端开发人员团队设计网站的外观,并通过测试不断修改;后端开发人员团队开发软件,并构建支持前端的数据库架构。
具体来说,假如我要开发一个类似b站的网站,那么要做的工作如下:
前端开发人员设计网站主页和各个页面的外观以及内容布局,对应的岗位是UI(User Interface)设计师。UI设计师主要的工作并非是敲代码,而是设计我们用户看到的网页都长啥样子,里面都有哪些内容
前端开发人员通过使用HTML、CSS和JS等语言和框架把UI设计师设计出来的页面实现出来。
后端开发人员要设计数据库,并实现与数据库有关的增删查改的业务逻辑。比如以b站的注册页面为例: UI设计师设计b站的页面样子如上图所示,其他的前端开发人员编写代码,代码经过浏览器的渲染 后,就真正成了我们用户看到的注册网页。
当新用户注册时,输入的昵称、密码和电话号码信息就会从前端传递给后端,后端再使用SQL语言,将数据插入到数据库中,存储下来。这样用户就实现了注册。
前端 Vs 后端 技术栈 前端 后端 编程语言 HTML,CSS,Javascript PHP,Python,SQL,Java,Ruby,.NET,Perl 框架 Angular.JS,React.JS,Backbone.JS,Vue.JS,Sass,Ember.JS,NPM Laravel,CakePHP,Express,CodeIgniter,Rubyon Rails,Pylon,ASP.NET 数据库 Local Storage,Core Data,SQLite,COOKIEs,Sessions MySQL,Casandra,Postrge SQL,MongeDB,Oracle,Sybase,SQL Server 服务器 Ubuntu,Apache,Nginx,Linux,Windows 其他 AJAX,AMP,Atom,Babel,BEM,Blaze,Bourbon,Broccoli,Dojc,Flux,GraphQL,Gulp,Polymer,Socket.IO,Sublime Text
前端 Vs 后端 岗位区别 对于初学者来说
前端:入门简单,先易后难,能看到自己做出来的展示页面,有成就感
后端:入门难,深入更难,枯燥乏味,没有太大成就感,看一堆业务逻辑代码
对于程序员来说
在实际的开发过程中,这个阶段对前后端的要求还是蛮低的,尤其是后端,新员工经过培训之后都可以参与到后端开发中,这些都是比较浅的技术层面,没有太高的技术门槛,唯一需要做的是先编码成为熟练工种。
前端开发人员精通HTML、CSS和JS,能熟练使用JQuery,并能熟练应用于页面布局、页面样式和屏幕分辨率自适应以及交互效果的开发等工作。
后端开发人员熟练使用一门编程语言(比如:Java、C#、Python、C++等)和懂一些设计模式,会编写SQL语言并懂数据库设计。
对于工程师来说
对于有了一定经验的前端软件工程师来说,这个阶段需要懂Node.js、Vue.js、React.js等前端框架,涉及到前端开发架构和开发效率(比如:组件、模版和验证/解析方法封装等等)一系列问题。
对于有了一定经验的后端软件工程师来说,这个阶段需要懂Spring/MVC、iBatis等框架,涉及到数据结构、设计模式、后端开发架构和开发效率(比如:业务功能和方法封装等等)一些系列问题。
对于技术经理或者架构师来说
这个阶段编程已经不是主要工作了,但必须具备上面的技能,还需要具备架构能力,跟开发者已经不在一个水平上了,主要区别在于技术领导力,本文只探讨前后端开发,就不再往下延伸了。