我无法相信任何人通常会反对文档和评论,但在PHP中这样做的最佳实践(和实际)是什么?
在JavaScript中,您可以记录代码,然后运行最小化器以生成代码的生产版本以供使用。在PHP中,额外的文本行会影响性能吗?您是否应该将文档保存在另一个文件中(我认为这可能对API和框架很重要,但会降低您的开发速度)?
编辑:
我的逻辑是它必然需要更长的时间,因为文件大小更长并且为解析器添加更多工作(尽管可能可以忽略不计)。假设您有1000行代码和500行注释,是否应该使用汇总版本然后直接转到实际文档页面?
答案 0 :(得分:7)
使用PHP(如ASP.NET),可以在服务器上编译代码,生成的HTML可以通过网络发送到客户端。
PHP源代码即时编译为可由PHP引擎执行的内部格式。为了加快执行时间而不必在每次访问网页时编译PHP源代码,PHP脚本也可以使用PHP编译器以可执行格式部署。
在此过程中,评论将被忽略,并且在诉讼程序中不再发挥作用。它们不会减慢编译器的速度,因此不会影响性能。
您应该评论您的代码(如果适用)并使用源代码保留注释。否则,他们与代码失去联系的可能性更大,然后比无用的更糟糕。
答案 1 :(得分:6)
如果假设每个注释字符的O(1)CPU成本,并且您的代码是4k,并且一半代码是注释,那么您将浪费2k基本操作。对于现代处理器,基本操作大约需要20个时钟周期,但由于存在流水线优化,我们可以假设每个操作可能有5个周期。由于我们现在正在处理千兆赫CPU,因此在评论解析时会浪费2k / 1g * 5~ = 1 / 10,000th of秒。
评论您的代码!
可忽略不计的元素:
评论您的代码!
答案 2 :(得分:3)
没有。不影响性能,但会影响您的可读性。一个聪明人曾经说过“评论好像下一个维护你的代码的人是一个杀人的疯子谁知道你住在哪里。”
答案 3 :(得分:1)
最小化javascript是一个好主意,因为整个代码被发送到客户端 - 对于具有大量注释的代码或具有慢速连接的客户端,这可能导致处理的大量延迟(其中实质性可能意味着秒......)
这是不 PHP的情况 - 代码直接在服务器上执行,因此只有处理后的结果才会发送到客户端。 PHP预处理器解析代码时可能会有一些小开销,但我希望这可以忽略不计 - 最多只有几毫秒。
答案 4 :(得分:1)
在代码中添加文档绝不会影响您的表现(既不消极也不积极)。记录您的代码非常重要,因此其他人(以及几个月后自己)可以弄清楚发生了什么。词法分析器可能需要一毫秒的时间,但这几乎不值得一提。
答案 5 :(得分:0)
它会增加您的文件大小。但解析器会忽略它,因此它不会影响执行时间等方面的性能。
我认为普遍的共识是在实际代码中发表评论。虽然我认为您可以使用引用为您的代码维护单独的文档文件,但我只能想象维护它的繁琐程度。
答案 6 :(得分:0)
毫无疑问,毫无疑问,请记录您的PHP代码..对于想要了解您所做的事情的人来说已经够糟糕了。记录代码的任何损害,我想不出任何损失,都会被利益完全抵消
我愿意打赌,删除几乎所有代码中的注释都会导致速度明显提高。
所以“最佳实践”的答案是:不要删除评论
答案 7 :(得分:0)
主要区别在于必须将JavaScript发送到客户端,因此这些额外的字节会在传输过程中占用资源。将文档发送给客户端并不重要。在服务器端的PHP中,解析器将忽略这些注释。所以请记录下您的内容:)
答案 8 :(得分:0)
解析器会忽略它。将文档保存在那里,永远不要吝啬。评论越多越好。
答案 9 :(得分:0)
当使用docblocks来评论您的类/函数/变量等时,它允许支持代码建议/突出显示的IDE为您提供有关您在编写时使用的资源的信息。此外,在创建文档时,还有各种工具可以使用docblock自动执行此过程。简而言之,如果您正确评论,那么您已经创建了文档。
就效率而言,是的,解析器必须在文件加载到内存时过滤注释(以及我可能添加的空白区域)。但是,此过滤过程仅在服务器上运行一次,并且在php脚本本身运行之前运行本身将花费相当长的时间来运行。这意味着花在执行预期PHP上的时间比例会相对较少,因此效率的任何降低都可以忽略不计。
另外,想想你将挽救继任者的时间;这是足够的理由;)