Javascript 如何有效地管理Perl模块以实现代码重用?

Javascript 如何有效地管理Perl模块以实现代码重用?,javascript,perl,code-reuse,module-management,Javascript,Perl,Code Reuse,Module Management,我的公司使用mod_perl、axkit和apache的组合开发web应用程序。 我们有大量的Perl模块、Java脚本等,都在unix操作系统中 每当我需要编写一个新函数时,我都会尝试进行一些代码重用,但问题是所有的Perl模块和Java脚本都分散在文件夹中 我讨厌在以后编写一些代码来发现已经有一个函数做了同样的事情,我当前的方法是尝试grep查找表名,看看是否有冗余函数,但除此之外,我很抱歉,我会放弃写一个新函数,因为我不想花太多时间搜索什么也找不到 有更好的方法吗?或者更好的是,我可以安装

我的公司使用mod_perl、axkit和apache的组合开发web应用程序。 我们有大量的Perl模块、Java脚本等,都在unix操作系统中

每当我需要编写一个新函数时,我都会尝试进行一些代码重用,但问题是所有的Perl模块和Java脚本都分散在文件夹中

我讨厌在以后编写一些代码来发现已经有一个函数做了同样的事情,我当前的方法是尝试grep查找表名,看看是否有冗余函数,但除此之外,我很抱歉,我会放弃写一个新函数,因为我不想花太多时间搜索什么也找不到

有更好的方法吗?或者更好的是,我可以安装免费软件工具来帮助我正确管理所有功能和模块,甚至允许开发人员记录评论等

编辑 <> Po>在C++上使用代码检测代码复制,在UNIX平台上有Perl代码吗? 谢谢
~steve

我相信你有某种形式的版本控制软件(,git,随便什么,但不是VSS)?如果你现在没有,是时候买一个并开始使用它了。这样,您至少知道您正在使用哪些模块以及代码在哪里。您还可以使用索引对已编写(或正在使用)的所有模块进行索引


IDE(尽管我不喜欢这些)也可以帮助查找代码和重构。

组织您的源目录,使每个功能只有一个位置,并且很容易找到它

确保共享命名约定,以防止重复

设计你的模块,让他们只做一件事——并且做好

查看代码以确保名称和位置正确

提供一个基于代码索引器的高效搜索引擎,以便轻松查看是否已经有一个函数在执行特殊任务

不要低估概括现有组件的时间,以便有效地重用它

用API文档和/或单元测试记录模块


在团队内部进行沟通,以便每个人都能很好地掌握可能已经编写的内容,谁已经或知道谁可能已经在/使用模块

我曾在一家使用Perl的公司工作过,遇到过类似的问题。我们提出的解决方案是重新组织文件中的函数,同时考虑三层体系结构(表示、业务和持久性)和正在操作的元素


所以,数据库中的每个主表都有一个perl文件,每个实体都有一个perl文件来操作它们的业务操作,等等。。。这样,就很容易避免代码重复,因为您确切地知道在哪里查找给定函数。

这是我非常感兴趣的事情

使用像svn、git或bazaar这样的简单版本控制软件并不是我想要的。除此系统外,VCS是强制性的,但不是此系统。经过一些研究,我被告知要研究包装,以实现这一目标,我认为,某种包装系统是前进的方向

如果你想要一个打包系统的例子,看看debians APT。每个包都有版本描述和源代码的依赖项,如果有一个好的打包系统,你可以像“magic search set equation fixpoint”一样,magic packaging系统将找到一个解决问题的模块。如果您在源代码中包含该包,它还将添加所有缺少的依赖项,如图形等

然而,这方面的研究是在我的笔记本电脑硬盘死亡前不久开始的,这推迟了进一步的研究和这方面的实际结果,但也许你能找到一些有趣的东西(告诉我轻推,轻推)

嗯,, TETA

如果您的模块包含并安装在一个公共目录或一组目录下,那么它应该相对容易用于生成HTML文档。一旦你有了HTML文档,加入一个全文搜索索引(SQLite和fts3、MySQL、Lucene、KinoSearch等等)和一个简单的搜索表单应用程序(CGI或mod_perl),你就可以开始了


如果您使用的是trac,那么有一种方法可以从.pod和.pm文件中创建trac wiki页面,这同样使您的文档易于搜索。

基本上,我们在unix中使用cvs,但这仍然不是一种有效的方法,我无法使用所有函数来避免重写代码。还有很多模块已经在那里了,而且还没有触及到我的恐惧。你在unix中有ide吗?我目前使用vi.CVS远不是完美的,但一个VCS总比没有好。我们用它在FreeBSD上工作了10多年。用CTAG索引你的代码,就像我说的那样,知道你有什么。在UNIX上,您可以使用Eclipse或Netbeans作为IDE。嗨,您可以提供有关如何启动VCS设置的更多信息吗?谢谢。您已经在VCS即CVS中拥有了代码,因此第一步已经完成。试着找到一些东西来索引你的代码,并检查你的CVS日志,以找出里面到底有什么。你能提供更多关于搜索引擎的细节吗?问题是目前只有我和我的团队负责人,还有一堆旧代码。这不是一个真正的公司项目,而是我的一项倡议,以避免冗余代码。其想法是能够根据关键字搜索任何代码段(例如,查找日历、日期、星期)。对于一个2人的团队来说,像OpenGrok()这样的索引器可能会有些过分,ack可能足够了(),好吧,只要它简单,我就可以从小做起,开始将它传播给我的团队领导和我公司的其他未来开发人员。ack!只是一个改进的grep,一个