当发布源代码供其他人查看时,当编码风格没有明确定义(没有双关语)时,您是否删除了#ifdef
DEBUG 部分?
(即只有在定义了 DEBUG 时才编译的部分)
如果我删除它,它会使代码看起来更好(或者我看起来更好 - 我真的希望有人知道我已经调试过,以及我是如何做到的吗?),但是我会丢失我的调试部分,或者必须保留两个(或更多)版本的代码。
什么是要做?
当发布源代码供其他人查看时,当编码风格没有明确定义(没有双关语)时,您是否删除了#ifdef
DEBUG 部分?
(即只有在定义了 DEBUG 时才编译的部分)
如果我删除它,它会使代码看起来更好(或者我看起来更好 - 我真的希望有人知道我已经调试过,以及我是如何做到的吗?),但是我会丢失我的调试部分,或者必须保留两个(或更多)版本的代码。
什么是要做?
我认为如果您的调试代码是干净的并且在任何日志记录语句中都有“专业”语言,则可以保留它。如果调试代码草率或有调试消息,例如“我在这里......”,“现在我“我在这里……”你应该把它拿出来。
如果您的调试语句反映了存在您无法弄清楚的问题的事实,那么如果您试图将您的软件“出售”给某人,那么最好将它们删除。(希望您以后可以修复它们...)
除非您在评论中使用不可重新编译的语言,否则您应该保留代码原样。如果有人要使用您的代码,他们很可能会需要这些代码,或者这将帮助他们理解您的代码。(评论也是如此)
编辑:我过去经常处理其他工作室代码。我见过调试代码、死路和许多其他东西,但我唯一讨厌的是那些剥离调试和注释代码的人,这使得他们的代码很难维护
我也投票决定将其保留。如果/当您开始处理第一个补丁时,您可能需要那些被 DEBUG 阻止的部分。此外,QA 不会喜欢您删除代码,即使它在指令中被阻止。
如果您决定删除它们,只需在导出代码时使用脚本将它们过滤掉,无需维护两个版本。
使用源代码管理系统中的所有内容维护您的基本版本。
然后,如果您想分发以一种或多种方式过滤的源代码,请制作一个脚本来制作您的源代码的发布版本。
不要维护这些二级过滤存储库,让它们始终生成。
但值得花时间吗?可能不会,您可能应该只分发包括#ifdef DEBUG 部分在内的所有内容。
维护 ANYTHING 的多个版本是不可取的。
只有在必须时才这样做。