【发布时间】:2011-05-19 22:43:52
【问题描述】:
我已经编写 Perl 好几年了,它是我首选的文本处理语言(我处理的许多遗传学/基因组学问题很容易归结为文本处理问题)。 Perl 作为一种语言可以是非常宽容的,并且可以用 Perl 编写非常糟糕但功能强大的代码。就在前几天,我的朋友说他称 Perl 是一种只写语言:编写一次,理解一次,完成后永远不要试图回去修复它。
虽然我有时确实为编写糟糕的脚本而感到内疚,但我觉得我也用 Perl 编写了一些非常清晰且可维护的代码。但是,如果有人问我是什么使代码清晰和可维护,我将无法给出自信的答案。
是什么让 Perl 代码可维护?或者更好的问题是是什么让 Perl 代码难以维护?假设我不是唯一会维护代码的人,并且其他贡献者,比如我,不是专业的 Perl 程序员,而是具有编程经验的科学家。
【问题讨论】:
-
作为一个相关的子问题:您应该在多大程度上使用/依赖 $_ ?在我看来很明显,虽然循环遍历一个数组然后正则表达式
foreach (@array) { if (/.../) { ...的项目是明确的,但如果不是只写的话,它也是非常仅限 Perl 的。 -
(而不是
foreach my $item (@array) { if ($item =~ /.../) { ...) -
也许我应该补充一点,我已经开始采用一种策略,只要我发现自己不经常操纵 $_,而只是将其作为默认值传递,我就会感到舒服.一旦我需要开始对 $_ 做很多事情,那么它应该被命名。这听起来像是一个合理的起点吗?
-
现在有点晚了,但这整个问题对程序员来说会更好。 programmers.stackexchange.com
-
@Joel:如果您的表达完全地道且合理的话。如果你必须经常使用
$_的名字,那么是的,它应该被命名。否则,可能不会。
标签: perl maintainability