gpt4 book ai didi

用于管理 C++ 项目的 Python 脚本

转载 作者:太空狗 更新时间:2023-10-29 22:54:46 24 4
gpt4 key购买 nike

在我的团队中,我决定使用 Python3 脚本来管理用 C++ 编写的项目。因此,我使用该脚本是为了将项目之上的所有功能集中在一个地方。我将它用于:

  • 启动制作
  • 启动测试
  • 编写文档
  • 收集统计数据
  • 检查编码风格

例如,我调用:./foo.py stat 来收集统计信息。里面有一堆实用程序。我使用 sysos 操作它们。

我觉得这很好,但我担心这是一种不好的做法,最终会变成问题,而且这也是一种不好的品味。

问题如下:

  • 这是一种常见的做法吗?
  • 如果不是,那是为什么?
  • 什么是最好的解决方案?
  • 一些额外的信息

最佳答案

使用 python 脚本完成这些任务是否是一个好的解决方案似乎对我来说非常具体,尝试回答这样的问题可能还不够。不过,让我试着分类一下。

  • launching make
  • launching test make
  • compile docs

您应该问自己为什么调用makemake testmake docs 是不够的。介于两者之间的 python 层对我来说似乎有点矫枉过正,因为我想不出它会增加这么多便利的场景。如果 make 调用太复杂(例如因为必须指定很多参数),我会首先尝试处理 Makefile 本身以使其更易于使用。

  • collect statistics

对我来说很有意义。

  • check coding style

“编码风格”意味着很多事情,但是当您尝试强制执行命名约定、函数长度或代码格式时,我建议您使用 clang-tidyclang-format不要重新发明轮子。这些工具非常强大,可以通过作为项目一部分的配置文件进行控制。如果从 python 脚本调用这些工具很方便,或者使用 python 脚本生成 compile_commands.json,那对我来说似乎没问题。

一般来说,不同的任务需要不同的工具,我不会尝试围绕这些工具构建一个通用的包装器来创建一个整体的界面,因为你的 python 脚本会随着时间的推移而增长(版本控制、调试打包/释放...) 直到它变得难以管理。更喜欢做一件事的小而简单的脚本(顺便说一下,这可能是你的方法的情况,我不能说)。

要对您帖子的最后一些问题发表评论,

  • Is it a common practice?

用于特定任务的小脚本,例如生成一些 repo 统计信息:是的。用于管理构建、发布和文档的大型手写工具:我会拒绝。

  • If it's not then why?

像这样的跨平台功能非常难以正确实现,因为存在无数的边缘情况。使用自己的工具只会消耗太多时间。相反,仔细配置现有工具可能是最有效的策略。另外,如果您使用成熟的工具,(新)开发人员可能会习惯它。

关于用于管理 C++ 项目的 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54289110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com