前端转后端学习路线整理

  • Post author:
  • Post category:其他




一、背景

本人是一名 Web 前端开发,技术栈是 Vue 和 React,不会 Node。之前学过,但是因为一些原因(比如没有使用场景,很多概念无法理解,学完就忘等)一直也没有掌握。

因为在 CMS 部门耳濡目染时间久了,感觉不学点后端有点说不过去,而且学起来之后发现也挺有兴趣的。但是对于一名前端开发(而且在学校的时候基本没学习)来说要学习的内容实在太多了,开始的困难在于理清各种技术都是干什么的以及它们之间的关系。现在刚刚有点眉目故记录一下,权当给需要的同学一些建议。



二、流程梳理

这里只简单的把后端的工作理解为:从数据库里取出数据并返回给前端。

那么需要掌握的技术有:

  1. 一门原生后端语言(比如 Python)用来写业务逻辑,处理接口的参数;
  2. 这门语言的框架(比如 Django)跟前端框架一样理解;
  3. 数据库(比如 MySQL);
  4. ORM,这个上面说的 Django 就有,也有单独的 ORM 框架,比如 SQLAlchemy
  5. 其他……

重点说一下 ORM 是干什么的:

SQL语句是可以直接操作数据库的,比如 SELECT 语句可以获取数据。但在实际应用中很少直接使用SQL语句来操作数据库,而是使用


ORM(对象关系映射,Object Relational Mapping)


就是

把数据库表中的每条记录映射成一个对象

,可以通过 ORM 提供的一些函数来操作这个对象, ORM 底层会把这些函数转换成 SQL 语句。

我选的语言是 Python,其他的语言也都是大同小异的。



三、学习路线



1. Python 语法

不同版本之间差异可能比较大,注意项目中使用的版本。

  1. 需要注意字典类型和对象的区别,以及和 JSON 区别;
  2. Python 中

    time


    datetime


    json

    等内置模块的掌握;
  3. 列表推导,字典推导 等

    推导式

    也是重点内容。

这个是基础,必须先掌握基本用法,不然后面进行比较困难。就像无论使用 Vue 还是 React 都要先掌握 Javascript。



2. Django 框架

也要注意版本。

Tornado 也是一个 Python 框架,具体看你们项目中使用的哪个。个人感觉 Django 比较简单,可以作为入门。

特别提示:Django 的文档内容特别多,不需要全部看完。可以看完

入门教程,视图层,模型层

之后就看项目代码,遇到不会的再查就可以了。



3. ORM

我的学习过程中这个是理解难点,前面已经解释过了。



4. 数据库

前面说 Python 是需要优先于其他知识掌握的,后面的几个可以并行学习。

强烈推荐一个 B 站的教程,非常清晰易懂:

【中字】SQL进阶教程 | 史上最易懂SQL教程!10小时零基础成长SQL大师!!

B 站也有这个老师的 Python 教程,我还没看。。。



5. Redis

Redis 也是一个数据库,也推荐一个 B 站的教程:

【狂神说Java】Redis最新超详细版教程通俗易懂



四、名词解释

以上是一些最基础的知识,是转后端必须掌握的。下面对一些迷惑过我的名词做一些解释,这些是随着学习加深也要掌握的:



1. asyncio

是 Python 提供的一个用来编写

并发

代码的库,使用

async/await

语法。



2. SQLAlchemy

Python 中最有名的 ORM 框架。



3. mysqldb

Python2 中用于连接 MySQL 服务器的一个库。

注意这个库和 ORM 的区别:


  1. mysqldb

    是用来


    连接


    数据库的,因为在操作数据库之前我们要先连接上数据库;
  2. ORM 并

    不能连接

    数据库,只是让我们用更简单的方式来

    操作

    数据库。



4. pymysql

Python3.x 中用于连接 MySQL 服务器的一个库。



5. aiomysql

用于从

asyncio

框架访问 MySQL 数据库的库。



5. Supervisor


supervisor

是 python 开发的通用进程管理程序,可以将普通的命令行进程变成后台 daemon,监控进程状态,当进程异常退出时可自动重启。



6. Lua 脚本

Lua是一种轻量小巧的脚本语言,用标准

CANSI C

编写并以源代码形式开放。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制的功能。


Lua是什么



7. uWSGI


  • WSGI

    是一种通信协议

  • uwsgi

    同 WSGI 一样是一种通信协议

  • uWSGI

    是实现了

    uwsgi



    WSGI

    两种协议的 Web服务器


uWSGI详解



Nginx+uWSGI部署Python Web应用



8. 虚拟环境

在工作中经常会遇到多个项目使用不同版本的环境,需要为每个项目单独配一套环境。虚拟环境可以解决这个问题。



9. 运维

这就多了:Nginx,Docker,Kubernets,Linux。

虽然大多数公司都有自己的运维,但是我们多多少少也是要了解一点。项目部署的时候也要配合运维写一些脚本文件,这个后面有机会再说。



五、总结

可以看到内容已经很多了,这还没完。上面列出来的是我们项目中使用到的(包括但不限于),但并不是每个项目都用了这么多。


❗️ 特别建议:

计算机的基础知识真的特别重要,比如:

  1. 汇编语言(学习操作系统时要用到)
  2. 操作系统
  3. 数据结构,算法
  4. 计算机组成
  5. 计算机网络

都是你上大学学的那些课程,真的很重要❗️

以上。



版权声明:本文为sansan_7957原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。