对于很多嵌入式工程师来说,职业发展过程中总会遇到这样一个问题:
前端、后端、全栈开发到底是什么?和嵌入式开发又有什么区别?
尤其是在智能硬件、物联网、工业互联网快速发展的今天,一个嵌入式项目往往不再只是单片机程序,而是演变成:
设备端(MCU) ↓ 网关设备 ↓ 云服务器 ↓ Web管理平台 ↓ 手机App这意味着越来越多的嵌入式工程师开始接触Web开发、云平台和Node.js。
但很多人学了半天,仍然分不清:
- 前端究竟在做什么?
- 后端到底负责什么?
- Node.js又是什么角色?
- 嵌入式和互联网开发有哪些本质区别?
软件系统其实就是一家餐厅
理解前后端最简单的方法,就是把整个软件系统想象成一家餐厅。
前端:顾客看到的前厅
顾客进入餐厅后接触到的一切:
- 装修风格
- 菜单设计
- 服务员引导
- 点餐流程
这些都是前厅负责的工作。
对应到软件系统:
前端负责:
- 页面展示
- 用户交互
- 动画效果
- 响应速度
- 用户体验
例如:
你打开淘宝App时看到的:
- 商品图片
- 搜索框
- 购物车
- 订单页面
全部属于前端开发范畴。
用户每天都在使用前端。
但用户并不关心这些数据是从哪里来的。
后端:用户看不见的后厨
顾客点完菜以后:
后厨开始工作。
厨师负责做菜。
仓库负责存储食材。
采购负责联系供应商。
收银负责记账。
虽然顾客看不到,但整个餐厅能否正常运转,全靠后厨。
对应到软件系统:
后端负责:
- 数据处理
- 业务逻辑
- 数据库存储
- 权限控制
- 系统安全
- 高并发处理
例如用户点击:
登录后端需要完成:
验证账号 查询数据库 校验密码 生成Token 返回结果用户只看到:
登录成功但背后可能已经完成数十次数据交互。
前端和后端最大的区别是什么?
很多新人认为:
前端负责界面,后端负责数据。
这个理解没错,但还不够准确。
真正的区别其实是:
运行环境不同。
前端运行在用户设备上
前端代码运行位置:
- 浏览器
- 手机App
- 平板电脑
例如:
用户访问网页: