很多同学学习后端时,容易陷入一个误区:
会写接口
=
会后端开发
实际上,真正决定一个后端工程师水平的,并不是会不会写几个 API,而是能否理解业务、设计数据结构,并把需求落地。
随着 AI 的发展,未来程序员最重要的能力也正在发生变化。
程序员真正重要的能力
学习编程,不仅仅是学习语法。
一个优秀的程序员,至少需要具备两项能力:
业务能力
逻辑能力
业务能力
业务能力,就是:
理解需求
分析需求
设计解决方案
例如:
老板说:
我要做一个外卖系统。
真正需要思考的是:
有哪些角色?
有哪些页面?
有哪些功能?
数据如何存储?
订单如何流转?
而不是马上开始写代码。
因此:
业务能力
决定了项目能不能做出来。
逻辑能力
程序本质上就是:
解决问题。
所以:
逻辑能力
决定了代码质量。
例如:
一个登录功能,看起来很简单。
实际上需要考虑:
用户名是否存在?
密码是否正确?
登录失败怎么办?
是否需要验证码?
是否需要记录登录日志?
这些都属于逻辑设计。
逻辑越清晰:
代码越容易维护。
未来的程序员
以前很多程序员:
产品经理提需求
↓
程序员写代码
未来随着 AI 工具越来越成熟:
很多重复性的编码工作都可以交给 AI 完成。
因此:
diff
未来的程序员
≈
产品经理
+
程序员
也就是说:
除了会写代码,更重要的是:
理解业务
拆解需求
设计系统
与 AI 协作完成开发
未来真正有竞争力的工程师,不只是「代码实现者」,更是「问题解决者」。
为什么需要数据库?
假设我们开发一个登录系统:
用户注册后:
用户名
密码
手机号
如果只存放在变量里:
arduino
const user = {
name: 'Tom'
}
程序关闭以后:
数据就丢失了。
因此需要一个地方:
长期保存数据。
这就是:
数据库(Database)
数据库的作用
数据库主要负责:
存储数据
查询数据
修改数据
删除数据
服务器负责处理业务逻辑:
数据库负责保存数据。
两者相互配合。
因此:
数据库
就是服务器的数据仓库。
为什么需要数据库?
数据库最大的作用就是:
辅助服务器存取数据,
提高数据的存取效率。
例如:
一个电商网站:
商品信息
订单信息
用户信息
购物车
评论
这些数据都需要保存在数据库中。
服务器需要时:
查询
↓
处理
↓
返回给前端
因此:
diff
服务器
+
数据库
=
完整的后端系统。
常见数据库
目前开发中常见的数据库主要有三类:
MySQL
MongoDB
Redis
不同数据库有不同的使用场景。
MySQL
MySQL 是目前最常见的:
关系型数据库(Relational Database)
特点:
数据以表的形式存储。
适合管理结构化数据。
例如:
用户表:
| id | name | age |
|---|---|---|
| 1 | Tom | 20 |
| 2 | Jack | 18 |
电商、管理系统、后台系统等,大量使用 MySQL。
MongoDB
MongoDB 属于:
非关系型数据库(NoSQL)
它采用:
文档(Document)
的方式存储数据。
例如:
json
{
"name": "Tom",
"age": 20,
"hobby": ["篮球", "健身"]
}
相比 MySQL:
结构更加灵活,
适合数据结构变化较大的场景。
Redis
Redis 是一种:
内存数据库
最大的特点:
速度非常快。
通常不会作为主要数据库,而是作为:
缓存(Cache)
使用。
例如:
热门商品信息:
第一次:
数据库查询
之后:
直接从 Redis 获取
这样可以:
减少数据库压力,
提高接口响应速度。
因此:
ini
Redis
=
缓存数据库。
数据库的基本结构
学习数据库时,经常会听到三个概念:
css
数据库(Database)
↓
数据表(Table)
↓
字段(Field)
它们之间的关系:
数据库
↓
表
↓
字段
例如:
一个博客系统:
数据库:
blog
里面有:
css
user
article
comment
三张表。
其中:
sql
user
表可能包含:
bash
id
username
password
age
这些字段。
因此可以记住:
数据库
像一个文件柜。
表
像一个文件夹。
字段
就是每条数据的属性。
表关联
真实项目中:
一张表往往无法保存所有数据。
例如:
用户:
sql
user
订单:
css
order
订单中需要知道:
属于哪个用户。
因此:
sql
order
通过 user_id
关联 user 表。
这种关系就叫:
表关联。
简单理解:
多张表之间,
通过某些字段建立联系。
合理设计表关联,可以减少数据冗余,提高数据一致性。
Navicat
直接操作数据库并不方便。
因此开发中经常会使用:
Navicat
它是一个:
数据库可视化工具。
可以通过图形界面:
sql
创建数据库
创建数据表
新增数据
修改数据
执行 SQL
不需要每次都输入命令。
对于初学者来说,使用 Navicat 可以更直观地学习数据库。
面试高频题
程序员最重要的能力有哪些?
业务能力
逻辑能力
为什么说未来程序员更像产品经理?
AI 可以帮助完成大量编码工作。
程序员需要更多地理解业务、设计系统和解决问题,因此未来更像「产品经理 + 程序员」。
数据库有什么作用?
存储数据
管理数据
辅助服务器提高数据存取效率。
常见数据库有哪些?
MySQL
MongoDB
Redis
Redis 为什么快?
Redis 基于内存存储数据,因此读写速度远高于磁盘数据库,通常用于缓存热点数据。
数据库的基本结构是什么?
数据库
↓
表
↓
字段
什么是表关联?
多张数据表之间通过某些字段建立联系,实现数据之间的关联。
Navicat 是什么?
数据库可视化管理工具,可以方便地管理 MySQL、MongoDB 等数据库。
一张图记忆
diff
优秀程序员
│
├── 业务能力
└── 逻辑能力
↓
未来程序员
≈
产品经理
+
程序员
────────────────
服务器
↓
数据库
↓
提高数据存取效率
────────────────
常见数据库
├── MySQL(关系型)
├── MongoDB(文档型)
└── Redis(缓存)
────────────────
数据库
↓
表
↓
字段
↓
表关联
────────────────
Navicat
↓
数据库可视化管理工具
核心口诀
diff
程序员核心能力:
业务能力
逻辑能力
----------------
未来程序员:
产品经理
+
程序员
----------------
数据库:
辅助服务器存取数据
提高效率
----------------
MySQL:
关系型数据库
----------------
MongoDB:
文档型数据库
----------------
Redis:
缓存数据库
基于内存
速度快
----------------
数据库结构:
库
↓
表
↓
字段
↓
表关联
----------------
Navicat:
数据库可视化工具