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

时间:2011-06-17 16:14:37

标签: perl codebase

我最近加入了一个Perl项目,我需要很快开始使用代码库。但是,我发现自己陷入困境,因为我不知道需要改变的地方或代码的所有部分如何组合在一起。

有哪些技巧和工具可以帮助您熟悉您没有经验的Perl代码库?

(注意:我意识到已经存在similar question。我想知道是否存在任何特定于Perl的策略。)

5 个答案:

答案 0 :(得分:4)

首先,如果以前的维护者做得很好,你应该为代码库中的每个模块和脚本提供一个扩展的测试套件和perldoc文档。如果是这样,请通读perldoc,并阅读测试。 perldoc应该为您提供有关内容的概述,测试套件将为您提供上下文中使用的代码的示例。

根据作者的不同,内部注释可能有助于理解代码的用途,因此,通过查看实际来源,我可以提供有关算法,错误和预期用途的见解。

如果您没有这些,请继续执行任何维护严重的代码库:从小处着手,编写尝试使用代码的程序,然后使用Test :: More等开始将这些代码转换为一个测试套件。

在第一种情况下,您可能会发现它非常简单,在第二种情况下,非常难。 Peter Scott的Perl Medic在帮助你将这样的代码库变成可用和有用的东西时非常有用,如果你遇到第二种情况,Mike Thomsen的Effective Perl Programming推荐也是一个好的。

答案 1 :(得分:1)

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

这真的归结为只是使用它,当你看到你以前从未见过的行为和实验时谷歌搜索。

This book是以严肃方式获取Perl的绝佳参考。它不是很密集,它将教你很多关于正确的Perl开发。

答案 2 :(得分:1)

除了“similar question”之外,http://perldoc.perl.org/和一个空的test.pl文件是一个很好的起点!

答案 3 :(得分:1)

我想在这里看到一个真正的答案。我唯一拥有的是更多问题(你不必在这里提供答案,只要问问自己):

目标

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

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

      1. 您的项目到处使用严格和警告吗?
      2. 使用哪些CPAN模块?
      3. 是否使用过任何框架(Moose,Catalyst,可能还有一些ORM,......)?
      4. 项目模块中是否有任何perldoc?
      5. 有没有测试(特别是t / * .t)?

答案 4 :(得分:0)

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