后端
教程
C# 快速入门指南
先了解 C# 语言
C#(读作 “C Sharp”)是由微软开发的一种现代、类型安全、面向对象的编程语言,最初发布于 2000 年,运行在 .NET 平台上。
它融合了 C++ 的强大性能与 Java 的简洁语法,并不断进化,支持:
- 面向对象编程(OOP)
- 异步编程(async/await)
- 函数式特性(LINQ、Lambda)
- 跨平台开发(.NET 5+ 支持 Windows、Linux、macOS)
- Web(ASP.NET Core)、桌面(WPF、WinForms)、移动(MAUI)、游戏(Unity)等多领域开发
C# 语法清晰、工具强大(Visual Studio / VS Code)、生态丰富,是企业级开发和现代应用的首选语言之一。
无论你是想开发 Web API、后台服务,还是桌面程序,C# 都是一个高效且可靠的 choice。
一个完整的 C# 控制台应用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
// 主程序入口(.NET 6+ 单文件模式)
await Main();
async Task Main()
{
Console.WriteLine("=== 欢迎使用 C# 快速入门示例 ===\n");
// 1. 基础变量与字符串插值
string name = "Alice";
int age = 25;
bool isDeveloper = true;
Console.WriteLine($"姓名: {name}, 年龄: {age}, 开发者: {isDeveloper}");
// 2. 条件判断
if (age >= 18)
Console.WriteLine("✅ 成年人");
else
Console.WriteLine("⚠️ 未成年人");
// 3. 循环遍历
List<string> hobbies = new() { "编程", "阅读", "跑步" };
Console.WriteLine("\n兴趣爱好:");
for (int i = 0; i < hobbies.Count; i++)
{
Console.WriteLine($" {i + 1}. {hobbies[i]}");
}
// 4. 使用 LINQ 查询(函数式风格)
var longHobbies = hobbies.Where(h => h.Length > 2).ToList();
Console.WriteLine("\n长度大于2的兴趣:");
longHobbies.ForEach(h => Console.WriteLine($" • {h}"));
// 5. 定义并使用类(面向对象)
var person = new Person("Bob", 30);
person.Greet();
// 6. 异步获取网络数据(模拟 API 调用)
Console.WriteLine("\n正在获取数据...");
string data = await FetchDataAsync();
Console.WriteLine($"✅ 数据长度: {data.Length} 字符");
// 7. 自定义工具类:简易配置管理
var config = new ConfigHelper();
config.Set("AppVersion", "1.0.0");
config.Set("MaxRetries", "3");
string version = config.Get("AppVersion", "unknown");
int retries = config.Get("MaxRetries", 1);
Console.WriteLine($"\n配置信息:");
Console.WriteLine($" 版本: {version}");
Console.WriteLine($" 最大重试次数: {retries}");
Console.WriteLine("\n=== 程序执行完成 ===");
}
// 自定义类:表示一个人
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
public void Greet() => Console.WriteLine($"👋 大家好,我是 {Name},今年 {Age} 岁。");
}
// 自定义工具类:简易配置管理器
public class ConfigHelper
{
private readonly Dictionary<string, string> _values = new();
public void Set(string key, string value) => _values[key] = value;
public string Get(string key, string defaultValue = "")
=> _values.GetValueOrDefault(key, defaultValue);
public T Get<T>(string key, T defaultValue)
{
var value = _values.GetValueOrDefault(key, null);
return value == null ? defaultValue : (T)Convert.ChangeType(value, typeof(T));
}
}
// 异步方法:从 HTTP 接口获取数据
public static async Task<string> FetchDataAsync()
{
using var client = new HttpClient();
client.Timeout = TimeSpan.FromSeconds(10);
return await client.GetStringAsync("https://httpbin.org/json");
}
运维
DevOps
教程
Docker 快速入门指南
先了解 Docker
Docker 是一个开源的容器化平台,它允许你将应用程序及其依赖(如库、配置、环境变量)打包成一个轻量级、可移植的“容器”,并在任何支持 Docker 的环境中运行。
传统部署中,我们常遇到:“在我机器上能跑!”的问题。
而 Docker 通过隔离环境,彻底解决了“开发环境 vs 生产环境不一致”的痛点。
核心概念
- 镜像(Image):一个只读模板,包含运行应用所需的一切(如
nginx:latest
)。
- 容器(Container):镜像的运行实例,可以启动、停止、删除(如一个正在运行的 Nginx 服务)。
- Dockerfile:一个文本文件,定义如何构建镜像(类似“配方”)。
- Docker Compose:用于定义和运行多容器应用(如 Web + DB + Cache)。
- Registry:镜像仓库,如 Docker Hub,可上传/下载镜像。
为什么使用 Docker?
- ✅ 环境一致性:一次构建,到处运行
- ✅ 快速部署:秒级启动容器
- ✅ 资源高效:比虚拟机更轻量,共享宿主机内核
- ✅ 微服务友好:每个服务一个容器,独立部署
- ✅ CI/CD 集成:与 Jenkins、GitHub Actions 等无缝协作
Docker 已成为现代云原生开发的基础设施标准。
常用 Docker 命令合集(实战速查)
# 1. 镜像操作
docker images # 查看本地所有镜像
docker pull nginx:latest # 从 Docker Hub 拉取镜像
docker build -t myapp:1.0 . # 使用当前目录 Dockerfile 构建镜像
docker rmi myapp:1.0 # 删除指定镜像
docker rmi $(docker images -q) # 删除所有本地镜像(慎用!)
# 2. 容器操作
docker run -d --name web -p 8080:80 nginx:latest # 启动容器(后台模式,端口映射)
docker run -it ubuntu:20.04 /bin/bash # 启动并进入容器(交互模式)
docker stop web # 停止容器
docker start web # 启动已停止的容器
docker restart web # 重启容器
docker rm web # 删除容器
docker rm $(docker ps -aq) # 删除所有容器(慎用!)
# 3. 查看状态
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器(包括已停止)
docker logs web # 查看容器日志
docker logs -f web # 实时跟踪日志(类似 tail -f)
docker exec -it web /bin/bash # 进入正在运行的容器
docker inspect web # 查看容器详细信息(IP、挂载等)
# 4. 数据卷(持久化数据)
docker volume create app-data # 创建命名卷
docker run -d -v app-data:/app/data myapp:1.0 # 挂载卷到容器
docker volume ls # 列出所有卷
docker volume rm app-data # 删除卷
# 5. 网络
docker network create app-net # 创建自定义网络
docker run -d --network app-net --name db mongo # 容器加入网络
docker network ls # 查看网络
docker network inspect app-net # 查看网络详情
# 6. Docker Compose(多容器应用)
# 创建 docker-compose.yml 后使用:
docker-compose up -d # 启动所有服务(后台)
docker-compose down # 停止并删除所有服务
docker-compose logs -f # 查看所有服务日志
docker-compose build # 重新构建服务镜像
# 7. 清理资源(释放磁盘空间)
docker system prune # 清理未使用的容器、网络、镜像、构建缓存
docker system prune -a # 清理所有未使用的资源(更彻底)
docker volume prune # 删除未使用的卷
前端
教程
HTML & CSS 极简入门
先了解 HTML 与 CSS
- HTML 是网页的结构:用标签定义标题、段落、按钮等内容。
- CSS 是网页的样式:控制颜色、字体、布局和动画。
它们是所有网页开发的起点,无需复杂工具,用浏览器即可查看效果。
学会它们,你就能创建自己的第一个网页!
精简代码:一个漂亮的居中卡片
<!DOCTYPE html>
<html>
<head>
<style>
body {
margin: 0;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
font-family: Arial, sans-serif;
background: #e3f2fd;
}
.card {
width: 300px;
padding: 30px;
background: white;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
text-align: center;
}
h2 {
color: #1976d2;
margin-bottom: 10px;
}
p {
color: #555;
font-size: 14px;
}
.btn {
display: inline-block;
padding: 8px 16px;
margin-top: 15px;
background: #1976d2;
color: white;
text-decoration: none;
border-radius: 4px;
}
</style>
</head>
<body>
<div class="card">
<h2>你好,世界!</h2>
<p>这是一个用 HTML 和 CSS 创建的简单卡片。</p>
<a href="#" class="btn">点击试试</a>
</div>
</body>
</html>
后端
教程
Java 面向对象指南
先了解 Java 与面向对象
Java 是一门纯面向对象的语言,程序通过“类”和“对象”建模现实世界。
OOP 四大特性:
- 封装:隐藏数据,用
private
+ getter/setter
- 继承:子类复用父类属性和方法(
extends
)
- 多态:同一方法不同行为(方法重写)
- 抽象:定义通用结构(
abstract
)
掌握 OOP,就掌握了 Java 的核心思维。
一个学生管理系统
// 抽象类:人(体现“抽象”和“封装”)
abstract class Person {
protected String name;
public Person(String name) {
this.name = name;
}
// 抽象方法
public abstract void study();
}
// 子类:学生(体现“继承”和“多态”)
class Student extends Person {
private int grade;
public Student(String name, int grade) {
super(name);
this.grade = grade;
}
// 重写抽象方法(体现“多态”)
@Override
public void study() {
System.out.println(name + " 正在学习,年级:" + grade);
}
// Getter(体现“封装”)
public int getGrade() { return grade; }
}
// 主程序
public class StudentDemo {
public static void main(String[] args) {
// 创建学生对象
Student s1 = new Student("小明", 3);
Student s2 = new Student("小红", 4);
// 调用方法(多态)
s1.study(); // 输出:小明 正在学习,年级:3
s2.study(); // 输出:小红 正在学习,年级:4
// 简单管理
System.out.println("\n📋 学生列表:");
Student[] students = {s1, s2};
for (Student s : students) {
System.out.println("学生: " + s.name + ", 年级: " + s.getGrade());
}
}
}
后端
Java
教程
MyBatis-Plus
一、什么是 MyBatis-Plus?
MyBatis-Plus(简称 MP)是 MyBatis 的增强工具,在 不改变 MyBatis 原有功能的基础上,提供了大量“开箱即用”的便捷功能,极大地简化了单表 CRUD 操作,提升开发效率。
它被广泛应用于 Spring Boot 项目中,号称:“只为简化开发,提高效率而生”。
✅ 核心特性
特性 |
说明 |
无侵入 |
只做增强不做改变,引入不影响原有流程 |
强大的 CRUD 操作 |
内置通用 Mapper 和 Service,无需写 SQL 即可操作数据库 |
Lambda 查询 |
支持链式调用 + Lambda 表达式,类型安全,避免字段名拼写错误 |
代码生成器 |
可根据数据库表自动生成 Entity、Mapper、Service 等代码 |
分页插件 |
内置高性能分页插件,支持多种数据库 |
性能分析插件 |
输出 SQL 执行时间,辅助优化慢查询 |
二、快速集成(Spring Boot 项目)
1. 添加依赖(Maven)
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.5</version>
</dependency>
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
数据库
后端
MySQL CRUD 快速指南
一个完整的 MySQL 增删改查(CRUD)示例,包含建表、插入、查询、更新、删除操作,一步到位。
完整 CRUD 示例
-- 1. 创建表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
age INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 2. 插入数据(Create)
INSERT INTO users (name, email, age) VALUES
('Alice', 'alice@example.com', 25),
('Bob', 'bob@example.com', 30),
('Charlie', 'charlie@example.com', 35);
-- 3. 查询数据(Read)
SELECT * FROM users;
-- 结果:返回所有用户
SELECT name, age FROM users WHERE age > 28;
-- 结果:Bob, Charlie
-- 4. 更新数据(Update)
UPDATE users
SET age = 26
WHERE name = 'Alice';
-- 5. 删除数据(Delete)
DELETE FROM users
WHERE name = 'Charlie';
-- 6. 再次查询验证结果
SELECT * FROM users;
-- 结果:仅剩 Alice (26岁), Bob (30岁)