软件生命周期(SLDC)
两种基本类型——Linear线性过程,Iterative迭代过程。
五种存在模型——瀑布模型、增量模型、V字模型、原型过程(迭代)、螺旋模型。
除此之外还有敏捷开发(每次迭代处理一个小增量),极限编程。
选择合适模型依据——用户参与程度(适应变化的能力),开发效率/管理复杂度,软件质量。
传统痛点:环境隔离不彻底,依赖版本不确定,多配置文件维护难。
AI时代痛点:生成代码带有过时特征。 配环境太难。
Poetry
集成包管理、环境隔离、构建、发布于一体——一个文件pyproject.toml解决所有问题。
pyproject.toml会记录作者、版本、描述、Python版本要求等。
poetry.lock确保所有机器上安装的二进制文件字节级一致。
poetry run <script name> 直接在隔离环境中运行脚本,无需激活环境。
Make$Makefile——项目自动化脚本集合。
CI/CD工具——团队/项目级自动化工具(Github Actions/Gitlab CI/Jenkins)。
SCM——软件配置管理:追踪和控制软件变化。
CI——软件配置项:软件中发生变化的基本单元。
SCI&BaseLine——基线:软件持续变化中的稳定时刻(对外发布的版本)。
CMDM——配置管理数据库:存储软件各配置项随时间发生变化的信息+基线。
Versioning——版本:为软件任一特定时刻的形态指派一个唯一的编号作为身份标识。
为什么需要版本控制:版本回滚,版本比较,备份历史版本,获取备份,协同共享开发,记录开发者动作。
VCS——版本控制系统:本地VCS,集中式VCS,分布式VCS。
.git directory——.git文件夹——本地CMDS——已提交。
working directory——工作目录——本地文件系统——已修改。
Staging area——暂存区——隔离工作目录与Git仓库——已暂存。
Git本质是一个对象图(有向无环图),所有操作都是对图进行操作,图存在.git文件夹中。
commit——对象图的节点。A->B代表在B的基础上提交了A。
https://learngitbranching.js.org/?locale=zh_CN
← 返回博客目录