我公司开发使用的mod_perl,axkit和Apache的组合的网络应用程序。 我们有吨Perl模块,Javascript角等,都在UNIX操作系统。

每当我需要写一个新的功能,我尝试着做一些代码重用,但事情是所有的Perl模块和JavaScript的分散在整个文件夹。

我只恨后来写一些代码,发现有已经该做同样的事情的功能,我目前的方法是试图用grep表名,看是否有多余的功能,但除此之外,我几乎会干脆放弃谱写新的功能,因为我不想花太多的时间来搜索和发现什么都没有。

有没有更好的方式来做到这一点?甚至更好,是我可以安装它可以帮助我正确地管理所有的功能和模块,甚至允许开发者日志评论有免费的工具,等等。

修改

有是上基于C检测代码重复这一讨论 ++使用工具,我们是否有这样的事情在UNIX平台的Perl代码?

感谢 〜史蒂夫

有帮助吗?

解决方案

整理您的源目录,使每个功能只有一个地方,它应该是,很容易找到的东西。

确认共享的命名约定,以避免重复。

设计您的模块,使他们只能做一两件事 - 并把它做好。

查看的代码,以确保名称和位置是否正确。

提供一个有效的搜索引擎基于码索引,这样很容易看,如果已经有做一个特殊任务的功能。

不要低估时间为广义含现有组件,使得它可以有效地重复使用。

<强>文档的模块,与API文档的/或单元测试。

沟通让每一个有什么可能被已经写了一个很好的把握,谁拥有或知道谁可能已经工作/使用的模块队内。

其他提示

我相信你有某种形式的版本控制软件( SVN ,的水银,混帐,什么而不是VSS)?如果你现在不就是一次获得一个并开始使用它。这样的话,你至少有一个想法,你正在使用,并在代码模块。您也可以使用 CTAGS样索引所有你写的模块(或正在使用)。

这是IDE(多达我不喜欢这些)也可以帮助找到代码和重构。

这是一些我很感兴趣。

使用像SVN,GIT中或集市一个简单的版本控制软件不正是我想要的。在VCS是除了这样的系统强制性的,但它不是这个系统。经过一番研究,我已被告知寻找到包装为了实现这一点,我认为,某种形式的包装系统是要走的路。

如果你想包装系统的一个例子,看看debians APT。每个包有版本依赖的描述和源代码,并且获得良好的包装系统,你可以去像“魔术搜索组方程不动点”,以及神奇的包装系统是要找到解决问题的模块。如果您在您的源代码包,它也将添加所有缺少的依赖像可能是图形和这样的。

不过,研究这个刚开始不久之前,我的笔记本电脑的硬盘死了,这推迟进一步的研究和实际结果到这个方向,但是也许你能找到一些有趣的事情(和告诉我的微调,微调

HTH, Tetha

如果您的模块包括 POD文档和公共目录下被安装或设置目录的,它应该是比较容易使用 pod2html 生成HTML文件。一旦你的HTML文档,扔在一个全文搜索索引(SQLite的与FTS3,MySQL和Lucene的,KinoSearch,等等)和一个简单的搜索应用程序(CGI或mod_perl的),你准备好去。

如果您正在使用的trac,有一个插件,将创建从.POD和.pm的文件trac的wiki页面的页面,再次让你的文档便于搜索。

我曾经工作过,所使用Perl的一家公司,并有类似的问题。我们拿出的溶液,是在重新组织的文件的功能,同时在考虑一个三层架构(表示,业务和持久性),并且这些元件被操纵。

因此,我们有一个Perl的文件在数据库中的每个主表,每个实体操纵他们的业务运营,等等...这一个Perl的文件,可以很容易地避免重复代码,因为你知道究竟在何处寻找对于给定的功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top