熟悉Perl代码库的最佳方法是什么?

3

我最近加入了一个Perl项目,需要尽快开始生产代码。但是,我发现自己因为不知道在哪里需要更改或者代码的各个部分如何相互结合而卡住了。

你有什么关于熟悉一个没有经验的Perl代码库的技巧和工具吗?

(注:我意识到已经有一个类似的问题。我想知道是否有任何特定于Perl的策略。)


10
cHao:不是一个有帮助的评论。 - ysth
1
可能是如何熟悉大型代码库的最佳方法?的重复问题。 - cHao
5
我希望我能够对一条评论进行踩。真正的专业人士可以用任何语言编写Fortran^H^H^H^H^H^H^Hlinenoise。 - mu is too short
不要太在意,我喜欢 Perl。只是有点无聊而已。 :) - cHao
5个回答

4
首先,如果之前的维护人员工作得很好,那么代码库中的每个模块和脚本都应该有广泛的测试套件和perldoc文档。如果是这样,请阅读perldoc并阅读测试。Perldoc应该为您提供内容概述,测试套件将为您提供在上下文中使用代码的示例。
根据作者,内部注释可能对理解代码的意图有用,因此查看实际源代码可能会提供算法、错误和预期使用的见解。
如果没有这些内容,则可以像处理任何糟糕维护的代码库一样开始小规模编写程序,尝试使用代码,并使用Test::More等工具开始将其转换为测试套件。
在第一种情况下,您可能会发现它非常简单;而在第二种情况下,非常困难。如果您被卡在第二种情况中,Peter Scott的Perl Medic可以非常有用,帮助您将这样的代码库转化为可用且有用的东西;Mike Thomsen推荐的Effective Perl Programming也是一个不错的选择。

1

我在Melody上工作,它主要是用Perl编写的。这是一个相当大的代码库,我发现学习Melody代码库的过程与我曾经使用过的任何Java系统都是相同的。

实际上,这只是需要与之一起工作,当您看到以前从未见过的行为时进行搜索和实验。

这本书是一个很好的参考书,可以认真学习Perl。它不是非常密集,但会教你很多关于正确的Perl开发的知识。


1

1

我想在这里看到一个真正的答案,而不是更多问题(你不必在此提供答案,只需问自己):

目标

  1. 项目的目标是什么,它应该做什么?
  2. 谁知道工作流程?

环境

  1. 能否在干净的测试环境中设置项目?
  2. 它是否使用版本控制系统?
  3. 入口点在哪里(即可执行文件)?
  4. 它是否依赖外部程序?
  5. 它是否需要额外的系统调整(即cron脚本)?

Perl代码

  1. 你的项目是否在所有地方都使用了strict和warnings?
  2. 使用了哪些CPAN模块?
  3. 是否使用了任何框架(Moose、Catalyst、可能还有ORM等)?
  4. 项目的模块中是否有perldocs?
  5. 是否有任何测试(特别是t/*.t)?

0

我通常从处理一些简单的错误报告或想要添加的简单功能开始。在编写代码时,我会为代码编写注释并提交它们。编写测试也有助于。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接