3

我最近加入了一个 Perl 项目,我需要快速开始使用代码库来提高工作效率。但是,我发现我被卡住了,因为我不知道我需要更改哪里或代码的所有部分如何组合在一起。

你有什么技巧和工具来熟悉你没有经验的 Perl 代码库?

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

4

5 回答 5

4

首先,如果以前的维护人员做得很好,那么您应该为代码库中的每个模块和脚本提供广泛的测试套件和 perldoc 文档。如果是这样,请通读 perldoc,并通读测试。perldoc 应该让您大致了解所做的事情,并且测试套件将为您提供在上下文中使用的代码示例。

根据作者的不同,内部注释可能有助于理解代码的意图,因此通过查看实际源代码,我还可以深入了解算法、错误和预期用途。

如果您没有这些,请像处理任何维护不善的代码库一样继续:从小处着手,编写尝试使用代码的程序,然后使用 Test::More 等开始将这些变成测试套件.

在第一种情况下,您可能会发现它非常简单,在第二种情况下,您可能会发现它非常困难。如果您遇到第二种情况, Peter Scott 的Perl Medic可以非常有用地帮助您将这样的代码库转化为可用且有用的东西,而 Mike Thomsen 的Effective Perl Programming推荐也是一个很好的选择。

于 2011-06-17T21:33:25.747 回答
1

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

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

这本书是认真学习 Perl 的绝佳参考。它不是很密集,它会教你很多关于正确的 Perl 开发的知识。

于 2011-06-17T16:21:33.160 回答
1

除了“类似的问题”,http ://perldoc.perl.org/ 和一个空的 test.pl 文件是一个很好的起点!

于 2011-06-17T16:30:28.217 回答
1

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

目标

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

环境

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

Perl 代码

  1. 您的项目是否到处都使用严格和警告?
  2. 使用了哪些 CPAN 模块?
  3. 是否使用了任何框架(Moose、Catalyst,可能是一些 ORM,...)?
  4. 项目模块中是否有任何 perldocs?
  5. 是否有任何测试(特别是 t/*.t)?
于 2011-06-18T22:11:56.903 回答
0

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

于 2011-06-17T21:00:51.117 回答