#2 项目文件管理
blog AI

#2 项目文件管理

介绍人工智能时代最佳的项目管理实践。


现在,我们已经对 AI 有了大致的了解。然而,要开始开发,我们首先需要一个环境。让我们建立一个基于使用 AI 的开发环境。首先,我们需要决定如何管理项目文件。简单地共享文件会带来一个风险,即一旦出错就必须从头开始重写代码。即使在使用 AI 时也是如此,因此版本控制和项目管理在现代开发中是密不可分的。

在过去,开发始于简单的文件共享(NFS 或 NetBIOS),然后经历了 CVS(约 1990 年起)→ VSS(约 1995 年起)→ Subversion(约 2000 年起)→ Git(约 2010 年起)的演变(这些时间线是近似的)。我为其中的每个阶段都准备并搭建了环境。在历史上,搭建代码仓库环境(用于存储 and 管理项目文件及更新历史记录的单元)需要手动安装或购买,并建立备份环境,这是一项重大任务。今天,GitHub 是无可争议的选择。(因为它是免费的,哈哈)


【关于 GitHub】

以前,GitHub 将免费账户限制为单个私有仓库,但现在已无限制。此外,GitHub Actions 每月提供高达 2,000 分钟的免费额度,且 500MB 以内的存储完全免费。


这太棒了。我们生活在一个伟大的时代。当然,您也可以通过 Docker 启动一个 Gitea 容器来构建本地 Git environment。对于不使用 CI/CD 的大型项目,我会在本地服务器上进行 management。


<什么是 CI/CD?>

这是 AI 驱动和无代码开发中的一个重要理念。在过去,系统分析师(SA)分析业务运营并汇总需求,系统工程师(SE)编写规范和测试要求,程序员(PG)编写代码(即所谓的瀑布模型)。相比之下,今天感觉是一个完全不同的世界。吸取了退回前一阶段所带来的高昂成本的教训,现代方法优先考虑从小处着手,逐步发展。让我们简单定义一下这些术语:


- CI:持续集成(Continuous Integration)

开发人员频繁地将他们的代码更改合并到共享仓库中,触发自动构建并运行测试的过程。

- CD:持续交付与部署(Continuous Delivery & Deployment)

对在 CI 中测试过的代码进行自动化处理,使其随时可以手动发布到生产环境,或者将实际部署到生产环境的过程自动化。


简单来说,这是一种在验证 UI 和功能的同时,逐步完成项目的方法。以前,这些方法被称为敏捷开发或 DevOps(开发 + 运维),但今天的方法感觉更加迅速。它与 AI 是完美的结合。


在 AI 时代,还需要了解另一个关键概念:GitOps。

<什么是 GitOps?>

这是一种以 Git 仓库为核心的开发方法论。它是将所有基础设施定义、应用配置和向服务器的代码部署进行完全的版本控制,从而实现回滚和完整的审计历史记录的概念。将所有项目信息聚焦于这个单一的真理源,可以极大地提高开发效率、容错能力和快速恢复能力。


在 AI 时代,关于 GitHub 的一个警告:如前所述,个人 AI 工具会使用对话记录进行训练。敏感信息(密码、访问令牌等)必须使用 GitHub Secrets 进行安全管理。此外,对于 GitHub 操作,最好在向 AI 委派任务之前,先使用 GitHub CLI 进行登录。


错误示例:

$ git clone https://{username}:{Token}@github.com/{UserID}/{repository_name}.git


虽然 GitHub 允许这种格式,但它会完全暴露您的令牌。您应该始终提前运行 `gh auth login`,这样就不需要直接向 Git 命令传递凭据。这样做会将令牌注册到远程 URL,使其对任何人可见,因此不要因为最初是人类运行该命令就认为它是安全的。


由于许多网站都解释了如何创建 GitHub 账户并运行 clone 命令,我在此省略这些细节。首先,您的仓库(一组项目文件)已成功创建。