How to build
How to build
内容介绍
- 该系列完全不聚焦于任何编程语言/框架/项目
- 以运行Github/其他开源社区中各种项目为核心目的,讲述如何使用这些各色各样的项目
- 另一目的是反过来思考,如何编写方便他人运行的通用开源项目
分类原则我们提到过
| 与语言有关,与项目无关。而这里不需要编写任何与编程语言相关的程序代码,不符合 |
| 与语言无关,与项目无关。比较倾向于纸上谈兵,而这里我们是需要实操的,不符合 |
| 与语言无关,与项目有关。抽离许多项目中通用的思想和工具,符合 |
| 与语言有关,与项目有关。这里并不聚焦于具体的编程语言/技术栈/框架/项目,不符合 |
项目通用构建
大多数项目(无论什么语言/框架),编程项目的流程大体相同,都需要这几个步骤:
- 安装通用环境/依赖
- 下载/编写项目
- 安装项目专用环境/依赖
- 运行/编译项目
- (可选 可能还有一些调试、测试、自动部署/发布等步骤,这里先忽略)
像python就是:
- 准备python、anoncada、venv等环境
- 下载/编写项目
- 安装依赖,如
pip install -r ./requirements.txt
、./.venv/Script/activate
- 运行/编译项目,如
python xxx.py
、nb run --reload
(脚手架)
像JavaScript就是:
- 准备node.js、npm/pnpm/xpm等环境
- 下载/编写项目
- 安装依赖,如
npm install
- 运行/编译项目,如
npm run build
像CPP就是:
- 准备
工具链
、cmake
、gdb
、gcc/g++
、cygwin/msys2
等环境 - 下载/编写项目
- 安装依赖,如
./vcpkg/vcpkg install
- 运行/编译项目,如
mkdir build && cd build && cmake .. && cmake --build .
其他的像 Java、Rust、Go 等也同理
Tip
其中,有一些方式是通用的,对于重复的这部分不再在上面赘述
- 对于安装环境。可选安装IDE、一些集成环境、甚至是Docker
- 对于安装依赖。直接使用文件夹或通过 git/curl 下载,是通用方法
- 对于编译项目。单纯运行按钮、使用工作流文件、或使用VSCode的Task,是通用的方法
然后会发现,在这些环节中,每个环节其实都可以有不同的做法。比较灵活,并非一成不变
其他
更具体的,以及跟具体语言有关的,详见该文件夹下的其他文件
项目
我这里创建了一些通用型的项目demo: https://github.com/NestNode/ or https://github.com/LincDemo
与普通项目相比:
- 多种语言实现同一基本架构,可自由切换
- 项目处理过程中多个可选项,尽可能通用
- 允许多种依赖处理方式
- 允许多种编译方式 (包括github工作流)
- 多平台产物 (解释型语言也尽量生成可执行文件版本)
- Useless Backend,开箱即用,无需修改即可简单使用
链接到当前文件 0
没有文件链接到当前文件