编程语言快速入门大纲

原则

  1. 把观众当作完全的小白, 但是只需要能用而不需要任何原理性的知识
  2. 重实操, 轻理论

结构

  1. 定义变量, 数据类型, 赋值, 打印控制台
  2. 流程控制 if/else/for/switch …
  3. 方法或函数
  4. 结构体或类
  5. 开发框架 (web/db)
  6. [可选] 进阶内容 (看情况)

模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# {}语言快速入门

# 前言

## 安装

由于篇幅有限, 请参考网络上的教程

## 代码仓库

[gitee]()

# 如何运行

以打印hello world为例

# 变量定义和数据类型

变量是一个指向内存中某个地址的标识符, 一般用来存放数据.
数据类型就是表示某个变量的类型, 类型决定这个变量在内存中所占的空间大小.
赋值就是将数据(值)存放到变量所指向的地址中, 后续就可以用这个变量来获取该数据

# 数组array/列表list/字典dict|map/集合set/

# 流程控制

流程控制就是定义我们程序的执行顺序

## 顺序

顺序执行就从上到下依次执行, 这个是我们程序的正常执行流程

## 选择

选择就是根据满足不同的条件来执行不同的代码
选择的流程分为单分支和多分支

### 单分支

单分支指的是只有一个分支节点, 只有一次条件判断

### 多分支

多分支则是有多个分支节点, 多个条件判断 (if-elif-else | switch-case)

## 循环

循环表示一个重复执行的过程

# 函数

函数的本质是一个闭包, 有自己的作用域
我们可以用函数定义一段代码, 接收0或多个输入, 执行函数体内的代码, 在结束时返回0或多个输出
使用函数可以提取公共逻辑, 简化我们的代码

# 类/结构体

## 类/结构体

类是一个包含了数据和方法(函数)的抽象结构, 我们可以定义它, 要使用类, 需要将类实例化, 其实就是在内存中开辟指定大小的空间来保存它
类的大小取决于内部定义什么数据(比如int), 编译器会自动根据数据大小来决定分配多少空间
一个类可以有多个实例化对象, 也就是有多个不同变量, 但是这些变量都和这个类的结构一致

## 接口

接口(Interface)语法是一种定义行为规范的方式。它描述了某个类型应该具备哪些方法(函数),但不关心这些方法具体怎么实现。

接口是一种 抽象的契约(contract):

- 它只定义方法名、参数和返回值。
- 不包含任何具体实现(逻辑代码)。
- 一个类型只要实现了接口中定义的所有方法,就被称为“实现了该接口”。

# 框架

为了简化开发, 程序员会提取公共逻辑, 封装成函数, 或者封装成类和方法, 简化开发, 在这个不断简化的过程中就诞生了框架
不过以我的理解, 库(library)是提取公共方法和类的工具集合, 用户可以以自己的喜好添加很多不同的库来使用; 而框架(framework)
更像是定义了一套项目规范和模板,然后用户在框架的基础上遵守框架约定的标准或结构进行开发; 不过很多时候这个界限不是很清晰,
两个词经常混用

## web

我们目前写的程序都是在本地运行的, 为了让世界各地的用户也能使用, 就需要开放到网络, 而web框架, 就是封装了语言本身提供的网络库,
然后提供了开放网络服务的各种方法

{}语言常用的web框架为{}

访问localhost:8080查看

## db

我们目前都是使用变量来存储数据, 但是变量的数据是放在内存中的, 一旦程序停止, 内存中的数据就会被回收, 下一次启动程序,
操作系统分配的也可能是另一个内存空间, 所以我们需要持久化存储我们的数据, 这就需要用到数据库系统

{}语言常用的db框架为{}

# 扩展

- 多线程/微服务/反射-动态代理/文件操作/网络编程/
- 框架的原理/手写
- wasm/grpc

# 社群

你可以在这些平台联系我:

- bili: [刚子哥forever](https://space.bilibili.com/1771962643)
- 企鹅群: 940263820
- gitee: [gitee](https://gitee.com/malguy)
- 博客: [malcode-site](https://malcode-site.github.io/)
- 邮箱: malguy2022@163.com
- 知乎: [乐妙善哉居士](https://www.zhihu.com/people/nan-hai-jin-ge-mie-yi-ju-shi)
- csdn: [飞鸟malred](https://blog.csdn.net/m0_60707623)

# 写在最后

在快速发展的时代下, 程序员可以说是很好的就业选择, 但是在发展放缓的时代下, 工资和付出的比例已经让程序员慢慢成为一个性价比持续走低的职业了
我当然希望大家是包含着对于技术的热爱而学习的, 但是, 进入企业, 你会发现技术只是很小的一个环节, 而最重要的是和老板打交道/和甲方打交道的那些人
并且你会发现, 你学的新奇的好用的技术, 在公司中可能会因为稳定而放弃去更新使用, 你可能被迫在一个比较老的版本环境下开发
然后使用公司某些前人留下的项目模板, 不断地进行着CRUD的重复劳动, 经常要迫不得已而加班......
你可能发现自己的眼睛慢慢充满血丝/你开始失眠/腰和颈椎越来越不适......
对于破局之法, 我也没有什么建议, 因为我自己也只是个普通人
大家尽量以身体健康为重, 最后献上我很喜欢的一句话: stay hungry, stay foolish (求知若渴, 虚心若愚)

编程语言web项目模板搭建

必备功能

  1. 包含web和db框架, 使用测试方法先实现db的User增删改查和JWT, 然后实现web接口
  2. 包含一个CURD案例, 和登录注册案例
  3. 包含基本目录结构
  4. 介绍当前主流二开项目模板

模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
{}语言web项目模板教程

# 代码仓库

[gitee]()

# 创建项目

## 目录结构

一般web工程采用MVC结构, M就是model, V是view, C是controller

- Model(模型)
负责管理应用程序的核心数据和业务逻辑。
与数据库或其他数据源交互,并处理数据的增删改查操作。
当数据发生变化时,通知View进行更新。
- View(视图)
负责显示用户界面,通常基于Model的数据进行渲染。
用户可以通过View与应用程序进行交互。
View监听Model的变化并自动刷新显示。
- Controller(控制器)
负责接收用户的输入(例如点击按钮、提交表单等),并协调Model和View之间的交互。
根据用户的操作调用Model的方法或更新View的状态。
控制器充当Model和View之间的桥梁。

所以一般的目录结构包含
models/controllers/middleware
其中, models存放的是模型文件, controllers存放的是控制器文件, middleware存放的是中间件文件
而views则一般是单独分离出前端项目来开发

# 数据库

我们使用{}框架操作数据库

## 创建数据库表

## 用户信息表

### 增删改查

实现对用户信息的基本操作:增加、删除、修改和查询。

### 密码加密

为了保证用户信息安全,需要对用户的密码进行加密处理。

### 创建JWT令牌

JWT(JSON Web Token)是一种开放标准,用于在网络应用环境间安全地传递声明。创建JWT令牌是为了实现用户身份验证。

### 进行测试

## 帖子信息表

### 增删改查

实现对帖子信息的基本操作:增加、删除、修改和查询。

# 网络接口

## 定义路由

restful风格API:

HTTP 方法|操作类型|示例
GET|查询资源|获取用户列表 /api/users
POST|创建资源|创建新用户 /api/users
PUT|更新资源|更新指定用户 /api/users/{id}
DELETE|删除资源|删除指定用户 /api/users/{id}

## 登陆注册

实现用户的登录和注册功能,包括身份验证和账户创建。

## 帖子信息接口

提供获取、发布、更新和删除帖子信息的 API 接口。

## 鉴权和跨域中间件

鉴权中间件用于验证用户身份,确保只有授权用户才能访问特定资源。
跨域中间件用于解决跨域请求问题,允许来自不同域的请求访问服务器资源。

## 使用APIfox进行测试

APIfox是一个接口测试工具
[apifox](https://apifox.com/)
本案例的接口我已经共享了:
[接口文档](https://apifox.com/apidoc/shared/9f9511d1-b9fa-4981-a8e2-f344e66a796f)

# 目前较成熟的二开框架

[]()

# 社群

你可以在这些平台联系我:

- bili: [刚子哥forever](https://space.bilibili.com/1771962643)
- 企鹅群: 940263820
- gitee: [gitee](https://gitee.com/malguy)
- 博客: [malcode-site](https://malcode-site.github.io/)
- 邮箱: malguy2022@163.com
- 知乎: [乐妙善哉居士](https://www.zhihu.com/people/nan-hai-jin-ge-mie-yi-ju-shi)
- csdn: [飞鸟malred](https://blog.csdn.net/m0_60707623)

编程语言微服务项目模板

前端项目模板

结构

模板


本站总访问量