CodeSOD:偏离路径 笔记

CodeSOD:偏离路径

在编写跨平台软件时,文件路径分隔符可能是一个挑战,并非所有编程语言都提供处理它们的直观 API。在 C++ 17 之前,开发者不得不使用预处理器技巧来处理文件路径分隔符,通常借助 Boost 库套件。一种常见的解决方案是使用条件编译指令定义一个预处理器常量来表示路径分隔符。这种方法允许开发者以兼容不同文件路径约定方式拼接路径。然而,一些开发者采取了错误的方法,例如先追加路径分隔符再将其替换为正确的分隔符,这导致了重复且易出错的代码。这种错误做法往往被复制粘贴到整个代码库中,造成多处出现相同的有缺陷逻辑。尽管该代码被多位开发者使用,却未被重构,在某些情况下仍会产生错误的路径分隔符。幸运的是,现代 Windows 对错误的路径分隔符较为宽容,但这并不能为不良的编码实践开脱。更好的做法是定义一个路径分隔符常量,并在整个代码库中一致地使用它。采用自助式发布管理平台(如 BuildMaster)有助于简化开发流程,降低此类错误发生的可能性。