大纲

1. 开发环境
	- Git     # 版本管理工具
	- Cmake   # 代码构建工具,管理源文件和依赖
	- Gcc     # 编译器
	- Clion   # 编辑器
	- Postman # 模拟客户端
	- MySQL(navicat)   # 在 docker Container 中起一个 mySQL 数据库,并可以在 navicat 中进行可视化操作
	- Docker  # 部署
1. 目录结构
	- build   # 项目编译目录
		- debug 
		- release 
	- include # .h 头文件目录
	- src     # .cpp  源文件目录
	- docs    # 需求设计文档
	- others
2. 设计模式
	- 单例模式
		- 构造函数私有
		- 实例只有一份
	- 工厂模式
		- 一个类别对应一个工厂
		- 不需要亲自创建对象,只需要从工厂中去取
3. 数据库
	- MySQL 
		- 关系型
		- 支持事务
		- 行锁
		- 支持种存储引擎InnoDB,MyISAM,Memory
		- B+树索引

init-project

3.png

build

添加 Release 模块,并将 DebugRelease 模块移至 build 目录下

1.png
2.png

include

User.h

//  
// Created by 24398 on 2023/5/29.  
//  
  
#ifndef NEW_PROJECT_USER_H  
#define NEW_PROJECT_USER_H  
# include <string>  
  
class User {  
private:  
int age{};  
std::string name{};  
  
public:  
std::string get_name();  
  
User(std::string name_);  
};  
  
#endif //NEW_PROJECT_USER_H

src

main.cpp

#include <iostream>  
#include "User.h"  
  
int main() {  
auto *user = new User("John");  
std::cout << user->get_name() << std::endl;  
return 0;  
}

User.cpp

//  
// Created by 24398 on 2023/5/29.  
//  
#include "User.h"  
  
User::User(std::string name_): name(name_){};  
  
std::string User::get_name() {  
return this->name;  
}

CMakelists.txt

cmake_minimum_required(VERSION 3.25)  
project(new_project)  
  
# C++ 17  
set(CMAKE_CXX_STANDARD 17)  
# 添加头文件  
include_directories(include)  
  
# 添加源文件  
aux_source_directory(./src DIR_SRCS)  
  
# 所有需要编译的可执行文件  
add_executable(new_project ${DIR_SRCS})

include_directories([AFTER|BEFORE] [SYSTEM] directory1 [directory2 ...])
在这个例子中,命令include_directories(include)表示你想将include目录添加到包含路径中。这意味着编译器在编译源文件时会在include目录中搜索头文件。

aux_source_directory(<dir> <variable>)
在这个例子中,命令aux_source_directory(src DIR_SRCS)表示你想从./src目录收集所有的源文件,并将它们赋值给变量DIR_SRCS