0

我们有一个包含许多原型文件的大型项目。其中许多包含不再在任何地方使用的消息,因此我想删除它们。但是,由于项目的规模,要查看这些消息中的哪些仍然是必要的,哪些不是。

我最初的方法是注释掉消息并重新注释,直到编译器满意(Java,C++)。不幸的是,我们也有大量的python,这种方法不起作用并且总是运行所有的测试用例太昂贵了。

有没有人遇到过这种情况?是否有任何工具可以帮助检测 Java、C++ 和 Python 中未使用的 protobuf 消息?

编辑:我可能应该补充一点,我们目前(仍然)将其所有用途都在我们的控制之下,所以我们项目之外的人都没有使用它们。

4

1 回答 1

1

这是一个有趣的问题,但我怀疑(!?)工具面临的挑战是很难(不可能?)确定原型的下游依赖关系。

protobuf 源被编译为至少一种语言的源,然后这些源作为依赖项导入到代码中。此代码本身(通常)被编译和捆绑(例如,作为某个地方的容器映像)并部署到生产中。

此外,原型通常通过定义软件接口的方式分发给其他人(其他团队、部门、组织等),并且这些实体中的每一个都创建相同的下游数字链。

而不是“删除”(擦除),您可能希望通过注释掉消息或将原型移动到存档目录来就地进行正式的存档过程。

这些方法中的任何一种都应该允许您检测未来的编译错误并在必要时恢复消息。

谨慎的做法可能是确保当消息变得冗余时,该过程包括上述归档机制作为正式的归档机制,而不是周期性的“让我们去寻找冗余”。

于 2020-09-14T21:16:39.433 回答